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

一、概述

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

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

 

二、算法描述

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

k值是k-means算法的一個(gè)關(guān)鍵輸入。但是如何

網(wǎng)友評論