목록2024/02 (17)
Stats & AI tech blog - '일단 시도함'
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bQmNWQ/btsFiOGKUID/2aHHVSrMVSSSieRp67KWNK/img.png)
1. SMOTE(synthetic minority oversampling technique)란?데이터 불균형을 해결하기 위해 소수 범주의 개체 수를 늘리는 오버샘플링(Oversamping)기법 중 하나이다.기존 Oversampling기법과는 달리 데이터를 랜덤복원추출로 생성하지 않고, KNN기반으로 소수 범주의 데이터들을 적절하게 조합하여 새로운 데이터를 만들어 낸다. 2. SMOTE 절차소수 범주(minority class)의 데이터 하나를 선택한다.소수 범주 중에서 해당 데이터와 가까운 k개를 선택한다.관측치들 간의 거리를 계산한다.랜덤하게 선택된 0~1 사이의 값을 곱한다.직선 위에 새로운 데이터를 생성한다. 3. SMOTE 한계점 - 실제 소수 범주의 특성을 온전하게 반영하지 않을 수 있다..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bCbtft/btsFjWRHgvk/DjxlrXavBhaeGbkHbKOAq1/img.png)
R에서 그래프로 탐색적 분석을 수행할 때, 주로 아래 순서대로 시각화를 진행한다. 1. 단변량 시각화: 변수의 분포 이해 (히스토그램, 박스플롯, KDE, 막대그래프) 2. 이변량 시각화 : 두 변수 간의 관계 파악 (산점도, 히트맵, 라인플롯) 3. 다변량 시각화 : 세 개 이상의 변수 간 관계 파악 (페어플롯, 병렬좌표, 히트맵) 아래는 자주 사용하는 몇 가지 그래프에 대한 예시 코드이다. 밀도추정그래프 (KDE)# 이탈여부에 따라 분포가 어떻게 다른지 확인df %>% ggplot(aes(x = tenure, fill = fct_rev(Churn), alpha = .5))+ geom_density() 평균 막대 그래프 - fct_rev()를 통해 레벨 거꾸로 표현 - stat = 'summa..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/eiSrz5/btsFlUd7QOl/Q8wkvZV6bBg8vHMkSqBnpk/img.png)
이번 포스팅에서는 R에서 K-Means Clustering을 수행하는 방법에 대해 알아보겠다. K-Means Clustering에 대한 개념 설명은 아래 게시글을 참고하면 된다.2024.02.26 - [Machine Learning/Clustering] - [머신러닝] K-Means Clustering [머신러닝] K-Means ClusteringK-Means Clustering 1) K-Means 알고리즘이란? 비지도학습에 속하는 머신러닝 기법으로 데이터를 유사한 특성을 가진 K개의 군집(Cluster)으로 묶는 알고리즘이다. K개의 점과의 거리를 기반으로 구현된다meowstudylog.tistory.com K-Means Clustering은 아래 절차대로 수행하면 된다.데이터 분할 및 전처리군집 수..
1. K-Means 알고리즘이란?비지도학습에 속하는 머신러닝 기법으로 데이터를 유사한 특성을 가진 K개의 군집(Cluster)으로 묶는 알고리즘이다. K개의 점과의 거리를 기반으로 구현된다는 면에서 K-NN 알고리즘과 유사하지만,K-NN은 지도학습 방법으로 Classification 알고리즘이고,K-Means는 비지도학습 방법으로 Clustering 알고리즘이다. 비지도학습인 Clustering은 정답이 되는 변수가 없기 때문에 분류와 달리 모델 예측 성능을 평가하기 보다이런 식으로 군집화 될 수 있구나 정도만을 파악할 수 있다. 2. K-Means 알고리즘 절차 1. 군집 개수 (K) 설정 > 2. 초기 중심점 설정 > 3. 데이터를 군집에 할당 > (4. 중심점 재설정 > 5. 군집에 재할당) 중..
1. 불균형 데이터란?우리가 관심있어하는 종속변수가 범주형 데이터일 때, 범주 항목의 비율이 불균형한 데이터를 말한다.관심있는 비정상 관측치가 정상 관측치보다 적은 경우가 실무에서는 굉장히 많다.임상 데이터에서 특정 질병의 정상 / 비정상 환자제조업에서 제품의 양품 / 불량품통신업에서 유지 / 이탈 고객금융업에서 정상 / 비정상 거래많은 비율을 차지하는 범주를 '다수 범주 (majority class)', 적은 비율을 차지하는 범주를 '소수 범주 (minority class)' 라고 한다. 2. 불균형 데이터 문제점불균형 데이터로 훈련한 모델은 소수 범주를 제대로 분류하지 못할 가능성이 크다.이런 경우 애초에 정상 데이터가 많으니까 모두 정상으로 분류하더라도 높은 정확도를 가지게 된다. (비정상은 하..
라이브러리 & 데이터 불러오기# librarysetwd("C:/Users/PC2/Documents/Rcode")req 변수명 변경# 충돌 에러 (unused argument error) 발생할 경우 패키지 명시해주기data %>% dplyr::rename(Annaul_Income = 'Annual Income (k$)', Spending_Score = 'Spending Score (1-100)') 변수 타입 변경# 동시에 여러 컬럼 변경data[,1:11] % mutate_if(is.character, as.factor) Factor 변수 처리 # factor로 변경# ordered=T는 데이터가 순서형임을 뜻함data$quarter % mutate(Time = factor(Tim..
1. Linear ModelResiduals : 예측 값과 실제 값의 차이로 작을수록 좋은 모델CoefficientsEstimate : 변수들에 부여된 가중치Std.Error : 추정치의 정확도를 보여주고 t-value 계산에 쓰임t-value & Pr(>|t|) : coefficent가 0과 비교하여 유의미하게 다른지 검정, Pr은 유의 수준Performance MeasuresResidual Standard Error : 잔차의 표준편차, 작을수록 좋다Multiple / Adjusted R-square : 모델로 설명 가능한 분산의 양을 뜻함. Adjusted는 변수 개수를 함께 고려한 값으로 Multiple Regression에서 유용. 전반적인 적합도를 요약하지만 모델의 타당성을 말하기에는 불충분하..
1. Department Top Three Salaries //각 부서마다 연봉 top3 SELECT D.Name as Department, E.Name as Employee, E.Salary as Salary FROM Department D JOIN ( SELECT DepartmentId, Name, Salary, RANK() OVER (PARTITION BY DepartmentId ORDER BY Salary DESC) as rank FROM Employee WHERE rank = "2013-10-01" AND Request_at =100 and b.salary >= 100 and c.salary > =100 order by visit_date 4. Game Play Analysis 5 //해당 날짜..
11. Activity Participant SELECT activity FROM Friends GROUP BY activity HAVING COUNT(*) != (SELECT COUNT(*) FROM Friends GROUP BY activity ORDER BY COUNT(*) ASC LIMIT 1) AND COUNT(*) != (SELECT COUNT(*) FROM Friends GROUP BY activity ORDER BY COUNT(*) DESC LIMIT 1) 12. Number Of Trusted Contacts of a Customer SELECT invoice_id, customer_name, price, COUNT(contact_email) as contacts_cnt, sum(IF(c..