怎樣確定K-means算法中的k值
1. K-means算法
k-means算法是機(jī)器學(xué)習(xí)中常用的聚類算法,原理簡(jiǎn)單實(shí)現(xiàn)容易,內(nèi)存占用量也比較小。但使用這個(gè)方法時(shí),需要事先指定將要聚合成的簇?cái)?shù)。
在先驗(yàn)知識(shí)缺乏的情況下,想要確定是非常困難的。
目前常用的用來(lái)確定的方法主要有兩種:肘部法、輪廓系數(shù)法。
2. 初始k值的選擇
1) 肘部法
肘部法所使用的聚類評(píng)價(jià)指標(biāo)為:數(shù)據(jù)集中所有樣本點(diǎn)到其簇中心的距離之和的平方。但是肘部法選擇的并不是誤差平方和最小的,而是誤差平方和突然變小時(shí)對(duì)應(yīng)的
值。
2) 輪廓系數(shù)法
輪廓系數(shù)是一種非常常用的聚類效果評(píng)價(jià)指標(biāo)。該指標(biāo)結(jié)合了內(nèi)聚度和分離度兩個(gè)因素。其具體計(jì)算過程如下:
假設(shè)已經(jīng)通過聚類算法將待分類的數(shù)據(jù)進(jìn)行了聚類,并最終得到了個(gè)簇。
對(duì)于每個(gè)簇中的每個(gè)樣本點(diǎn),分別計(jì)算其輪廓系數(shù)。
具體地,需要對(duì)每個(gè)樣本點(diǎn)計(jì)算以下兩個(gè)指標(biāo):
:樣本點(diǎn)
到與其屬于同一個(gè)簇的其他樣本點(diǎn)的距離的平均值。
越小,說明該樣本
屬于該類的可能性越大。
:樣本點(diǎn)
到其他簇
中的所有樣本的平均距離
的最小值 ,
則樣本點(diǎn)的輪廓系數(shù)為:
而所有樣本點(diǎn)的輪廓系數(shù)的平均值,即為該聚類結(jié)果總的輪廓系數(shù)
。
,
越接近與1,聚類效果越好。
3) 具體案例
先利用sklearn.datasets中的方法生成自己的聚類數(shù)據(jù)集。
具體如下:
對(duì)數(shù)據(jù)x進(jìn)行歸一化(因?yàn)镵Means算法中涉及到距離的計(jì)算),具體如下:
使用肘部法確定值,其代碼如下:
使用輪廓系數(shù)確定值,其代碼如下:
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python中用函數(shù)作為返回值和實(shí)現(xiàn)閉包的教程
這篇文章主要介紹了Python中用函數(shù)作為返回值和實(shí)現(xiàn)閉包的教程,代碼基于Python2.x版本,需要的朋友可以參考下2015-04-04Python簡(jiǎn)單實(shí)現(xiàn)詞云圖代碼及步驟解析
這篇文章主要介紹了Python簡(jiǎn)單實(shí)現(xiàn)詞云圖代碼解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06python密碼學(xué)實(shí)現(xiàn)文件加密教程
這篇文章主要為大家介紹了python密碼學(xué)實(shí)現(xiàn)文件加密教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05Python利用os模塊實(shí)現(xiàn)自動(dòng)刪除磁盤文件
你們一定想不到os模塊還可以這樣玩,本文就將利用Python中的os模塊實(shí)現(xiàn)自動(dòng)刪除磁盤文件功能,文中的示例代碼講解詳細(xì),感興趣的可以嘗試一下2022-11-11詳解Selenium+PhantomJS+python簡(jiǎn)單實(shí)現(xiàn)爬蟲的功能
這篇文章主要介紹了詳解Selenium+PhantomJS+python簡(jiǎn)單實(shí)現(xiàn)爬蟲的功能,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07Django對(duì)數(shù)據(jù)庫(kù)進(jìn)行添加與更新的例子
今天小編就為大家分享一篇Django對(duì)數(shù)據(jù)庫(kù)進(jìn)行添加與更新的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2019-07-07Python3 assert斷言實(shí)現(xiàn)原理解析
這篇文章主要介紹了Python3 assert斷言實(shí)現(xiàn)原理解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03Python實(shí)現(xiàn)把多維數(shù)組展開成DataFrame
今天小編就為大家分享一篇Python實(shí)現(xiàn)把多維數(shù)組展開成DataFrame,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2019-11-11