K means演算法及其優化

2021-08-17 15:20:42 字數 1454 閱讀 8097

聚類演算法是一種典型的無監督學習演算法,主要用於將相似的樣本自動歸到乙個類別中。聚類演算法與分類演算法最大的區別是:聚類演算法是無監督的學習演算法,而分類演算法屬於監督的學習演算法。

在聚類演算法中根據樣本之間的相似性,將樣本劃分到不同的類別中,對於不同的相似度計算方法,會得到不同的聚類結果,常用的相似度計算方法有歐式距離法。

基本k-means

演算法的思想很簡單,事先確定常數

k,常數

k意味著最終的聚類類別數,首先隨機選定初始點為質心,並通過計算每乙個樣本與質心之間的相似度(這裡為歐式距離),將樣本點歸到最相似的類中,接著,重新計算每個類的質心(即為類中心),重複這樣的過程,直到質心不再改變,最終就確定了每個樣本所屬的類別以及每個類的質心。由於每次都要計算所有的樣本與每乙個質心之間的相似度,故在大規模的資料集上,

k-means

演算法的收斂速度比較慢。

輸出最終的質心以及每個類

優點:易於實現

缺點:可能收斂於區域性最小值,在大規模資料收斂慢

k均值演算法非常簡單且使用廣泛,但是其有主要的兩個缺陷:

2.k-means演算法對初始選取的聚類中心點是敏感的,不同的隨機種子點得到的聚類結果完全不同

3.k均值演算法並不適合所有的資料型別。它不能處理非球形簇、不同尺寸和不同密度的簇。

4.對離群點的資料進行聚類時,k均值也有問題,這種情況下,離群點檢測和刪除有很大的幫助。

由於傳統的k-means演算法的聚類結果易受到初始聚類中心點選擇的影響,因此在傳統的k-means演算法的基礎上進行演算法改進,對初始中心點選取比較嚴格,各中心點的距離較遠,這就避免了初始聚類中心會選到乙個類上,一定程度上克服了演算法陷入區域性最優狀態。

為了克服k-means演算法收斂於區域性最小值的問題,提出了一種二分k-均值(bisecting k-means)

二分k-means(bisecting kmeans)演算法的主要思想是:首先將所有點作為乙個簇,然後將該簇一分為二。之後選擇能最大限度降低聚類代價函式(也就是誤差平方和)的簇劃分為兩個簇。以此進行下去,直到簇的數目等於使用者給定的數目k為止。以上隱含的乙個原則就是:因為聚類的誤差平方和能夠衡量聚類效能,該值越小表示資料點越接近於他們的質心,聚類效果就越好。所以我們就需要對誤差平方和最大的簇進行再一次劃分因為誤差平方和越大,表示該簇聚類效果越不好越有可能是多個簇被當成了乙個簇,所以我們首先需要對這個簇進行劃分。

比如要分成5個組,第一次**產生2個組,然後從這2個組中選乙個目標函式產生的誤差比較大的,**這個組產生2個,這樣加上開始那1個就有3個組了,然後再從這3個組裡選乙個**,產生4個組,重複此過程,產生5個組。這算是一中基本求精的思想。二分k均值不太受初始化的困擾,因為它執行了多次二分試驗並選取具有最小誤差的試驗結果,還因為每步只有兩個質心。

k means演算法優化

一 k means演算法介紹 k means 演算法是首先從含有n個資料物件的資料集中隨機選擇k個資料物件作為初始中心。然後計算每個資料物件到各中心的距離,根據最近鄰原則,所有資料物件將會被劃分到離它最近的那個中心所代表的簇中。接著分別計算新生成的各個簇中資料物件的均值作為各簇新的中心,比較新的中心...

Kmeans演算法及其示例

kmeans是簡單的聚類分析演算法。其常用在資料分析與人工智慧中。簡單說,kmeans演算法就是把乙個集合中的東西分為若干子集,這幾個子集內的元素具有空間相近或者特點相近。做法 1.隨機選取k各中心點,生成對應的k個簇。2.遍歷所有的資料點,依據 距離 將每乙個資料點劃分到最近的中心點所在的簇。3....

kmeans演算法及其實現

k 均值演算法能夠使聚類域中所有樣品到聚類中心距離平方和最小。其原理為 先取 k個初始聚類中心,計算每個樣品到這 k個中心的距離,找出最小距離,把樣品歸入最近的聚類中心,修改中心點的值為本類所有樣品的均值,再計算各個樣品到新的聚類中心的距離,重新歸類,修改新的中心點,直到新的聚類中心和上一次聚類中心...