国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

無(wú)涯教程-聚類(lèi)算法 - K-Means

這篇具有很好參考價(jià)值的文章主要介紹了無(wú)涯教程-聚類(lèi)算法 - K-Means。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

K-均值聚類(lèi)算法計(jì)算質(zhì)心并進(jìn)行迭代,直到找到最佳質(zhì)心為止,它假定群集的數(shù)目是已知的,它也稱為扁平聚類(lèi)算法。通過(guò)算法從數(shù)據(jù)中識(shí)別出的簇?cái)?shù)以K均值中的" K"表示。

在該算法中,將數(shù)據(jù)點(diǎn)分配給群集,以使數(shù)據(jù)點(diǎn)和質(zhì)心之間的平方距離之和最小。應(yīng)當(dāng)理解,簇內(nèi)的較少變化將導(dǎo)致相同簇內(nèi)的更多相似數(shù)據(jù)點(diǎn)。

K均值算法

無(wú)涯教程可以通過(guò)以下步驟來(lái)了解K-Means聚類(lèi)算法的工作原理-

第1步? ?- 首先,需要指定需要由該算法生成的簇?cái)?shù)K。

第2步? ?- 接下來(lái),隨機(jī)選擇K個(gè)數(shù)據(jù)點(diǎn)并將每個(gè)數(shù)據(jù)點(diǎn)分配給一個(gè)群集,簡(jiǎn)單來(lái)說(shuō),就是根據(jù)數(shù)據(jù)點(diǎn)的數(shù)量對(duì)數(shù)據(jù)進(jìn)行分類(lèi)。

第3步? ?- 現(xiàn)在,它將計(jì)算聚類(lèi)質(zhì)心。

第4步? ?- 接下來(lái),繼續(xù)迭代以下步驟,直到找到最佳質(zhì)心為止,這是將數(shù)據(jù)點(diǎn)分配給不再變化的群集的情況

  • ? ? ? 4.1 - 首先,將計(jì)算數(shù)據(jù)點(diǎn)和形心之間的平方距離之和。

  • ? ? ? 4.2 - 現(xiàn)在,必須將每個(gè)數(shù)據(jù)點(diǎn)分配給比其他群集(質(zhì)心)更近的群集。

  • ? ? ? 4.3 - 最后,通過(guò)獲取聚類(lèi)的所有數(shù)據(jù)點(diǎn)的平均值來(lái)計(jì)算聚類(lèi)的質(zhì)心。

K均值遵循期望最大化方法來(lái)解決此問(wèn)題,期望步驟用于將數(shù)據(jù)點(diǎn)分配給最近的群集,而最大化步驟用于計(jì)算每個(gè)群集的質(zhì)心。

使用K-means算法時(shí),需要注意以下事項(xiàng)-

  • 在使用包含K-Means的聚類(lèi)算法時(shí),建議對(duì)數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化,因?yàn)榇祟?lèi)算法使用基于距離的測(cè)量來(lái)確定數(shù)據(jù)點(diǎn)之間的相似性。

  • 由于K-Means的迭代性質(zhì)和質(zhì)心的隨機(jī)初始化,K-Means可能停留在局部最優(yōu)中,而可能不會(huì)收斂于全局最優(yōu)。因此建議使用不同的質(zhì)心初始化。

代碼實(shí)現(xiàn)

以下兩個(gè)實(shí)施K-Means聚類(lèi)算法的示例將幫助無(wú)涯教程更好地理解-

K-Means示例1

這是了解k均值如何工作的簡(jiǎn)單示例。在此示例中,將首先生成包含4個(gè)不同Blob的2D數(shù)據(jù)集,然后將應(yīng)用k-means算法查看輸出。

首先,將從導(dǎo)入必要的包開(kāi)始-

%matplotlib inline
import matplotlib.pyplot as plt
import seaborn as sns; sns.set()
import numpy as np
from sklearn.cluster import KMeans

以下代碼將生成2D,其中包含四個(gè)Blob-

from sklearn.datasets.samples_generator import make_blobs
X, y_true=make_blobs(n_samples=400, centers=4, cluster_std=0.60, random_state=0)

