首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【机器学习 | 聚类】关于聚类最全评价方法大全,确定不收藏?

【机器学习 | 聚类】关于聚类最全评价方法大全,确定不收藏?

作者头像
计算机魔术师
发布2023-11-27 10:43:43
发布2023-11-27 10:43:43
2.9K0
举报
文章被收录于专栏:计算机魔术师计算机魔术师

🤵‍♂️ 个人主页: @AI_magician 📡主页地址: 作者简介:CSDN内容合伙人,全栈领域优质创作者。 👨‍💻景愿:旨在于能和更多的热爱计算机的伙伴一起成长!!🐱‍🏍

【深度学习 | 核心概念】那些深度学习路上必经的核心概念,确定不来看看? (一) 作者: 计算机魔术师 版本: 1.0 ( 2023.8.27 )


摘要: 本系列旨在普及那些深度学习路上必经的核心概念,文章内容都是博主用心学习收集所写,欢迎大家三联支持!本系列会一直更新,核心概念系列会一直更新!欢迎大家订阅

该文章收录专栏 [✨— 《深入解析机器学习:从原理到应用的全面指南》 —✨]

聚类详解

以下是常用的评价算法名称

方法名称

真实值

最佳值

sklearn函数

ARI评价法(兰德系数)

需要

1.0

adjusted_rand_score

优点:能够度量聚类结果与真实分类的相似性,数值范围从-1到1。值越高表示聚类结果越相似。缺点:对聚类结果的簇数目敏感。当簇数目增加时,ARI的值可能增加,但聚类结果的质量并没有提高。

AMI评价法(互信息)

需要

1.0

adjusted_mutual_info_score

优点:通过衡量聚类结果和真实分类之间的共享信息量,能够评估聚类结果的好坏,数值范围从0到1。缺点:对聚类结果的簇数目敏感,不适用于聚类结果簇数目与真实分类不一致的情况。

V-measure评分

需要

1.0

completeness_score

优点:综合考虑了聚类结果的均一性和完整性,通过加权平均计算评分,数值范围从0到1。缺点:对聚类结果的簇数目敏感,不适用于聚类结果簇数目与真实分类不一致的情况。

FMI评价法

需要

1.0

fowlkes_mallows_score

优点:通过比较聚类结果和真实分类的成对样本关系,评估聚类的相似度,数值范围从0到1。值越高表示聚类结果越好。缺点:需要先知道真实分类信息,不适用于无监督聚类。

轮廓系数评价法

不需要

畸变程度最大

silhouette_score

优点:结合了样本与所属簇的平均距离和样本与其他簇的平均距离,度量聚类结果的紧密度和分离度,数值范围从-1到1。缺点:对于非凸型簇结构的数据效果较差,对噪声和密度不均匀的数据敏感。

Calinski-Harabasz指数评价法

不需要

相较最大

calinski_harabaz_score

优点:通过计算簇内离差平方和与簇间离差平方和的比值,评估聚类结果的质量,数值越大表示聚类结果越好。缺点:对聚类结果的簇数目敏感,不适用于聚类结果簇数目与真实分类不一致的情况。

上表总共列出了6种评价的方法,其中前4种方法均需要真实值的配合(真实值target)才能够评价聚类算法的优劣,后2种则不需要真实值的配合。但是前4种方法评价的效果更具有说服力,并且在实际运行的过程中在有真实值做参考的情况下,聚类方法的评价可以等同于分类算法的评价

除了轮廓系数以外的评价方法,在不考虑业务场景的情况下都是得分越高,其效果越好,最高分值均为1。而轮廓系数则需要判断不同类别数目的情况下其轮廓系数的走势,寻找最优的聚类数目。

在具备真实值作为参考的情况下,几种方法均可以很好地评估聚类模型。在没有真实值作为参考的时候,轮廓系数评价方法和Calinski-Harabasz指数评价方法可以结合使用

在选择簇数的时候,我们可以通过评价系数得到最优的系数,以下举两个例子,

  • 使用FMI评价法评价K-Means聚类模型(其他几类也是如此)
代码语言:javascript
复制
from sklearn.metrics import fowlkes mallows score
for i in range(2,7):
	#构建并训练模型
    kmeans=KMeans(n_clusters=i,random_state=123).fit(iris_data)
    score= fowlkes_mallows_score(iris_target,kmeans.labels) 
	print("iris数据聚号d类EMI评价分值为:",f(iscore))
  • 使用轮廓系数评价法评价K-Means聚类模型
代码语言:javascript
复制
from sklearn.metrics import silhouette_score 
import matplotlib.pyplot as plt
silhouettteScore = []
for i in range(2,15):
    #构建并训练模型
    kmeans=KMeans(n_clusters=i,random_state=123).fit(iris_data)
    score= silhouette_score(iris_data, kmeans.labels)
    silhouetttescore.append(score)
plt.figure(figsize=(10,6))
plt.plot(range(2,15),silhouettteScore,linewidth=1.5,linestyle="-")
plt.show()

寻找平均畸变程度最大的聚类数目

ARI评价法(兰德系数)

