クラスタリング演習問題

K-meansクラスタリング
階層的クラスタリング
• 最短距離法(最近隣法)
• 最長距離法(最遠隣法)
• 群平均法
• ウォード法
• 樹形図
非階層的(分割最適化)クラスタリング
• k平均法(k-means法)
• クラスタ𝐶𝑖 の重心𝒄𝑖 を代表点として,次の評価関数を最小化するように𝑘個
のクラスタを分割する.
𝑘
𝑑 𝒙, 𝒄𝑖
𝑖=1 𝒙∈𝐶𝑖
2
アルゴリズム
1. 𝑘個の代表点 𝑐1 , ⋯ , 𝑐𝑘 をランダムに選択する.
2. 𝑋 中の全ての対象𝑥を𝑐 ∗ = arg min 𝑑(𝒙, 𝒄𝑖 ) なる代表点をもつクラスタ 𝐶 ∗
𝑐𝑖
に割り当てる.
3. 代表点への割り当てが変化しないならば終了し,そうでなければ各クラス
タのセントロイドを代表点にしてステップ2へ戻る.
関数 kmeans
kmeans(x, centers, iter.max = 10, nstart = 1, algorithm = c("Hartigan-Wong", "Lloyd",
"Forgy", "MacQueen"), trace=FALSE)
•
•
•
•
•
x
分類する元データ
centers
クラスタ数
iter.max = 10繰り返し最大数.デフォルトは10回
nstart = 1
ランダムに初期値を設定するパラメータ.
algorithm = c("Hartigan-Wong", "Lloyd", "Forgy", "MacQueen")
分類アルゴリズム,デフォルトはHartigan-Wongでこれが最も良い.
• trace=FALSE
Hartigan-Wongだけで用いる.TRUEで探索経過をトレースする.
練習問題1
• 次の4点を階層的クラスタリング法で
クラスタリングする.
a(1,2) , b(2,2), c(4,4) , d(6,1)
練習問題1(1)
• vec <- c(1,2,2,2,4,4,6,1)
• データを入力する.
• data <- matrix(vec,4,2,byrow=T)
• サンプルデータをマトリックス形式に整理する.
• colnames(data) <- c("x","y")
• 列に名前をつける.
• rownames(data) <- c("a","b","c","d")
• 行に名前をつける.
練習問題1(2)
• kmeans(data,3)
• サンプルデータを3クラスタ
に分類する.
K-means clustering with 3 clusters of sizes 2, 1, 1
Cluster means:
xy
1 1.5 2
2 6.0 1
3 4.0 4
Clustering vector:
abcd
1132
Within cluster sum of squares by cluster:
[1] 0.5 0.0 0.0
(between_SS / total_SS = 97.4 %)
Available components:
[1] "cluster"
[8] "iter"
"centers"
"ifault"
"totss"
"withinss"
"tot.withinss" "betweenss" "size"
練習問題1(3)
• res <- kmeans(data,3)
• 結果を変数resに入力する.
• res$cluster
• クラスタの結果を表示する.
abcd
1123
• res$center
• クラスタ中心座標を返す.
xy
1 1.5 2
2 4.0 4
3 6.0 1
他の変数
cluster
centers
totss
withinss
tot.withinss
betweenss
size
iter
ifault
A vector of integers (from 1:k) indicating the cluster to which each
point is allocated.
A matrix of cluster centres.
The total sum of squares.
Vector of within-cluster sum of squares, one component per cluster.
Total within-cluster sum of squares, i.e. sum(withinss).
The between-cluster sum of squares, i.e. totss-tot.withinss.
The number of points in each cluster.
The number of (outer) iterations.
integer: indicator of a possible algorithm problem – for experts.
演習問題1
• K-means法により2クラスタに分類せよ.
名前
A
B
C
D
E
F
最高血圧
80
60
160
140
100
200
たばこ本数/日
5
3
8
6
6
10
演習問題2
• 新しい携帯電話についてアンケートをとったところ,以下のような結
果となった.K-means法により2クラスタに分類せよ.
A
B
C
D
E
F
G
年齢
25
35
70
50
30
20
40
性別
男
女
男
女
女
女
男