發布日期:2022-10-09 點擊率:55
前言:人工智能機器學習有關算法內容,人工智能之機器學習主要有三大類:1)分類;2)回歸;3)聚類。今天我們重點探討一下K-Means算法。
K-Means是十大經典數據挖掘算法之一。K-Means和KNN(K鄰近)看上去都是K打頭,但卻是不同種類的算法。kNN是監督學習中的分類算法,而K-Means則是非監督學習中的聚類算法;二者相同之處是均利用近鄰信息來標注類別。
提到“聚類”一詞,使人不禁想到:“物以類聚,人以群分”。聚類是數據挖掘中一種非常重要的學習流派,指將未標注的樣本數據中相似的分為同一類。
K-means算法是很典型的基于距離的聚類算法。于1982年由Lloyod提出。它是簡單而又有效的統計聚類算法。一般采用距離作為相似性的評價指標,即認為兩個對象的距離越近,其相似度就越大。該算法認為簇是由距離靠近的對象組成的,因此把得到緊湊且獨立的簇作為最終目標。
K-Means概念:
K-means算法是硬聚類算法,是典型的基于原型的目標函數聚類方法的代表,它是數據點到原型的某種距離作為優化的目標函數,利用函數求極值的方法得到迭代運算的調整規則。K-means算法以歐式距離作為相似度測度,它是求對應某一初始聚類中心向量V最優分類,使得評價指標J最小。算法采用誤差平方和準則函數作為聚類準則函數。
K-Means核心思想:
由用戶指定k個初始質心(initial centroids),作為聚類的類別(cluster),重復迭代直至算法收斂。即以空間中k個點為中心進行聚類,對最靠近他們的對象歸類。通過迭代的方法,逐次更新各聚類中心的值,直至得到最好的聚類結果。
k個初始類聚類中心點的選取對聚類結果具有較大的。
K-Means算法描述:
假設要把樣本集分為c個類別,算法描述如下:
1)適當選擇c個類的初始中心;
2)在第k次迭代中,對任意一個樣本,求其到c個中心的距離,將該樣本歸到距離最短的中心所在的類;
3)利用均值等方法更新該類的中心值;
4)對于所有的c個聚類中心,如果利用2)和3)的迭代法更新后,值保持不變,則迭代結束,否則繼續迭代。
具體如下:
輸入:k, data[n];
1)選擇k個初始中心點,例如c[0]=data[0],…c[k-1]=data[k-1];
2)對于data[0]….data[n],分別與c[0]…c[k-1]比較,假定與c[i]差值最少,就標記為i;
3)對于所有標記為i點,重新計算c[i]={ 所有標記為i的data[j]之和}/標記為i的個數;
4)重復2)和3),直到所有c[i]值的變化小于給定閾值。
該算法的最大優勢在于簡潔和快速。算法的關鍵在于初始中心的選擇和距離公式。
K-Means工作流程:
1)從 n個數據對象任意選擇k個對象作為初始聚類中心;
2)根據每個聚類對象的均值(中心對象),計算每個對象與這些中心對象的距離;并根據最小距離重新對相應對象進行劃分;
3)重新計算每個(有變化)聚類的均值(中心對象);
4)循環2)到3)直到每個聚類不再發生變化為止,即標準測度函數收斂為止。
注:一般采用均方差作為標準測度函數。
K-Means算法接受輸入量k;然后將n個數據對象劃分為k個聚類以便使得所獲得的聚類滿足:同一聚類中的對象相似度較高;而不同聚類中的對象相似度較小。即,各聚類本身盡可能的緊湊,而各聚類之間盡可能的分開。
聚類相似度是利用各聚類中對象的均值所獲得一個“中心對象”(引力中心)來進行計算的。
下一篇: PLC、DCS、FCS三大控
上一篇: 索爾維全系列Solef?PV