人工智能之K-Means算法

前言:人工智能機(jī)器學(xué)習(xí)有關(guān)算法內(nèi)容,人工智能之機(jī)器學(xué)習(xí)主要有三大類(lèi):1)分類(lèi);2)回歸;3)聚類(lèi)。今天我們重點(diǎn)探討一下K-Means算法。

K-Means是十大經(jīng)典數(shù)據(jù)挖掘算法之一。K-MeansKNN(K鄰近)看上去都是K打頭,但卻是不同種類(lèi)的算法。kNN是監(jiān)督學(xué)習(xí)中的分類(lèi)算法,而K-Means則是非監(jiān)督學(xué)習(xí)中的聚類(lèi)算法;二者相同之處是均利用近鄰信息來(lái)標(biāo)注類(lèi)別。

提到“聚類(lèi)”一詞,使人不禁想到:“物以類(lèi)聚,人以群分”。聚類(lèi)是數(shù)據(jù)挖掘中一種非常重要的學(xué)習(xí)流派,指將未標(biāo)注的樣本數(shù)據(jù)中相似的分為同一類(lèi)。

K-means算法是很典型的基于距離的聚類(lèi)算法。于1982年由Lloyod提出。它是簡(jiǎn)單而又有效的統(tǒng)計(jì)聚類(lèi)算法。一般采用距離作為相似性的評(píng)價(jià)指標(biāo),即認(rèn)為兩個(gè)對(duì)象的距離越近,其相似度就越大。該算法認(rèn)為是由距離靠近的對(duì)象組成的,因此把得到緊湊且獨(dú)立的簇作為最終目標(biāo)。

K-Means概念:

K-means算法是硬聚類(lèi)算法,是典型的基于原型的目標(biāo)函數(shù)聚類(lèi)方法的代表,它是數(shù)據(jù)點(diǎn)到原型的某種距離作為優(yōu)化的目標(biāo)函數(shù),利用函數(shù)求極值的方法得到迭代運(yùn)算的調(diào)整規(guī)則。K-means算法以歐式距離作為相似度測(cè)度,它是求對(duì)應(yīng)某一初始聚類(lèi)中心向量V最優(yōu)分類(lèi),使得評(píng)價(jià)指標(biāo)J最小。算法采用誤差平方和準(zhǔn)則函數(shù)作為聚類(lèi)準(zhǔn)則函數(shù)。

K-Means核心思想:

由用戶(hù)指定k個(gè)初始質(zhì)心(initial centroids),作為聚類(lèi)的類(lèi)別(cluster),重復(fù)迭代直至算法收斂。即以空間中k個(gè)點(diǎn)為中心進(jìn)行聚類(lèi),對(duì)最靠近他們的對(duì)象歸類(lèi)。通過(guò)迭代的方法,逐次更新各聚類(lèi)中心的值,直至得到最好的聚類(lèi)結(jié)果。

k個(gè)初始類(lèi)聚類(lèi)中心點(diǎn)的選取對(duì)聚類(lèi)結(jié)果具有較大的。

K-Means算法描述:

假設(shè)要把樣本集分為c個(gè)類(lèi)別,算法描述如下:

1)適當(dāng)選擇c個(gè)類(lèi)的初始中心;

2)在第k次迭代中,對(duì)任意一個(gè)樣本,求其到c個(gè)中心的距離,將該樣本歸到距離最短的中心所在的類(lèi);

3)利用均值等方法更新該類(lèi)的中心值;

4)對(duì)于所有的c個(gè)聚類(lèi)中心,如果利用2)和3)的迭代法更新后,值保持不變,則迭代結(jié)束,否則繼續(xù)迭代。

具體如下:

輸入:k, data[n];

1)選擇k個(gè)初始中心點(diǎn),例如c[0]=data[0],…c[k-1]=data[k-1];

2)對(duì)于data[0]….data[n],分別與c[0]…c[k-1]比較,假定與c[i]差值最少,就標(biāo)記為i;

3)對(duì)于所有標(biāo)記為i點(diǎn),重新計(jì)算c[i]={ 所有標(biāo)記為i的data[j]之和}/標(biāo)記為i的個(gè)數(shù);

4)重復(fù)2)和3),直到所有c[i]值的變化小于給定閾值。

該算法的最大優(yōu)勢(shì)在于簡(jiǎn)潔和快速。算法的關(guān)鍵在于初始中心的選擇和距離公式。

K-Means工作流程:

1)從 n個(gè)數(shù)據(jù)對(duì)象任意選擇k個(gè)對(duì)象作為初始聚類(lèi)中心;

2)根據(jù)每個(gè)聚類(lèi)對(duì)象的均值中心對(duì)象),計(jì)算每個(gè)對(duì)象與這些中心對(duì)象的距離;并根據(jù)最小距離重新對(duì)相應(yīng)對(duì)象進(jìn)行劃分;

3)重新計(jì)算每個(gè)(有變化)聚類(lèi)的均值(中心對(duì)象);

4)循環(huán)2)到3)直到每個(gè)聚類(lèi)不再發(fā)生變化為止,即標(biāo)準(zhǔn)測(cè)度函數(shù)收斂為止。

注:一般采用均方差作為標(biāo)準(zhǔn)測(cè)度函數(shù)。

K-Means算法接受輸入量k;然后將n個(gè)數(shù)據(jù)對(duì)象劃分為k個(gè)聚類(lèi)以便使得所獲得的聚類(lèi)滿(mǎn)足:同一聚類(lèi)中的對(duì)象相似度較高;而不同聚類(lèi)中的對(duì)象相似度較小。即,各聚類(lèi)本身盡可能的緊湊,而各聚類(lèi)之間盡可能的分開(kāi)。

聚類(lèi)相似度是利用各聚類(lèi)中對(duì)象的均值所獲得一個(gè)“中心對(duì)象”(引力中心)來(lái)進(jìn)行計(jì)算的。

12下一頁(yè)>

(免責(zé)聲明:本網(wǎng)站內(nèi)容主要來(lái)自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請(qǐng)進(jìn)一步核實(shí),并對(duì)任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對(duì)有關(guān)資料所引致的錯(cuò)誤、不確或遺漏,概不負(fù)任何法律責(zé)任。
任何單位或個(gè)人認(rèn)為本網(wǎng)站中的網(wǎng)頁(yè)或鏈接內(nèi)容可能涉嫌侵犯其知識(shí)產(chǎn)權(quán)或存在不實(shí)內(nèi)容時(shí),應(yīng)及時(shí)向本網(wǎng)站提出書(shū)面權(quán)利通知或不實(shí)情況說(shuō)明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實(shí)情況證明。本網(wǎng)站在收到上述法律文件后,將會(huì)依法盡快聯(lián)系相關(guān)文章源頭核實(shí),溝通刪除相關(guān)內(nèi)容或斷開(kāi)相關(guān)鏈接。 )

贊助商
2018-06-17
人工智能之K-Means算法
前言:人工智能機(jī)器學(xué)習(xí)有關(guān)算法內(nèi)容,人工智能之機(jī)器學(xué)習(xí)主要有三大類(lèi):1)分類(lèi);2)回歸;3)聚類(lèi)。今天我們重點(diǎn)探討一下K-Means算法。K-Means是十大經(jīng)典數(shù)據(jù)挖掘算法之一。

長(zhǎng)按掃碼 閱讀全文