PowerPoint 프레젠테이션 - Kangwonysmoon/courses/2016_2/dm/P-08.pdf · K-Means Clustering. ....

30
2016년 가을학기 손시운 ([email protected] ) 지도 교수: 문양세 교수님

Transcript of PowerPoint 프레젠테이션 - Kangwonysmoon/courses/2016_2/dm/P-08.pdf · K-Means Clustering. ....

Page 1: PowerPoint 프레젠테이션 - Kangwonysmoon/courses/2016_2/dm/P-08.pdf · K-Means Clustering. . k-means 군집화 (출처: wikipedia.org) – 주어진데이터를k개의클러스터로묶는알고리즘으로,

2016년 가을학기

손시운 ([email protected])

지도교수: 문양세 교수님

Page 2: PowerPoint 프레젠테이션 - Kangwonysmoon/courses/2016_2/dm/P-08.pdf · K-Means Clustering. . k-means 군집화 (출처: wikipedia.org) – 주어진데이터를k개의클러스터로묶는알고리즘으로,

군집 분석 (Cluster Analysis)

군집(Clustering)

– 패턴공간에 주어진유한 개의패턴들이서로 가깝게모여서 무리를이루고있는패턴 집합을묶는 과정 (출처: aistudy.com)

2

(출처: espin086.wordpress.com) (출처: http://tagging.pui.ch)

Page 3: PowerPoint 프레젠테이션 - Kangwonysmoon/courses/2016_2/dm/P-08.pdf · K-Means Clustering. . k-means 군집화 (출처: wikipedia.org) – 주어진데이터를k개의클러스터로묶는알고리즘으로,

K-Means Clustering

k-means 군집화 (출처: wikipedia.org)

– 주어진데이터를 k개의클러스터로 묶는알고리즘으로, 각클러스터와 거리차이의분산을 최소화하는방식으로 동작

3

Page 4: PowerPoint 프레젠테이션 - Kangwonysmoon/courses/2016_2/dm/P-08.pdf · K-Means Clustering. . k-means 군집화 (출처: wikipedia.org) – 주어진데이터를k개의클러스터로묶는알고리즘으로,

European Protein Consumption

4

Datasets

– 25개국 유럽국가단백질섭취율(%)

– 주요단백질 섭취원

• RedMeat(붉은고기: 소, 돼지등)

• WhiteMeat(흰살고기: 닭등)

• Eggs, Milk, Fish

• Cereals(곡물), Starch(녹말, 전분)

• Nuts, Fr&Veg(과일및야채)

– 현재 25개의 클러스터보다더 작은수의클러스터로 군집화

• e.g. 지중해연안국가는특정음식의단백질섭취율이높음

Country Red… Whit… Eggs Milk Fish Cere… Star… Nuts Fr&…Albania 10.1 1.4 0.5 8.9 0.2 42.3 0.6 5.5 1.7Austria 8.9 14 4.3 19.9 2.1 28 3.6 1.3 4.3Belgium 13.5 9.3 4.1 17.5 4.5 26.6 5.7 2.1 4Bulgaria 7.8 6 1.6 8.3 1.2 56.7 1.1 3.7 4.2Czecho… 9.7 11.4 2.8 12.5 2 34.3 5 1.1 4Denmark 10.6 10.8 3.7 25 9.9 21.9 4.8 0.7 2.4E Germ… 8.4 11.6 3.7 11.1 5.4 24.6 6.5 0.8 3.6Finland 9.5 4.9 2.7 33.7 5.8 26.3 5.1 1 1.4France 18 9.9 3.3 19.5 5.7 28.1 4.8 2.4 6.5Greece 10.2 3 2.8 17.6 5.9 41.7 2.2 7.8 6.5Hungary 5.3 12.4 2.9 9.7 0.3 40.1 4 5.4 4.2Ireland 13.9 10 4.7 25.8 2.2 24 6.2 1.6 2.9Italy 9 5.1 2.9 13.7 3.4 36.8 2.1 4.3 6.7Netherla… 9.5 13.6 3.6 23.4 2.5 22.4 4.2 1.8 3.7Norway 9.4 4.7 2.7 23.3 9.7 23 4.6 1.6 2.7Poland 6.9 10.2 2.7 19.3 3 36.1 5.9 2 6.6Portugal 6.2 3.7 1.1 4.9 14.2 27 5.9 4.7 7.9Romania 6.2 6.3 1.5 11.1 1 49.6 3.1 5.3 2.8Spain 7.1 3.4 3.1 8.6 7 29.2 5.7 5.9 7.2Sweden 9.9 7.8 3.5 24.7 7.5 19.5 3.7 1.4 2Switzerl… 13.1 10.1 3.1 23.8 2.3 25.6 2.8 2.4 4.9UK 17.4 5.7 4.7 20.6 4.3 24.3 4.7 3.4 3.3USSR 9.3 4.6 2.1 16.6 3 43.6 6.4 3.4 2.9W Germ… 11.4 12.5 4.1 18.8 3.4 18.6 5.2 1.5 3.8Yugosla… 4.4 5 1.2 9.5 0.6 55.9 3 5.7 3.2

더작은수의 클러스터로군집화할수있을까?

Page 5: PowerPoint 프레젠테이션 - Kangwonysmoon/courses/2016_2/dm/P-08.pdf · K-Means Clustering. . k-means 군집화 (출처: wikipedia.org) – 주어진데이터를k개의클러스터로묶는알고리즘으로,

Ex. 1: 데이터 다운로드

데이터 다운로드

– http://www.biz.uiowa.edu/faculty/jledolter/DataMining/datatext.html

5

Page 6: PowerPoint 프레젠테이션 - Kangwonysmoon/courses/2016_2/dm/P-08.pdf · K-Means Clustering. . k-means 군집화 (출처: wikipedia.org) – 주어진데이터를k개의클러스터로묶는알고리즘으로,

Ex. 1: 데이터 확인

6

Page 7: PowerPoint 프레젠테이션 - Kangwonysmoon/courses/2016_2/dm/P-08.pdf · K-Means Clustering. . k-means 군집화 (출처: wikipedia.org) – 주어진데이터를k개의클러스터로묶는알고리즘으로,

Ex. 1: Red & White Meat 기반 군집화

kmeans() 함수: R에 기본적으로 내장되어 있는 k-Means 알고리즘

– 첫번째 인자: 군집에사용할 데이터

– 두번째 인자(centers): 클러스터의 수(k)

7

Page 8: PowerPoint 프레젠테이션 - Kangwonysmoon/courses/2016_2/dm/P-08.pdf · K-Means Clustering. . k-means 군집화 (출처: wikipedia.org) – 주어진데이터를k개의클러스터로묶는알고리즘으로,

Ex. 1: Red & White Meat 기반 군집화

결과 확인

8

Page 9: PowerPoint 프레젠테이션 - Kangwonysmoon/courses/2016_2/dm/P-08.pdf · K-Means Clustering. . k-means 군집화 (출처: wikipedia.org) – 주어진데이터를k개의클러스터로묶는알고리즘으로,

Ex. 1: Red & White Meat 기반 군집화

플로팅

9

Page 10: PowerPoint 프레젠테이션 - Kangwonysmoon/courses/2016_2/dm/P-08.pdf · K-Means Clustering. . k-means 군집화 (출처: wikipedia.org) – 주어진데이터를k개의클러스터로묶는알고리즘으로,

Ex. 1: 모든 섭취원에 대한 군집화

앞의 예제는 Red Meat와 White Meat로 군집화

– 다음예제는 모든섭취원에 대해 7개의 클러스터로군집화

10

Page 11: PowerPoint 프레젠테이션 - Kangwonysmoon/courses/2016_2/dm/P-08.pdf · K-Means Clustering. . k-means 군집화 (출처: wikipedia.org) – 주어진데이터를k개의클러스터로묶는알고리즘으로,

Ex. 1: 모든 섭취원에 대한 군집화

플로팅

11

Page 12: PowerPoint 프레젠테이션 - Kangwonysmoon/courses/2016_2/dm/P-08.pdf · K-Means Clustering. . k-means 군집화 (출처: wikipedia.org) – 주어진데이터를k개의클러스터로묶는알고리즘으로,

Ex. 1: 지도 상에서 군집 결과 확인

지도 관련 패키지 로딩

12

Page 13: PowerPoint 프레젠테이션 - Kangwonysmoon/courses/2016_2/dm/P-08.pdf · K-Means Clustering. . k-means 군집화 (출처: wikipedia.org) – 주어진데이터를k개의클러스터로묶는알고리즘으로,

Ex. 1: 지도 상에서 군집 결과 확인

각 나라별 좌표(위도, 경도) 저장

13

Page 14: PowerPoint 프레젠테이션 - Kangwonysmoon/courses/2016_2/dm/P-08.pdf · K-Means Clustering. . k-means 군집화 (출처: wikipedia.org) – 주어진데이터를k개의클러스터로묶는알고리즘으로,

Ex. 1: 지도 상에서 군집 결과 확인

플로팅

14

Page 15: PowerPoint 프레젠테이션 - Kangwonysmoon/courses/2016_2/dm/P-08.pdf · K-Means Clustering. . k-means 군집화 (출처: wikipedia.org) – 주어진데이터를k개의클러스터로묶는알고리즘으로,

Ex. 1: 지도 상에서 군집 결과 확인

플로팅

15

Page 16: PowerPoint 프레젠테이션 - Kangwonysmoon/courses/2016_2/dm/P-08.pdf · K-Means Clustering. . k-means 군집화 (출처: wikipedia.org) – 주어진데이터를k개의클러스터로묶는알고리즘으로,

Iris

Datasets: 150개의 Iris 꽃 데이터

– Sepal.Length: 꽃 받침길이

– Sepal.Width: 꽃받침 너비

– Petal.Length: 꽃잎길이

– Petal.Width: 꽃잎너비

– Species: 화종

• setosa

• versicolor

• virginica

16

# Sepal.Length Sepal.Width Petal.Length Petal.Width Species1 5.1 3.5 1.4 0.2setosa2 4.9 3 1.4 0.2setosa3 4.7 3.2 1.3 0.2setosa4 4.6 3.1 1.5 0.2setosa5 5 3.6 1.4 0.2setosa6 5.4 3.9 1.7 0.4setosa7 4.6 3.4 1.4 0.3setosa8 5 3.4 1.5 0.2setosa9 4.4 2.9 1.4 0.2setosa

10 4.9 3.1 1.5 0.1setosa11 5.4 3.7 1.5 0.2setosa12 4.8 3.4 1.6 0.2setosa13 4.8 3 1.4 0.1setosa14 4.3 3 1.1 0.1setosa15 5.8 4 1.2 0.2setosa

Iris 데이터의 종을군집화할수있을까?

Page 17: PowerPoint 프레젠테이션 - Kangwonysmoon/courses/2016_2/dm/P-08.pdf · K-Means Clustering. . k-means 군집화 (출처: wikipedia.org) – 주어진데이터를k개의클러스터로묶는알고리즘으로,

Ex. 2: 데이터 초기화

iris 데이터에서 Species(화종)을 제외한 데이터를 추출

17

Page 18: PowerPoint 프레젠테이션 - Kangwonysmoon/courses/2016_2/dm/P-08.pdf · K-Means Clustering. . k-means 군집화 (출처: wikipedia.org) – 주어진데이터를k개의클러스터로묶는알고리즘으로,

Ex. 2: K-Means 알고리즘 사용

kmeans() 함수: R에 기본적으로 내장되어 있는 K-Means 알고리즘

– 첫번째 인자: 군집에사용할 데이터

– 두번째 인자: 클러스터의수(k)

18

Page 19: PowerPoint 프레젠테이션 - Kangwonysmoon/courses/2016_2/dm/P-08.pdf · K-Means Clustering. . k-means 군집화 (출처: wikipedia.org) – 주어진데이터를k개의클러스터로묶는알고리즘으로,

Ex. 2: Plotting

Sepal과 Petal의 각 값에 해당하는 군집 결과를 플로팅

19

Page 20: PowerPoint 프레젠테이션 - Kangwonysmoon/courses/2016_2/dm/P-08.pdf · K-Means Clustering. . k-means 군집화 (출처: wikipedia.org) – 주어진데이터를k개의클러스터로묶는알고리즘으로,

Ex. 2: Plotting

Sepal과 Petal의 각 값에 해당하는 군집 결과를 플로팅

20

Page 21: PowerPoint 프레젠테이션 - Kangwonysmoon/courses/2016_2/dm/P-08.pdf · K-Means Clustering. . k-means 군집화 (출처: wikipedia.org) – 주어진데이터를k개의클러스터로묶는알고리즘으로,

Hierarchical Clustering

계층형 군집화

– 계층트리로 구성된중첩된 클러스터를생성한다.

– 계통수(dendrogram)으로시각화될 수있다.

• 계통수형태의트리는레코드들의병합/분할의순서를나타낸다.

21

1 3 2 5 4 60

0.05

0.1

0.15

0.2

1

2

3

4

5

6

1

23 4

5

Page 22: PowerPoint 프레젠테이션 - Kangwonysmoon/courses/2016_2/dm/P-08.pdf · K-Means Clustering. . k-means 군집화 (출처: wikipedia.org) – 주어진데이터를k개의클러스터로묶는알고리즘으로,

Ex. 3: 데이터 초기화

plotting을 위해 40개의 데이터를 추출

Species(화종) 데이터 제거

22

Page 23: PowerPoint 프레젠테이션 - Kangwonysmoon/courses/2016_2/dm/P-08.pdf · K-Means Clustering. . k-means 군집화 (출처: wikipedia.org) – 주어진데이터를k개의클러스터로묶는알고리즘으로,

Ex. 3: Hierarchical Clustering 사용

hclust() 함수: R에 기본적으로 내장되어 있는 계층형 군집화 알고리즘

– 첫번째 인자: 거리가계산된 데이터

• dist() 함수: 거리를계산하는함수

– "euclidean", "maximum", "manhattan", "canberra", "binary" or "minkowski"

– method 인자: 계층형군집화알고리즘에 적용할유사도

• "ward.D", "ward.D2", "single", "complete", "average" (= UPGMA), "mcquitty" (= WPGMA), "median" (= WPGMC) or "centroid" (= UPGMC)

23

Page 24: PowerPoint 프레젠테이션 - Kangwonysmoon/courses/2016_2/dm/P-08.pdf · K-Means Clustering. . k-means 군집화 (출처: wikipedia.org) – 주어진데이터를k개의클러스터로묶는알고리즘으로,

Ex. 3: Plotting

Dendrogram

24

Page 25: PowerPoint 프레젠테이션 - Kangwonysmoon/courses/2016_2/dm/P-08.pdf · K-Means Clustering. . k-means 군집화 (출처: wikipedia.org) – 주어진데이터를k개의클러스터로묶는알고리즘으로,

Density-Based Clustering

DBSCAN – 대표적 밀도기반 군집화 알고리즘

– 한점으로부터 일정거리 안에있는점들의 수가특정 값보다많다면군집화

• eps: 밀도를측정하는거리

• MinPts: 밀도를측정하기위한점들의최소개수

– 밀도기반군집화의 장점은다양한 형태와크기의클러스터를 발견할수 있음

25

(출처: http://www.slideshare.net/salahecom/10-clusbasic)

Page 26: PowerPoint 프레젠테이션 - Kangwonysmoon/courses/2016_2/dm/P-08.pdf · K-Means Clustering. . k-means 군집화 (출처: wikipedia.org) – 주어진데이터를k개의클러스터로묶는알고리즘으로,

Ex. 4: DBSCAN 알고리즘 사용

dbscan() 함수: fpc 패키지에서 구현된 DBSCAN 알고리즘

– 1부터 3행은 뚜렷하게군집이 되었으나, 0행은 군집이제대로 되지않음

• 0행의값들은 noise 또는 outlier로취급

26

Page 27: PowerPoint 프레젠테이션 - Kangwonysmoon/courses/2016_2/dm/P-08.pdf · K-Means Clustering. . k-means 군집화 (출처: wikipedia.org) – 주어진데이터를k개의클러스터로묶는알고리즘으로,

Ex. 4: Plotting

27

ds의 결과를 플로팅

– 검은색원이 noise 또는 outlier

Page 28: PowerPoint 프레젠테이션 - Kangwonysmoon/courses/2016_2/dm/P-08.pdf · K-Means Clustering. . k-means 군집화 (출처: wikipedia.org) – 주어진데이터를k개의클러스터로묶는알고리즘으로,

Ex. 4: Plotting

28

Page 29: PowerPoint 프레젠테이션 - Kangwonysmoon/courses/2016_2/dm/P-08.pdf · K-Means Clustering. . k-means 군집화 (출처: wikipedia.org) – 주어진데이터를k개의클러스터로묶는알고리즘으로,

Ex. 4: Plotting

첫 번째 컬럼(Sepal.Length)과 네 번째 컬럼(Petal.Length)으로 플로팅

29

Page 30: PowerPoint 프레젠테이션 - Kangwonysmoon/courses/2016_2/dm/P-08.pdf · K-Means Clustering. . k-means 군집화 (출처: wikipedia.org) – 주어진데이터를k개의클러스터로묶는알고리즘으로,

Ex. 4: Plotting

plotcluster() 함수: fpc 패키지에 있는 플로팅 함수

30