機器學習入門研究(十八) 聚類的模型評估

2021-10-03 04:39:15 字數 1685 閱讀 5383

目錄

輪廓係數

sklearn中的api

在機器學習入門研究(十七)— instacart market使用者分類中我們通過sklearn中的kmeans來將使用者分成了三類人,那麼我們怎麼評估這個模型的好與不好呢?

從上圖中,我們知道聚類最後將這些點分成了2類,聚類最後的結果就是:內部的距離最小化,外部的距離最大化。我們使用輪廓係數來描述,其中公式如下:

其中裡面的bi指的是每個樣本到其他簇群的所有樣本的距離的最小值。可以看成是外部距離;

而ai可以看成是該樣本值到本簇群中的所有距離的平均值。可以看成是內部距離。

我們可以看到當bi>>ai的時候,此時外部距離遠遠的超過了內部距離,此時輪廓係數接近於1;而當ai》bi,此時內部距離遠遠超過了外部距離,此時輪廓係數接近與-1;那麼就可以看到輪廓係數的範圍為[-1,1],越接近於1,說明聚類效果越好;越接近於-1,說明聚類效果越差。

在sklearn中提供成熟的api來實現這個輪廓係數,對應的api如圖:

sklearn.metrics.silhouette_score(x, labels, metric='euclidean', sample_size=none,

random_state=none, **kwds):

其中引數介紹如下:

引數含義

x特徵值

labels

我們最後**出來的標籤

metric

計算兩個樣本之間距離的方法」,預設為『euclidean』,則必須是metrics.pairwise.pairwise_distances 中 metric 可選的(『cityblock』, 『cosine』, 『euclidean』, 『l1』, 『l2』, 『manhattan』 或『braycurtis』, 『canberra』, 『chebyshev』, 『correlation』, 『dice』, 『hamming』, 『jaccard』, 『kulsinski』, 『mahalanobis』, 『matching』, 『minkowski』, 『rogerstanimoto』, 『russellrao』, 『seuclidean』, 『sokalmichener』, 『sokalsneath』, 『sqeuclidean』, 『yule』);

也可以為乙個可呼叫的函式計算兩個例項之間的距離。

sample_size

隨機取一部分樣本的平均值

random_state

當sample_size 為非空時用來生成隨機取樣

我們使用該api評估下機器學習入門研究(十七)— instacart market使用者分類中的模型:

from sklearn.metrics import  silhouette_score

score = silhouette_score(data_new,y_predict)

輸出的score的值為:

0.5368333366182597
我們看到這個值接近於1,所以說這個模型還可以的。

機器學習之十八 聚類演算法

聚類是無監督學習中最常用的演算法,常用的聚類演算法總結。1 k means k均值 聚類 對於輸入樣本d k means聚類演算法如下 1 從d中隨機選擇k個class center,u1,u2,uk 2 對於每個樣本xi,將其標記為距離類別中心最近的類別,即 yi argmin xi uj 1 j...

機器學習入門 聚類(一)

聚類演算法是在沒有給定標籤和樣本值的前提下進行資料劃分,是典型的無監督學習 unsupervised learning 演算法。聚類試圖將資料集中的樣本劃分成若干個不相交的子集,稱為 簇 或 類 乙個好的樣本劃分肯定是簇內的樣本相似度高,而簇與簇之間的樣本相似度低。簇是物件的集合,其中每個物件到定義...

12 聚類模型 機器學習基礎理論入門

定義 聚類分析又稱群分析,目標時將樣本劃分為緊密關係的子集或簇 應用聚類分析在實際中應用非常廣泛,如 市場細分 社交圈分析 天體資料分析等 聚類要求 聚類分析的目標時將樣本劃分為緊密關係的子集或簇。一般要求同一類內的相似度盡量大,不同類間的差異度盡量大。常用聚類演算法 1 kmeans聚類 2 層次...