
分群法(clustering)
|
235
>>>
kmeans.transform(X_new)
array([[2.81093633, 0.32995317, 2.9042344 , 1.49439034, 2.88633901],
[5.80730058, 2.80290755, 5.84739223, 4.4759332 , 5.84236351],
[1.21475352, 3.29399768, 0.29040966, 1.69136631, 1.71086031],
[0.72581411, 3.21806371, 0.36159148, 1.54808703, 1.21567622]])
在這個例子中
,
X_new
的第一個實例距離第一個質心
2.81,
距離第二個質心
0.33,
距離第
三個質心
2.90,
距離第四個質心
1.49,
距離第五個質心
2.89。
如果你的資料組是高維的
,
用這種方式轉換它可產生一個
k
維的資料組
:
這個轉換或許是非常高效的非線性降維技
術
。
K-Means 演算法
那麼
,
這個演算法究竟是如何運作的呢
?
如果你已經知道質心了
,
你可以將資料組的所有
實例分配給最接近它的質心所屬的群聚
,
來輕鬆地幫所有實例加上標籤
。
反過來說
,
如果
你已經取得所有實例標籤了
,
你可以計算各個群體的實例均值
,
來輕鬆地找到所有質心
。
但是現在你既沒有標籤
,
也沒有質心
,
該如何繼續工作
?
你只要隨便放置質心
(
例如隨機
選擇
k
個實例
,
並且將它們的位置當成質心
),
再幫實例加上標籤
,
更改質心
,
加標籤
,
更改質心
,
以此類推 ...