ARI(Adjusted Rand Index,调整兰德指数)是一种用于衡量聚类结果与真实分类之间的相似度的评价方法。它通过比较聚类结果与真实分类之间的成对样本相似性来计算得分,范围从-1到1,其中1表示完全匹配,0表示随机匹配,-1表示完全不匹配。

ARI的计算公式如下:

ARI = \frac{{\sum_{ij} \binom{n_{ij}}{2} - [\sum_i \binom{a_i}{2} \sum_j \binom{b_j}{2}]/\binom{n}{2}}}{{\frac{1}{2} [\sum_i \binom{a_i}{2} + \sum_j \binom{b_j}{2}] - [\sum_i \binom{a_i}{2} \sum_j \binom{b_j}{2}]/\binom{n}{2}}}

其中,

n

是样本总数,

n_{ij}

表示同时被聚类结果和真实分类划分为同一簇的样本对数量,

a_i

表示被聚类结果划分为第

i

簇的样本数量,

b_j

表示被真实分类划分为第

j

类的样本数量。

AMI评价法(互信息)

AMI(Adjusted Mutual Information,调整互信息)是一种用于评估聚类结果与真实分类之间的相似度的指标。它基于信息论中的互信息概念,度量聚类结果和真实分类之间的共享信息量。

AMI的计算公式如下:

AMI = \frac{I(X;Y) - E[I(X;Y)]}{\max(H(X), H(Y)) - E[I(X;Y)]}

其中,

I(X;Y)

表示聚类结果和真实分类的互信息,

H(X)

H(Y)

分别表示聚类结果和真实分类的熵,

E[I(X;Y)]

是互信息的期望值,用于校正由于随机因素引起的误差。

V-measure评分

V-measure是一种用于评估聚类结果的均一性(homogeneity)和完整性(completeness)的综合指标。它结合了这两个度量以平衡聚类结果的质量。

V-measure的计算公式如下:

V = \frac{2 \times (h \times c)}{(h + c)}

其中,

h

表示聚类结果的均一性,

c

表示聚类结果的完整性。均一性和完整性的计算公式如下:

h = 1 - \frac{H(C|K)}{H(C)}
c = 1 - \frac{H(K|C)}{H(K)}

其中,

H(C|K)

表示给定聚类结果

K

的条件熵,

H(C)

表示真实分类的熵,

H(K|C)

表示给定真实分类

C

的条件熵,

H(K)

表示聚类结果的熵。

FMI评价法

FMI(Fowlkes-Mallows Index)是一种用于评估聚类结果与真实分类之间的相似度的指标。它通过比较聚类结果中的成对样本关系与真实分类中的成对样本关系来计算得分。

FMI的计算公式如下:

FMI = \frac{TP}{\sqrt{(TP + FP)(TP + FN)}}

其中,

TP

表示聚类结果和真实分类中成对样本被划分到同一簇的数量,

FP

表示聚类结果中被错误划分到同一簇的样本对数量,

FN

表示真实分类中被错误划分到同一簇的样本对数量。

轮廓系数评价法

轮廓系数(Silhouette Coefficient)是一种用于评估聚类结果的紧密度和分离度的指标。它结合了样本与其所属簇的平均距离和样本与其他簇的平均距离,用于衡量聚类结果的质量。

轮廓系数的计算公式如下:

s = \frac{b - a}{\max(a, b)}

其中,

a

表示样本与其所属簇的平均距离,

b

表示样本与其他簇的平均距离。对于每个样本,轮廓系数的取值范围在-1到1之间,值越接近1表示样本聚类得越好,值越接近-1表示样本更适合被划分到其他簇,值接近0表示样本在两个簇之间的边界。

Calinski-Harabasz指数评价法

Calinski-Harabasz指数是一种用于评估聚类结果的紧密度和分离度的指标。它基于簇内的离差平方和(Within-Cluster Sum of Squares,WCSS)和簇间的离差平方和(Between-Cluster Sum of Squares,BCSS),用于衡量聚类结果的质量。

Calinski-Harabasz指数的计算公式如下:

CH = \frac{{\text{BCSS}/(k-1)}}{{\text{WCSS}/(n-k)}}

其中,

k

表示簇的数量,

n

表示样本的总数。Calinski-Harabasz指数的值越大表示聚类结果的质量越好。

分类模型评价法

最后一种评价(evaluation)方法是分类(classification)。通过使用 k-means标签训练分类模型,然后在单独的数据子集中对其进行测试,我们可以看到分类器的表现良好,并不是完全任意的。说明学习效果良好,且存在可分类的特征。

代码语言:javascript
复制
						  🤞到这里,如果还有什么疑问🤞
					🎩欢迎私信博主问题哦,博主会尽自己能力为你解答疑惑的!🎩
					 	 🥳如果对你有帮助,你的赞是对博主最大的支持!!🥳
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-11-26,如有侵权请联系 cloudcommunity@tencent.com 删除
目录
  • 聚类详解
    • ARI评价法(兰德系数)
    • AMI评价法(互信息)
    • V-measure评分
    • FMI评价法
    • 轮廓系数评价法
    • Calinski-Harabasz指数评价法
    • 分类模型评价法
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档