knn屬于監(jiān)督學(xué)習(xí),類(lèi)別是已知的,通過(guò)對(duì)已知分類(lèi)的數(shù)據(jù)進(jìn)行訓(xùn)練和學(xué)習(xí),找到這些不同類(lèi)的特征,再對(duì)未分類(lèi)的數(shù)據(jù)進(jìn)行分類(lèi)。kmeans屬于非監(jiān)督學(xué)習(xí),事先不知道數(shù)據(jù)會(huì)分為幾類(lèi),通過(guò)聚類(lèi)分析將數(shù)據(jù)聚合成幾個(gè)群體。
knn和kmeans的區(qū)別1.KNN算法是分類(lèi)算法,分類(lèi)算法肯定是需要有學(xué)習(xí)語(yǔ)料,然后通過(guò)學(xué)習(xí)語(yǔ)料的學(xué)習(xí)之后的模板來(lái)匹配我們的測(cè)試語(yǔ)料集,將測(cè)試語(yǔ)料集合進(jìn)行按照預(yù)先學(xué)習(xí)的語(yǔ)料模板來(lái)分類(lèi)
2Kmeans算法是聚類(lèi)算法,聚類(lèi)算法與分類(lèi)算法最大的區(qū)別是聚類(lèi)算法沒(méi)有學(xué)習(xí)語(yǔ)料集合。
K-means算法是聚類(lèi)分析中使用最廣泛的算法之一。它把n個(gè)對(duì)象根據(jù)他們的屬性分為k個(gè)聚類(lèi)以便使得所獲得的聚類(lèi)滿(mǎn)足:同一聚類(lèi)中的對(duì)象相似度較高;而不同聚類(lèi)中的對(duì)象相似度較小。
Kmeans算法的缺陷聚類(lèi)中心的個(gè)數(shù)K 需要事先給定,但在實(shí)際中這個(gè) K 值的選定是非常難以估計(jì)的,很多時(shí)候,事先并不知道給定的數(shù)據(jù)集應(yīng)該分成多少個(gè)類(lèi)別才最合適
Kmeans需要人為地確定初始聚類(lèi)中心,不同的初始聚類(lèi)中心可能導(dǎo)致完全不同的聚類(lèi)結(jié)果。(可以使用Kmeans++算法來(lái)解決)
針對(duì)上述第2個(gè)缺陷,可以使用Kmeans++算法來(lái)解決
K-Means ++ 算法
k-means++算法選擇初始seeds的基本思想就是:初始的聚類(lèi)中心之間的相互距離要盡可能的遠(yuǎn)。
從輸入的數(shù)據(jù)點(diǎn)集合中隨機(jī)選擇一個(gè)點(diǎn)作為第一個(gè)聚類(lèi)中心
對(duì)于數(shù)據(jù)集中的每一個(gè)點(diǎn)x,計(jì)算它與最近聚類(lèi)中心(指已選擇的聚類(lèi)中心)的距離D(x)
選擇一個(gè)新的數(shù)據(jù)點(diǎn)作為新的聚類(lèi)中心,選擇的原則是:D(x)較大的點(diǎn),被選取作為聚類(lèi)中心的概率較大
重復(fù)2和3直到k個(gè)聚類(lèi)中心被選出來(lái)
利用這k個(gè)初始的聚類(lèi)中心來(lái)運(yùn)行標(biāo)準(zhǔn)的k-means算法
從上面的算法描述上可以看到,算法的關(guān)鍵是第3步,如何將D(x)反映到點(diǎn)被選擇的概率上,一種算法如下:
先從我們的數(shù)據(jù)庫(kù)隨機(jī)挑個(gè)隨機(jī)點(diǎn)當(dāng)“種子點(diǎn)”
對(duì)于每個(gè)點(diǎn),我們都計(jì)算其和最近的一個(gè)“種子點(diǎn)”的距離D(x)并保存在一個(gè)數(shù)組里,然后把這些距離加起來(lái)得到Sum(D(x))。
然后,再取一個(gè)隨機(jī)值,用權(quán)重的方式來(lái)取計(jì)算下一個(gè)“種子點(diǎn)”。這個(gè)算法的實(shí)現(xiàn)是,先取一個(gè)能落在Sum(D(x))中的隨機(jī)值Random,然后用Random -= D(x),直到其<=0,此時(shí)的點(diǎn)就是下一個(gè)“種子點(diǎn)”。
重復(fù)2和3直到k個(gè)聚類(lèi)中心被選出來(lái)
利用這k個(gè)初始的聚類(lèi)中心來(lái)運(yùn)行標(biāo)準(zhǔn)的k-means算法
大學(xué)院校在線查
高考熱門(mén)一鍵查
有疑問(wèn)就來(lái)發(fā)現(xiàn)