공부잡동사니

분류(KNN),군집분석(계층적 군집분석)(R) 본문

빅데이터 분석/머신러닝

분류(KNN),군집분석(계층적 군집분석)(R)

공부잡상인 2025. 4. 6. 22:55

[y가 연속형인 경우 분석방법]  
1.전통회귀 분석 
-여러가지 통계적 가정 필요
-가정이 성립되지 않으며 예측력이 많이 떨어짐 
-인과관계 파악이 용이 

2.분류 모델이 제공하는 회귀 모델  (ex :randomForest)
-비통계적 모델 
-특별한 튜닝없이도 우수한 예측력 갖음 
-인과 관계 파악은 불가 (예측에 집중)

[분류 분석 ]
-1.트리기반 모델 
-Decisiontree-randomforset -gradientboosting-xgboost
-DT:디시전 트리->RF :랜덤 포레스트 ->GB:서로독립적이지 않는다,랜덤프레스트랑 같다 앞에 있는 트리의 결과를 학습한다(데이터 포인트)  
-->XGB:GB에 속도를 보완된 트리기반 
-outlier :기존에 멀리 떨어져 있는 데이터 트리기반모델에서 민감하지 않는다 ,있어도 그만 없어도 그만 
-범주,연속성 설명 변수 모두 포함가능 
-학습시간에 비해 예측시간이 빠름 
-연속형 데이터에 대한 scaling 필요 x 

2.거리기반 모델 
-outlier :매우 민감하다 제거 하거나 수정해서 써야한다 
-범주형 설명변수가 많이 포함될수록 예측력 떨어짐 
-고차원 데이터에 비적합 
-예측시간이 오래 걸림 (학습과정 생략 )
-연속형 데이터에 대한 scaling 필요 (표준화)

#예 :유클리디안 거리 
#예 거리기반 모델링 과정 
#소득   직업  지출  A상품구매여부 
#1.400  회사원  200    x
#2.410  회사원  220    x
#3.500  자영업  400    o

.420  회사원  180    ?  #가장 비슷한사람을 찾는다,찾고 결론을 낸다 
자영업과 회사원의 거리는 상관없다 판단하기가 업렵다 

[연속형 변수 scale] 
-min-max 스케일링 =정규화 normalization
-0~1 값을 갖도록 처리
-데이터 에서 최소값을 뺀후 최대값과 최솟값 의 차이 나눔
-x-min(x)/max(x)+min(x)

표준화 standardization
-평균을 뺀후 표준편차로 나누어 결과분포의 분산이 1이 되도록 처리 
- x-mean(x)/std

 knn 
-예측 하고자 하는 관측치로부터 기존관측치와의 거리 계산 
-계산된 거리 중 k개의 가장 가까운 이웃 관측치 확인
-k개의 이웃이 갖는 정답(y)의 평균 혹은 다수결로 최종결론 내림 
-중요 설명 변수의 스케일링 필요 


install.packages('class')
library(class)

 

knn(train = , #기존데이터 
    test = ,#예측할 데이터 
    c1=,   #기존데이터 y 
    k=,    #이웃의 수 
    prob = ) #확률 추출 여부 

약:1퍼센트 증가 (데이터 샘플링에 따라 계속달라짐)  
결론:scaling 한후 예측력 향상딜 확률 존재만약 설명 변수중 의미 없는 예측력에 방해되는 변수가 있다면  
해당변수를 제거한후 다시 모델링 필요

[데이터분석]   
1.지도학습  y존재 
(1)회귀분석 
(2)분류분석 
-트리기반 모델 
-거리기반 모델 

 2.비지도학습  y존재 하지 않는다 
1.군집분석
1)군집분석은 거리기반 모델 이다 Y존재 없음 모델링 패턴 x 평가x 유사성과 이질성 을 거리기반한다 
2)연관분석 

[군집분석]  
-정답이 없는 비지도학습 
-주어진 데이터들을 유사성에 근거해 비슷한 데이터 끼리 묶는 분석 기법 

-초기데이터에 대한 연구를 위해 사용되거나 
-클러스터링은 군집에 대한 정보를 추가로 활용하기 위해 주로 사용 
-데이터 축소 테크닉 

1).계층적 군집분석 
-거리가 가까운 데이터 포인트들 끼리 순차적을 묶는 형식 
-하나의 데이터가 한 군집에 속하면 군집은 변경되지 않음 
-군집을 형성하는 기준에 따라 여럭가지 모델 제공 
-군집 형성 과정(군집과 데이터 포인트와의 거리 측정 방식에 따라)
-.최단거리법, .최장거리법 평균거리법 중앙거리법으로 나뉨
 1.최단거리법 sigle min 
-각 개별 거리 를 계산해라 
개별거리중 가장 가까운 데이터에 넣어라
3.(중요)새로운 크러스터 생성 기존 크러스터에 생성이 되는지 선택해야한다 
거리가 가까운 애들 끼리 묶어라 순차적으로 
클러스터와 각 개별 단체치환의 거리 개별 
3.네가지 정의 에 따라 달라진다 가장 흔한 방식 평균  
 2.최장거리법 complete ,max
-개별 단체치와 거리가 최장으로 거리를 비교해서 가장길은거,가장큰거   
3.평군거리법 average
-각 준집내 의 거리 유사성을 군집의 중심점을 기준으로 연결해 가는방법
4.중앙거리법  median 
-이미 중앙값으로 중심을 잡고 단체치와 거리르 잡겠다 
5.와드의 방법
-연결 가능한 군집 조합중 연결된후에 군집내 제곱합을 계싼하여 최소 
-제곱합을 가지게 되는 군집 끼리 연결시키는 방법 

step1.각개별 관측치기리의 거리를 계산 거리 행렬 
dist(v1)

    p1  p2 p3 p4
p2  2         
p3  5  3      
p4  9  7   4
p5 17  15  12 8

step2.위 거리중 가까운 데이터 포인트하나의 군집으로 묶음 
c1(p1,p2)

step3,c1과 나머지 데이터 포인트끼리 거리 계산
dclp3=min(dp1p3,dp2p3)=min(5,3)->3
dc1p4=min(dp1p4,dp2p4)=min(9,7)->7
dc1o5=min(dp1p5,dp2p5)=min(17,15)->15

step4.위에서 구해진 군집과의 거리를 모두 계산 가장 가까운 거리파악
c1 p3 p4 p5
c1 .
p3 3   .
p4 7  4 .
p5 15  12 8
c1(p1,p2,p3)

step5 변경된 c1 과 나머지 관측지 p4,p5의 거리 계산
dc1p4 =min(p1p4,p2p4,p3p4)=min(9,7,4)=>4
dc1pp5=min(p1p5,p2p5,p3p5)=min(17,15,12)=>12

c1 p4 p5
c1 
p4 4.
p5 12 8.

step6 위거리중 가장가까운 거리 확인 
c1(p1,p2,p3,p4)