K 均值演算法

2022-10-11 03:09:10 字數 1699 閱讀 7259

k-均值演算法是聚類演算法,非監督式機器學習演算法

什麼是聚類:

把本身不存在類別標籤的資料,將資料物件集合按照相似性劃分成多個子集的過程,每個自己是乙個簇(cluster),簇和簇之間的差別比較大,使得簇中的物件彼此相似,但與其他簇中的物件不相似

分類:有監督學習,通過有標籤樣本學習分類器

聚類:無監督學習,通過觀察學習,將資料分割成多個簇

劃分方法:

啟發式劃分方法:即要求簇內的物件盡可能地緊湊,簇和簇之間地距離盡可能地有差異

\(e = \sum_^\sum_}\left ( d\left ( p,c_\right )\right )^\)

表示資料有k個簇,對於每個簇,\(c_\)是簇的中心,我們要求每個簇裡面的每個點\(p\),\(p\)到本簇的中心\(c_\)的距離盡可能地小,即\(d\left ( p,c\right )\)盡可能小,越**明這個簇就越緊湊,所以\(e\)值越小越好

綜上:\(k\)均值演算法地特點就是,對於\(k\)個簇,每個簇用該簇物件的均值來表示,是一種基於質心的技術。

注意:\(k\)均值演算法只適用於發現球狀的簇,對於凹狀的簇,\(k\)均值演算法是無能為力的。

\(k\)均值演算法的工作流程

對於\(k\)均值演算法,在演算法剛啟動的時候,要先定乙個侷促的數目

那麼聚簇的數目\(k\)怎麼定呢?有很多方法,這裡先介紹乙個:

我們可以先畫散點圖,通過散點圖看一下大致可以分為幾個類

上圖中的兩種藍色的點,可以大致聚為兩類,我們就可以事先定\(k = 2\)

有了聚類的個數後,隨機的在我們的資料裡面隨機選擇兩個點作為均值點,比如我們上圖中的兩個紅點

選定均值點後,計算資料中的點到選定的均值點的距離,離哪個均值點近就認為它屬於哪個均值點裡面的哪個簇,這樣我們就可以得到兩個簇:

分成兩個簇後,這兩個簇他們的均值要有所調整

比如我們看深藍色的4個點,這4個點的均值在哪呢,二維資料的均值,我們可以計算橫軸乙個均值,縱軸乙個均值,以此來我就可以計算這個聚簇的新的乙個均值點

均值調整後就要重新計算所有資料點到這兩個均值點之間的距離,離哪個均值點近就認為它屬於哪個均值點裡面的哪個簇,這樣我們就可以得到兩個新簇:

繼續調整均值點:

繼續重新聚簇:

可以發現這個圖就是我們上面的第二個圖。

也就是說\(k\)均值演算法達到了乙個差不多收斂的、穩定的狀態,即均值點基本上不怎麼變化了。

K 均值演算法

動態聚類方法是模式識別中一種普遍採用的方法,它具有以下3個要點 1 選定某種距離度量作為樣本間的相似性度量 2 確定某個評價聚類結果質量的準則函式 3 給定某個初始分類,然後用迭代演算法找出使準則函式取極值的最好的聚類結果 k means演算法 輸入 聚類個數k,以及包含 n個資料物件的資料庫。輸出...

K均值演算法

假設需要聚成k個類 演算法先會隨機從資料集中選取k個點,把他們當做k個聚類的中心點 依次計算資料集中的每乙個點與各個中心點的距離,離哪個中心點近,就劃分到那個中心點對應的聚類下 計算分到同一類簇下,所有點的均值,更新中心點,重複 直至達到迭代結束條件 import numpy as np impor...

k均值演算法

1 撲克牌手動演練k均值聚類過程 30張牌,3類 實驗總牌數為30,分三類進行三輪迭代。第一輪 抽取聚類中心為 3 4 7.聚類結果為 第二輪 經過求平均後,重新確定聚類中心為 2 4 10 第三輪 對上類再進行求平均,選定聚類中心為2 5 10 最終聚類中心穩定在2 5 10,以此為小中大劃分。2...