2015년가을학기 손시운...
Transcript of 2015년가을학기 손시운...
군집분석 (Cluster Analysis)
군집(Clustering)
– 패턴공간에 주어진유한 개의패턴들이서로 가깝게모여서 무리를이루고있
는패턴 집합을묶는 과정 (출처: aistudy.com)
2
(출처: espin086.wordpress.com) (출처: http://tagging.pui.ch)
K-Means Clustering
k-means 군집화 (출처: wikipedia.org)
– 주어진데이터를 k개의클러스터로 묶는알고리즘으로, 각클러스터와 거리차
이의분산을 최소화하는방식으로 동작
3
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.7
Austria 8.9 14 4.3 19.9 2.1 28 3.6 1.3 4.3
Belgium 13.5 9.3 4.1 17.5 4.5 26.6 5.7 2.1 4
Bulgaria 7.8 6 1.6 8.3 1.2 56.7 1.1 3.7 4.2
Czecho… 9.7 11.4 2.8 12.5 2 34.3 5 1.1 4
Denmark 10.6 10.8 3.7 25 9.9 21.9 4.8 0.7 2.4
E Germ… 8.4 11.6 3.7 11.1 5.4 24.6 6.5 0.8 3.6
Finland 9.5 4.9 2.7 33.7 5.8 26.3 5.1 1 1.4
France 18 9.9 3.3 19.5 5.7 28.1 4.8 2.4 6.5
Greece 10.2 3 2.8 17.6 5.9 41.7 2.2 7.8 6.5
Hungary 5.3 12.4 2.9 9.7 0.3 40.1 4 5.4 4.2
Ireland 13.9 10 4.7 25.8 2.2 24 6.2 1.6 2.9
Italy 9 5.1 2.9 13.7 3.4 36.8 2.1 4.3 6.7
Netherla… 9.5 13.6 3.6 23.4 2.5 22.4 4.2 1.8 3.7
Norway 9.4 4.7 2.7 23.3 9.7 23 4.6 1.6 2.7
Poland 6.9 10.2 2.7 19.3 3 36.1 5.9 2 6.6
Portugal 6.2 3.7 1.1 4.9 14.2 27 5.9 4.7 7.9
Romania 6.2 6.3 1.5 11.1 1 49.6 3.1 5.3 2.8
Spain 7.1 3.4 3.1 8.6 7 29.2 5.7 5.9 7.2
Sweden 9.9 7.8 3.5 24.7 7.5 19.5 3.7 1.4 2
Switzerl… 13.1 10.1 3.1 23.8 2.3 25.6 2.8 2.4 4.9
UK 17.4 5.7 4.7 20.6 4.3 24.3 4.7 3.4 3.3
USSR 9.3 4.6 2.1 16.6 3 43.6 6.4 3.4 2.9
W Germ… 11.4 12.5 4.1 18.8 3.4 18.6 5.2 1.5 3.8
Yugosla… 4.4 5 1.2 9.5 0.6 55.9 3 5.7 3.2
더 작은수의 클러스터로 군집화할 수있을까?
Ex. 1: 데이터다운로드
데이터 다운로드
– http://www.biz.uiowa.edu/faculty/jledolter/DataMining/datatext.html
5
Ex. 1: 데이터확인
6
Ex. 1: Red & White Meat 기반군집화
kmeans() 함수: R에기본적으로 내장되어 있는 K-Means 알고리즘
– 첫번째 인자: 군집에사용할 데이터
– 두번째 인자(centers): 클러스터의 수(k)
7
Ex. 1: Red & White Meat 기반군집화
결과 확인
8
Ex. 1: Red & White Meat 기반군집화
플로팅
9
Ex. 1: 모든섭취원에대한군집화
앞의 예제는 Red Meat와 White Meat로 군집화
– 다음예제는 모든섭취원에 대해 7개의 클러스터로군집화
10
Ex. 1: 모든섭취원에대한군집화
플로팅
11
Ex. 1: 지도상에서군집결과확인
지도 관련 패키지 로딩
12
Ex. 1: 지도상에서군집결과확인
각 나라별 좌표(위도, 경도) 저장
13
Ex. 1: 지도상에서군집결과확인
플로팅
14
Ex. 1: 지도상에서군집결과확인
플로팅
15
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 Species
1 5.1 3.5 1.4 0.2setosa
2 4.9 3 1.4 0.2setosa
3 4.7 3.2 1.3 0.2setosa
4 4.6 3.1 1.5 0.2setosa
5 5 3.6 1.4 0.2setosa
6 5.4 3.9 1.7 0.4setosa
7 4.6 3.4 1.4 0.3setosa
8 5 3.4 1.5 0.2setosa
9 4.4 2.9 1.4 0.2setosa
10 4.9 3.1 1.5 0.1setosa
11 5.4 3.7 1.5 0.2setosa
12 4.8 3.4 1.6 0.2setosa
13 4.8 3 1.4 0.1setosa
14 4.3 3 1.1 0.1setosa
15 5.8 4 1.2 0.2setosa
Iris 데이터의 종을군집화할수있을까?
Ex. 2: 데이터초기화
iris 데이터에서 Species(화종)을 제외한 데이터를 추출
17
Ex. 2: K-Means 알고리즘사용
kmeans() 함수: R에기본적으로 내장되어 있는 K-Means 알고리즘
– 첫번째 인자: 군집에사용할 데이터
– 두번째 인자: 클러스터의수(k)
18
Ex. 2: Plotting
Sepal과 Petal의 각 값에해당하는 군집결과를 플로팅
19
Ex. 2: Plotting
Sepal과 Petal의 각 값에해당하는 군집결과를 플로팅
20
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
Ex. 3: 데이터초기화
plotting을 위해 40개의데이터를 추출
Species(화종) 데이터 제거
22
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
Ex. 3: Plotting
Dendrogram
24
Density-Based Clustering
DBSCAN – 대표적 밀도기반 군집화 알고리즘
– 한점으로부터 일정거리 안에있는점들의 수가특정 값보다많다면군집화
• eps: 밀도를측정하는거리
• MinPts: 밀도를측정하기위한점들의 최소개수
– 밀도기반군집화의 장점은다양한 형태와크기의클러스터를 발견할수 있음
25
(출처: http://www.slideshare.net/salahecom/10-clusbasic)
Ex. 4: DBSCAN 알고리즘사용
dbscan() 함수: fpc 패키지에서 구현된 DBSCAN 알고리즘
– 1부터 3행은 뚜렷하게군집이 되었으나, 0행은 군집이제대로 되지않음
• 0행의값들은 noise 또는 outlier로취급
26
Ex. 4: Plotting
27
ds의 결과를 플로팅
– 검은색원이 noise 또는 outlier
Ex. 4: Plotting
28
Ex. 4: Plotting
첫 번째 컬럼(Sepal.Length)과 네번째 컬럼(Petal.Length)으로 플로팅
29
Ex. 4: Plotting
plotcluster() 함수: fpc 패키지에 있는 플로팅 함수
30