聚類算法是機(jī)器學(xué)習(xí)中的一大重要算法,也是我們掌握機(jī)器學(xué)習(xí)的必須算法,下面對(duì)聚類算法中的K-means算法做一個(gè)簡(jiǎn)單的描述:

一、概述

K-means算法屬于聚類算法中的直接聚類算法。給定一個(gè)對(duì)象(或記錄)的集合,將這些對(duì)象劃分為多個(gè)組或者“聚簇”,從而使同組內(nèi)的對(duì)象間比較相似而不同組對(duì)象間差異比較大;換言之,聚類算法就是將相似的對(duì)象放到同一個(gè)聚簇中,而將不相似的對(duì)象放到不同的聚簇中。由于在聚類過(guò)程中不使用到類別標(biāo)簽,所以相似性的概念要基于對(duì)象的屬性進(jìn)行定義。應(yīng)用不同則相似性規(guī)則和聚類算法一般不太一樣,所以,不同的聚類算法適應(yīng)于不同的業(yè)務(wù)場(chǎng)景,因此,“最優(yōu)”的聚類算法實(shí)際上依賴于具體的應(yīng)用。

k-means算法是一種簡(jiǎn)單的迭代型聚類算法,將一個(gè)給定的數(shù)據(jù)集分為用戶指定的k的聚簇。實(shí)現(xiàn)和運(yùn)行該算法都比較簡(jiǎn)單,而且運(yùn)行速度比較快,同時(shí)易于修改,所以在實(shí)際應(yīng)用中使用場(chǎng)景比較多,可以說(shuō)該算法是數(shù)據(jù)挖掘領(lǐng)域發(fā)展史中最為重要的算法之一。

 

二、算法描述

k-means算法的輸入對(duì)象是d維向量空間的一些點(diǎn)。因此,該算法是對(duì)一個(gè)d維向量的點(diǎn)集D={xi|i=1,....,N}進(jìn)行聚類,其中xi表示第i個(gè)對(duì)象(數(shù)據(jù)點(diǎn)), k-means算法會(huì)將集合D劃分為k個(gè)聚簇。也就是說(shuō)k-means算法會(huì)將集合D中的每一個(gè)點(diǎn)xi都?xì)w于k個(gè)聚簇中的一個(gè),所以可以定義一個(gè)長(zhǎng)度為N的聚簇成員向量m,其分量mi就是xi的聚簇標(biāo)識(shí)。

k值是k-means算法的一個(gè)關(guān)鍵輸入。但是如何選擇k值對(duì)于理解k-means算法的運(yùn)行原理沒(méi)有任何關(guān)系。k值的選擇的典型方法一般是根據(jù)某些先驗(yàn)

網(wǎng)友評(píng)論