接下來(lái),以下代碼將幫助可視化數(shù)據(jù)集-

plt.scatter(X[:, 0], X[:, 1], s=20);
plt.show()

接下來(lái),使KMeans為對(duì)象,并提供聚類(lèi)數(shù)量,訓(xùn)練模型并按以下方式進(jìn)行預(yù)測(cè)-

kmeans=KMeans(n_clusters=4)
kmeans.fit(X)
y_kmeans=kmeans.predict(X)

現(xiàn)在,借助以下代碼,可以繪制和可視化由k-means Python估計(jì)器選擇的群集中心-

from sklearn.datasets.samples_generator import make_blobs
X, y_true=make_blobs(n_samples=400, centers=4, cluster_std=0.60, random_state=0)

接下來(lái),以下代碼將幫助可視化數(shù)據(jù)集-

plt.scatter(X[:, 0], X[:, 1], c=y_kmeans, s=20, cmap=summer)
centers=kmeans.cluster_centers_
plt.scatter(centers[:, 0], centers[:, 1], c=blue, s=100, alpha=0.9);
plt.show()

K-Means示例2

讓無(wú)涯教程轉(zhuǎn)到另一個(gè)示例,在該示例中,將對(duì)簡(jiǎn)單數(shù)字?jǐn)?shù)據(jù)集應(yīng)用K均值聚類(lèi), K-means將嘗試在不使用原始標(biāo)簽信息的情況下識(shí)別相似的數(shù)字。

首先,將從導(dǎo)入必要的包開(kāi)始-

%matplotlib inline
import matplotlib.pyplot as plt
import seaborn as sns; sns.set()
import numpy as np
from sklearn.cluster import KMeans

接下來(lái),從sklearn加載數(shù)字?jǐn)?shù)據(jù)集并使其成為對(duì)象。還可以在此數(shù)據(jù)集中找到行數(shù)和列數(shù),如下所示:

from sklearn.datasets import load_digits
digits=load_digits()
digits.data.shape
(1797, 64)

上面的輸出顯示此數(shù)據(jù)集包含1797個(gè)具有64個(gè)特征的樣本。

可以像上面的示例1一樣執(zhí)行聚類(lèi)-

kmeans=KMeans(n_clusters=10, random_state=0)
clusters=kmeans.fit_predict(digits.data)
kmeans.cluster_centers_.shape
(10, 64)

上面的輸出顯示K-means創(chuàng)建了具有64個(gè)特征的10個(gè)聚類(lèi)。

fig, ax=plt.subplots(2, 5, figsize=(8, 3))
centers=kmeans.cluster_centers_.reshape(10, 8, 8)
for axi, center in zip(ax.flat, centers):
axi.set(xticks=[], yticks=[])
axi.imshow(center, interpolation=nearest, cmap=plt.cm.binary)

作為輸出,將獲得以下圖像,該圖像顯示了通過(guò)k均值學(xué)習(xí)的聚類(lèi)中心。

以下代碼行將學(xué)習(xí)到的集群標(biāo)簽與在其中找到的真實(shí)標(biāo)簽匹配:

from scipy.stats import mode
labels = np.zeros_like(clusters)
for i in range(10):
   mask = (clusters == i)
   labels[mask] = mode(digits.target[mask])[0]

接下來(lái),無(wú)涯教程可以檢查準(zhǔn)確性,如下所示:

from sklearn.metrics import accuracy_score
accuracy_score(digits.target, labels)
0.7935447968836951

上面的輸出顯示精度約為80%。

聚類(lèi)算法 - K-Means - 無(wú)涯教程網(wǎng)無(wú)涯教程網(wǎng)提供K-均值聚類(lèi)算法計(jì)算質(zhì)心并進(jìn)行迭代,直到找到最佳質(zhì)心為止,它假定群集的數(shù)目是已知的...https://www.learnfk.com/python-machine-learning/machine-learning-with-python-clustering-algorithms-k-means.html文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-682517.html

到了這里,關(guān)于無(wú)涯教程-聚類(lèi)算法 - K-Means的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包