K means聚類演算法

2021-10-03 19:37:11 字數 1418 閱讀 7986

k-means演算法

一、演算法概述

k-means中的k指的是資料聚成多少個簇,而means指的是根據簇的均值來確定簇中心,從而計算每個例項到每個簇的距離。

k-means聚類演算法是一種無監督聚類演算法,之前我們講過knn(k最近演算法),是一種有監督的分類演算法,其實本質上,knn和k-means聚類演算法,大同小異,與之不一樣的地方在於,knn是計算該例項到每個例項的距離,最後得出其自己的類別;而k-means聚類,是無監督的,是計算每個例項與聚類中心的距離,然後將該例項劃分到與聚類中心近的那一類別,重複數次,直到聚類中心不再變化。

二、k-means演算法原理

k-means的演算法原理很簡單,對於給定的資料集,假設我們想要把資料分成k類,即k個類簇,則有:

1)隨機從資料集中選取k個點作為初始的聚類中心;(或者隨機取k個點作為初始的聚類中心)

2)計算資料集中每個例項點到k個聚類中心的距離,然後將該例項點分到最近的聚類中,這樣就得到了k個簇;

3)根據聚成的k個簇,重新計算每個簇的聚類中心;

4)重複上述2-3步,直到k個簇的聚類中心不再變化,或者迭代一定的次數之後,即可停止。

三、演算法小例子

假設現在我們有資料集,如上圖(a)所示,我們的目標是將上述資料分成兩個簇,所以這裡我們的k=2。

1)演算法第一步,隨機取兩個點,作為簇的初始聚類中心,如上圖(b)所示;

2)演算法第二步,計算每個例項點到每個簇中心的距離,並將例項劃分到該簇中,如上圖(c)所示;

3)演算法第三步,重新計算每個簇中的聚類中心,如上圖(d)所示;

4)重複2-3步,直到簇的中心不再變化,如上圖(f)所示。

最終我們根據k-means聚類演算法得到兩個簇。

四、k-means的關鍵問題

1)k值的選擇:對於乙個沒有給定分類類別的資料集,我們該如何選取k值呢?比如對於上述資料,沒有規定分成兩個類簇,那麼我們選取k=3是否也可以呢?

當然是可以的,對於具體沒有說明分成幾個類簇的時候,我們可以通過先驗知識來選擇乙個合適的k值,或者通過交叉驗證來選擇合適的k值。注:如果選取較大的k值,雖然會降低資料的誤差,但同時會增加過擬合的風險。

2)初始聚類中心的選擇:①隨機從資料集中選取k個點作為類簇的初始聚類中心;②隨機選取k個點,作為類簇的初始聚類中心;③憑先驗知識選取k個初始聚類中心。

五、k-means的優缺點

優點:1)原理實現簡單,收斂速度較快;

2)聚類效果較優,演算法的可解釋性較強;

3)需要調參的引數,僅僅只有k;

缺點:1)k值的選取不好掌握;

2)採用迭代的方法,得到的效果只是區域性最優;

3)k-means演算法對初始聚類中心的選取是敏感的,不同的隨機聚類中心點得到的聚類結果完全不同 ,對結果影響很大。

K Means聚類演算法

k means聚類演算法 intergret kmeans演算法的基本思想是初始隨機給定k個簇中心,按照最鄰近原則把待分類樣本點分到各個簇。然後按平均法重新計算各個簇的質心,從而確定新的簇心。一直迭代,直到簇心的移動距離小於某個給定的值。k means聚類演算法主要分為三個步驟 1 第一步是為待聚類...

聚類演算法 K means

演算法接受引數 k 然後將事先輸入的n個資料物件劃分為 k個聚類以便使得所獲得的聚類滿足 同一聚類中的物件相似度較高 而不同聚類中的物件相似度較小。聚類相似度是利用各聚類中物件的均值所獲得乙個 中心物件 引力中心 來進行計算的。k means演算法是最為經典的基於劃分的聚類方法,是十大經典資料探勘演...

k means聚類演算法

說到聚類,得跟分類區別開來,分類是按人為給定的標準將樣本歸到某個類別中去,在機器學習中多是監督學習,也就是訓練樣本要給標籤 正確的類別資訊 而聚類是在某種規則下自動將樣本歸類,在機器學習中是無監督學習,不需要提前給樣本打標籤。k means聚類演算法,就是在某種度量方式下,將樣本自動劃分到k個類別中...