본문 바로가기

나 취준생/R

R k-means 군집 분석

320x100

# k-means  알고리즘

k-means 알고리즘은 주어진 데이터를 k 개의 클러스터로 묶는 알고리즘으로,

각 클러스터와 거리차이의 분산을 최소화하는 방식으로 동작한다.

 

이 알고리즘은 자율학습의 일종으로 레이블(정답)이 달려있지 않은

입력 데이터에 레이블(정답)을 달아주는 역할로도 활용되고 있다.

 

이 세상의 데이터는 정답이 없는 데이터가 훨씬 많다.

그래서 정답이 없는 데이터 속에서 어떤 패턴을 찾고 싶을때

비지도 학습의 k-means 군집화 머신러닝 알고리즘을 활용한다.

 

k-means 현업사례:

 

1.  모통신사에서 기지국을 세울때 사용

2.  병원에서 암 판별 머신러닝 모델을 만든는데 라벨링있는 지도학습

- 데이터를 훈련 시킬때 비지도학습을 같이 사용해서 모형의 정확도를 올리는데 참조

- 이 데이터는 악성이다. 이 데이터는 양성이다라고 라벨링 하는 작업을 사람이 일일이 한다.

그러나 사람이 실수를 할 가능성이 있기 때문에 실수를 했는지 안했는지 빠르게 판단할 때 k-means 를 활용한다.

3. 마케팅에서 고객들을 특성에 맞는 사람들끼리 군집화

4. 미국의 유명한 사례 : 순찰 지역을 정하는데 활용을 해서 범죄율을 사용해서

영화 마이너리 리포트처럼 범죄를 미리 예방하는데 사용

 

# 군집간의 거리 측정 방법

 1. 최단 연결법 : 두 군집 사이의 거리를 각 군집에서 하나씩 관측값을 뽑았을때

                       나타날수 있는 거리의 최솟값으로 측정

 2. 최장 연결법 :  두 군집 사이의 거리를 각 군집에서 하나씩 관측값을 뽑았을때

                       나타날수 있는 거리의 최댓값으로 측정

 3. 중심 연결법 : 두 군집간의 중심간의 거리를 측정

 4. 평균 연결법 : 두 군집 사이의 거리를 각 군집에서 하나씩 관측값을 뽑았을때

                       나타날수 있는 거리의 평균값으로 측정

 5. 와드 연결법 : 군집간의 거리에 기반하는 다른 연결법과는 다른

                      군집간의 오차 제곱합에 기초하여 군집을 수행

 

# k-means 의 단점  

 

1.  k 값을 지정하기가 어렵다. 

 

적당한 k 값을 계산하는 공식 :    k = sqrt(n/2)  ,  n 은 전체건수

-> 예시 중 하나일뿐

 

2.  이상치에 민감하다

-> 이상치까지 설명하려고 노력하기 때문

 

3.  k-means 로 군집화 한 결과에 대한 타당성 검증을 하기가 어렵다.

 

지도학습은 예측값과 정답과의 이원교차표를 통해서 좋은 모델인지 확인을 했는데

비지도학습은 정답이 없어서 타당성 검증이 어렵다.

그래서 보통 클러스터링한 결과를 가지고 기술 통계 기법을 써서 잘 군집화 했는지 분석한다.

 

# k-means 실습 예제

 

1. 데이터를 로드

 

academy <- read.csv("academy.csv")

View(academy)

 

 

academy <- academy[  ,  c(3,4) ] # 수학점수와 영어점수만 선택

 

2. k 값을 4로 주고 비지도학습 시켜 모델을 생성

 

km <- kmeans( academy,  4) 

 

3. 시각화

 

library(factoextra)

fviz_cluster(km , data=academy,  stand=F)

 

 

4. 학생번호, 수학점수, 영어점수, 분류번호를 같이 출력

 

academy <- read.csv("academy.csv")

cbind( academy[   ,c(1,3,4)], km$cluster)

 

5. 수학은 아주 잘하는데 영어가 보통인 학생들에게 연락을 하기 위해

그 학생들의 학생번호만 추출하기

 

academy <- read.csv("academy.csv")

academy_seg <- cbind( academy[   ,c(1,3,4)], km$cluster)

academy_seg[km$cluster==1,   "학생번호" ]

 

-> 마케팅을 위해서 k-means 를 이용해서 세그멘테이션을 해서 관련 학생들에게 광고를 따로 진행

 

반응형

'나 취준생 > R' 카테고리의 다른 글

R SOM(Self Organizing Map) 분석  (0) 2021.02.15
R 연관규칙  (0) 2021.02.14
R 신경망  (0) 2021.02.05
R 회귀분석 - 2  (0) 2021.02.01
R 회귀분석 - 1  (0) 2021.02.01