KMeans聚類(lèi)算法實(shí)現(xiàn)鳶尾花的聚類(lèi)

KMeans聚類(lèi)描述
  1. 聚類(lèi)是無(wú)監(jiān)督學(xué)習(xí),它將相似對(duì)象歸到同一個(gè)簇中,簇內(nèi)對(duì)象越相似,聚類(lèi)的效果越好。KMeans算法中k表示聚類(lèi)為多少個(gè)簇,means代表取每一個(gè)聚類(lèi)中數(shù)據(jù)的均值作為該簇的中心或稱(chēng)為質(zhì)心。

  2. KMeans算法的流程:
    (1)隨機(jī)確定k個(gè)質(zhì)心
    (2)將數(shù)據(jù)集中每一個(gè)點(diǎn)找到距離其最近的質(zhì)心,并將其分配到對(duì)應(yīng)的簇
    (3)每一個(gè)簇的質(zhì)心更新為該簇中所有點(diǎn)的均值
    (4)重復(fù)2,3直到質(zhì)心無(wú)法再更新
    3.圖解
    假設(shè)有九個(gè)點(diǎn)分位三類(lèi) k=3
    (1)圖中隨機(jī)選擇三個(gè)點(diǎn)


    (1)

    (2)把距離這三個(gè)點(diǎn)最近的其他點(diǎn)歸為一類(lèi)(簇)


    (2)

    (3)取當(dāng)前類(lèi)的所有點(diǎn)均值,作為中心點(diǎn)
    (3)

    (4)更新距離中心點(diǎn)最近的點(diǎn)
    (4)

    (5)再次計(jì)算被分類(lèi)點(diǎn)的均值作為新的中心點(diǎn)
    (5)

    (6)再次更新距離中心點(diǎn)最近的點(diǎn)
    (6)

    (7)計(jì)算中心點(diǎn)
    (7)

    (8)直到所有點(diǎn)無(wú)法再更新到其他分類(lèi)時(shí),算法結(jié)束。

sklearn實(shí)現(xiàn)鳶尾花的KMeans聚類(lèi)
from sklearn import datasets

iris = datasets.load_iris()
#print(iris)
#print(iris.data,type(iris.data))
#print(iris.target,type(iris.target))
#print(iris.target_names,type(iris.target_names))
#print(iris.feature_names,type(iris.feature_names))

#使用交叉驗(yàn)證,把數(shù)據(jù)集分位訓(xùn)練樣本和測(cè)試樣本集
from sklearn.model_selection import train_test_split
xtrain,xtest,ytrain,ytest = train_test_split(iris.data,iris.target,test_size=0.1)

#建立模型
from sklearn.cluster import KMeans
model = KMeans(n_clusters=3)
model.fit(xtrain)
pre = model.predict(xtrain)
center = model.cluster_centers_
print(pre,center)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容