柚子快報(bào)激活碼778899分享:人工智能 機(jī)器學(xué)習(xí)中的聚類
柚子快報(bào)激活碼778899分享:人工智能 機(jī)器學(xué)習(xí)中的聚類
目錄
認(rèn)識(shí)聚類算法
聚類算法API的使用
聚類算法實(shí)現(xiàn)流程
聚類算法模型評(píng)估?
認(rèn)識(shí)聚類算法
聚類算法是一種無(wú)監(jiān)督的機(jī)器學(xué)習(xí)算法。?它將一組數(shù)據(jù)分成若干個(gè)不同的群組,使得每個(gè)群組內(nèi)部的數(shù)據(jù)點(diǎn)相似度高,而不同群組之間的數(shù)據(jù)點(diǎn)相似度低。常用的相似度計(jì)算方法有歐式距離法。
聚類算法在現(xiàn)實(shí)生活中的應(yīng)用?
用戶畫像,廣告推薦,搜索引擎的流量推薦,惡意流量識(shí)別,圖像分割,降維,識(shí)別 離群點(diǎn)檢測(cè)。
栗子:按照顆粒度分類?
聚類算法分類?
K-means聚類:按照質(zhì)心分類層次聚類:是一種將數(shù)據(jù)集分層次分割的聚類算法DBSCAN聚類是一種基于密度的聚類算法譜聚類是一種基于圖論的聚類算法
聚類算法與分類算法最大的區(qū)別:
聚類算法是無(wú)監(jiān)督的學(xué)習(xí)算法分類算法屬于監(jiān)督的學(xué)習(xí)算法??
聚類算法API的使用
sklearn.cluster.KMeans(n_clusters=8)?
n_clusters:開始的聚類中心數(shù)量整型,缺省值=8,生成的聚類數(shù)estimator.fit(x) estimator.predict(x) estimator.fit_predict(x)
使用KMeans模型數(shù)據(jù)探索聚類:
?
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt
from sklearn.datasets import make_blobs
from sklearn.metrics import calinski_harabasz_score
def dm04_kmeans():
x, y = make_blobs(n_samples=1000, n_features=2, centers=[[-1,-1], [0,0], [1,1], [2,2]],
cluster_std = [0.4, 0.2, 0.2, 0.2], random_state=22)
plt.figure()
plt.scatter(x[:, 0], x[:, 1], marker='o')
plt.show()
y_pred = KMeans(n_clusters=2, random_state=22, init='k-means++').fit_predict(x)
plt.scatter(x[:, 0], x[:, 1], c=y_pred)
plt.show()
print(calinski_harabasz_score(x, y_pred))
聚類算法實(shí)現(xiàn)流程
隨機(jī)選擇 K 個(gè)樣本點(diǎn)作為初始聚類中心計(jì)算每個(gè)樣本到 K 個(gè)中心的距離,選擇最近的聚類中心點(diǎn)作為標(biāo)記類別根據(jù)每個(gè)類別中的樣本點(diǎn),重新計(jì)算出新的聚類中心點(diǎn)(平均值)
?
計(jì)算每個(gè)樣本到質(zhì)心的距離;離哪個(gè)近,就分成什么類別。?根據(jù)每個(gè)類別中的樣本點(diǎn),計(jì)算出三個(gè)質(zhì)心; 重新計(jì)算每個(gè)樣本到質(zhì)心的距離,直到質(zhì)心不在變化?
當(dāng)每次迭代結(jié)果不變時(shí),認(rèn)為算法收斂,聚類完成,K-Means一定會(huì)停下,不可能陷入一直選質(zhì)心的過(guò)程。?
聚類算法模型評(píng)估?
聚類效果評(píng)估 – 誤差平方和SSE (The sum of squares due to error)?
質(zhì)心的選擇會(huì)影響圖的松散程度:SSE = (?0.2) 2?+ (0.4) 2?+ (?0.8) 2?+ (1.3) 2+ (?0.7) 2??= 3.02
SSE隨著聚類迭代,其值會(huì)越來(lái)越小,直到最后趨于穩(wěn)定。如果質(zhì)心的初始值選擇不好,SSE只會(huì)達(dá)到一個(gè)不怎么好的局部最優(yōu)解?
聚類效果評(píng)估 – “肘”方法 (Elbow method) - K值確定?
"肘" 方法通過(guò) SSE 確定 n_clusters 的值
對(duì)于n個(gè)點(diǎn)的數(shù)據(jù)集,迭代計(jì)算 k from 1 to n,每次聚類完成后計(jì)算 SSE,SSE 是會(huì)逐漸變小的,因?yàn)槊總€(gè)點(diǎn)都是它所在的簇中心本身。SSE 變化過(guò)程中會(huì)出現(xiàn)一個(gè)拐點(diǎn),下降率突然變緩時(shí)即認(rèn)為是最佳 n_clusters 值。?
聚類效果評(píng)估 – SC輪廓系數(shù)法(Silhouette Coefficient)
輪廓系數(shù)是一種用于評(píng)價(jià)聚類效果好壞的指標(biāo),它結(jié)合了聚類的內(nèi)聚度和分離度。
內(nèi)聚度:反映了一個(gè)樣本點(diǎn)與其所在簇內(nèi)其他元素的緊密程度。內(nèi)聚度是通過(guò)計(jì)算樣本點(diǎn)到同簇其他樣本的平均距離來(lái)衡量的,這個(gè)平均距離稱為簇內(nèi)不相似度。分離度:反映了一個(gè)樣本點(diǎn)與不屬于其簇的其他元素之間的緊密程度。分離度是通過(guò)計(jì)算樣本點(diǎn)到其他簇中所有樣本的平均距離中最小的那個(gè)值來(lái)衡量的,這個(gè)最小平均距離稱為簇間不相似度。
對(duì)計(jì)算每一個(gè)樣本 i 到同簇內(nèi)其他樣本的平均距離 ai,該值越小,說(shuō)明簇內(nèi)的相似程度越大。
計(jì)算每一個(gè)樣本 i 到最近簇 j 內(nèi)的所有樣本的平均距離 bij,該值越大,說(shuō)明該樣本越不屬于其他簇 j?
內(nèi)部距離最小化,外部距離最大化?
柚子快報(bào)激活碼778899分享:人工智能 機(jī)器學(xué)習(xí)中的聚類
相關(guān)文章
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。
轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。