K means 聚類學習

2022-08-19 00:09:17 字數 1494 閱讀 2622

沒有監督標籤,只有x特徵值,沒有y,沒有辦法去**,沒有辦法證明你做的對錯,這樣的資料集,我們能做的是什麼呢?就是非監督機器學習。常見的演算法就是聚類或者降維。聚類做的是什麼?就是挖掘資料集中的規律的存在,通過把相似的資料歸類,幫助我們探索資料集裡的樣本如何劃分,比如可以將使用者分群,不同的營銷策略。聚類裡包含的演算法也是非常多。

聚類的基本思路是:物以類聚,人以群分。通過特徵,計算樣本之間的相似度。

第一步:確定乙個超引數k,k就是打算把樣本聚集為幾類。

第二步:在所有的樣本中,隨機的選擇三個點,作為聚類的初始中心。

第三步:依次計算除這三個中心點以外的每乙個點,和三個中心點的距離。然後找出樣本點離哪個中心點最近。

第四歩:將所有點劃分到離它最近的那個中心點所代表的簇中去。

第五步:所有樣本會被劃分k個類別,有了k堆資料,分別計算這k個簇的質心。例如:

第六步:生成k個新的聚類中心點,以這k個新的重點重新重複3-5歩。

第七歩:終止條件(一):在重複的聚類過程中,所有樣本點的分類結果都不再發生變化;(二)或者達到你設定的演算法最大迭代次數,例如max_iter = 200 .

kmeans(

n_clusters=8, # int, optional  聚類的數量

init='k-means++', # 一種選擇初始質心的方法

n_init=10,# 使用不同質心種子執行k-means演算法的次數。 在inertia,最終結果將是n_init連續執行的最佳輸出。

max_iter=300, # 最大迭代次數,如果超過此次數將不會繼續迭代

tol=0.0001, # mse 下降到什麼數值大小的時候停止迭代

precompute_distances='auto',

verbose=0,

random_state=none, # 隨機數種子

copy_x=true,

n_jobs=none, # 使用cpu核心數量

algorithm='auto',

)下面來說說kmeans演算法的模型效果評估,模型演算法的評估主要是從以下幾個方面來進行度量

# inertias:其是k均值模型物件的屬性,表示樣本距離最近的聚類中心的總和,它是作為在沒有真實分類標籤下的非監督式評估指標,該值越小越好,值越小證明樣本在類間的分布越集中,即類內的距離越小。

# 輪廓係數:它用來計算所有樣本的平均輪廓係數,使用平均群內距離和每個樣本的平均最近簇距離來計算,它是一種非監督式評估指標。其最高值為1,最差值為-1,0附近的值表示重疊的聚類,負值通常表示樣本已被分配到錯誤的集群。

通過輪廓係數找到最好的k值,其實就是調參。常用的方法是:2輪廓係數。

ch指標通過計算類中各點與類中心的距離平方和來度量類內的緊密度,通過計算各類中心點與資料集中心點距離平方和來度量資料集的分離度,ch指標由分離度與緊密度的比值得到。從而,ch越大代表著類自身越緊密,類與類之間越分散,即更優的聚類結果。 

機器學習筆記 kMeans聚類

優點 容易實現。缺點 可能收斂到區域性最小值,在大規模資料集上收斂較慢。適用資料型別 數值型資料 k 均值演算法 先隨機確定k個初始點作為質心,然後將資料集中的每個點分配到乙個簇中,具體來講為每個點找距其最近的質心,並將其分配給該質心所對應的簇。再每個簇更新質心為該簇所有點的平均值。import n...

機器學習之Kmeans聚類

本次學習總結 1 理解相似度度量的各種方法及其相互聯絡 2 掌握k means演算法思路及其使用條件 3 層次聚類的思路和方法 4 密度聚類並能夠應用於實踐 dbscan 密度最大值聚類 5 譜聚類演算法 譜聚類演算法與pca之間的關係 聚類的定義 聚類就是將大量未知標註的資料,按照資料的內在相似性...

K Means聚類演算法

k means聚類演算法 intergret kmeans演算法的基本思想是初始隨機給定k個簇中心,按照最鄰近原則把待分類樣本點分到各個簇。然後按平均法重新計算各個簇的質心,從而確定新的簇心。一直迭代,直到簇心的移動距離小於某個給定的值。k means聚類演算法主要分為三個步驟 1 第一步是為待聚類...