日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

机器学习非监督学习—k-means及案例分析

發(fā)布時間:2024/7/5 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 机器学习非监督学习—k-means及案例分析 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、非監(jiān)督學(xué)習(xí)

無監(jiān)督學(xué)習(xí),顧名思義,就是不受監(jiān)督的學(xué)習(xí),一種自由的學(xué)習(xí)方式。該學(xué)習(xí)方式不需要先驗知識進(jìn)行指導(dǎo),而是不斷地自我認(rèn)知,自我鞏固,最后進(jìn)行自我歸納,在機器學(xué)習(xí)中,無監(jiān)督學(xué)習(xí)可以被簡單理解為不為訓(xùn)練集提供對應(yīng)的類別標(biāo)識(label),其與有監(jiān)督學(xué)習(xí)的對比如下:有監(jiān)督學(xué)習(xí)(Supervised Learning)下的訓(xùn)練集:

(x(1),y(1)),(x(2),y2)(x(1),y(1)),(x(2),y2)

無監(jiān)督學(xué)習(xí)(Unsupervised Learning)下的訓(xùn)練集:

(x(1)),(x(2)),(x(3))(x(1)),(x(2)),(x(3))

在有監(jiān)督學(xué)習(xí)中,我們把對樣本進(jìn)行分類的過程稱之為分類(Classification),而在無監(jiān)督學(xué)習(xí)中,我們將物體被劃分到不同集合的過程稱之為聚類(Clustering)

二、非監(jiān)督學(xué)習(xí)之k-means

K-means通常被稱為勞埃德算法,這在數(shù)據(jù)聚類中是最經(jīng)典的,也是相對容易理解的模型。算法執(zhí)行的過程分為4個階段。

  • 1.首先,隨機設(shè)K個特征空間內(nèi)的點作為初始的聚類中心。
  • 2.然后,對于根據(jù)每個數(shù)據(jù)的特征向量,從K個聚類中心中尋找距離最近的一個,并且把該數(shù)據(jù)標(biāo)記為這個聚類中心。
  • 3.接著,在所有的數(shù)據(jù)都被標(biāo)記過聚類中心之后,根據(jù)這些數(shù)據(jù)新分配的類簇,通過取分配給每個先前質(zhì)心的所有樣本的平均值來創(chuàng)建新的質(zhì)心重,新對K個聚類中心做計算。
  • 4.最后,計算舊和新質(zhì)心之間的差異,如果所有的數(shù)據(jù)點從屬的聚類中心與上一次的分配的類簇沒有變化,那么迭代就可以停止,否則回到步驟2繼續(xù)循環(huán)。

K均值等于具有小的全對稱協(xié)方差矩陣的期望最大化算法

sklearn.cluster.KMeans

class sklearn.cluster.KMeans(n_clusters=8, init='k-means++', n_init=10, max_iter=300, tol=0.0001, precompute_distances='auto', verbose=0, random_state=None, copy_x=True, n_jobs=1, algorithm='auto')""":param n_clusters:要形成的聚類數(shù)以及生成的質(zhì)心數(shù):param init:初始化方法,默認(rèn)為'k-means ++',以智能方式選擇k-均值聚類的初始聚類中心,以加速收斂;random,從初始質(zhì)心數(shù)據(jù)中隨機選擇k個觀察值(行:param n_init:int,默認(rèn)值:10使用不同質(zhì)心種子運行k-means算法的時間。最終結(jié)果將是n_init連續(xù)運行在慣性方面的最佳輸出。:param n_jobs:int用于計算的作業(yè)數(shù)量。這可以通過并行計算每個運行的n_init。如果-1使用所有CPU。如果給出1,則不使用任何并行計算代碼,這對調(diào)試很有用。對于-1以下的n_jobs,使用(n_cpus + 1 + n_jobs)。因此,對于n_jobs = -2,所有CPU都使用一個。:param random_state:隨機數(shù)種子,默認(rèn)為全局numpy隨機數(shù)生成器""" from sklearn.cluster import KMeans import numpy as np X = np.array([[1, 2], [1, 4], [1, 0],[4, 2], [4, 4], [4, 0]]) kmeans = KMeans(n_clusters=2, random_state=0)

方法

fit(X,y=None)

使用X作為訓(xùn)練數(shù)據(jù)擬合模型

kmeans.fit(X)

predict(X)

預(yù)測新的數(shù)據(jù)所在的類別

kmeans.predict([[0, 0], [4, 4]]) array([0, 1], dtype=int32)

屬性

clustercenters

集群中心的點坐標(biāo)

kmeans.cluster_centers_ array([[ 1., 2.],[ 4., 2.]])

labels_

每個點的類別

kmeans.labels_

三、k-means案例分析

手寫數(shù)字?jǐn)?shù)據(jù)上K-Means聚類的演示

from sklearn.metrics import silhouette_score from sklearn.cluster import KMeansdef kmeans():"""手寫數(shù)字聚類過程:return: None"""# 加載數(shù)據(jù)ld = load_digits()print(ld.target[:20])# 聚類km = KMeans(n_clusters=810)km.fit_transform(ld.data)print(km.labels_[:20])print(silhouette_score(ld.data,km.labels_))return Noneif __name__=="__main__":kmeans()
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

總結(jié)

以上是生活随笔為你收集整理的机器学习非监督学习—k-means及案例分析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。