Loading [MathJax]/jax/element/mml/optable/BasicLatin.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【机器学习 | 聚类】关于聚类最全评价方法大全,确定不收藏?

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

作者头像
计算机魔术师
发布于 2023-11-27 02:43:43
发布于 2023-11-27 02:43:43
1.7K00
代码可运行
举报
文章被收录于专栏:计算机魔术师计算机魔术师
运行总次数:0
代码可运行

🤵‍♂️ 个人主页: @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
代码运行次数:0
运行
AI代码解释
复制
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
代码运行次数:0
运行
AI代码解释
复制
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=(106))
plt.plot(range(2,15),silhouettteScore,linewidth=1.5,linestyle="-")
plt.show()

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

ARI评价法(兰德系数)

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

ARI的计算公式如下:

ARI=ij(nij2)[i(ai2)j(bj2)]/(n2)12[i(ai2)+j(bj2)][i(ai2)j(bj2)]/(n2)

其中,

n

是样本总数,

nij

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

ai

表示被聚类结果划分为第

i

簇的样本数量,

bj

表示被真实分类划分为第

j

类的样本数量。

AMI评价法(互信息)

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

AMI的计算公式如下:

AMI=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=2×(h×c)(h+c)

其中,

h

表示聚类结果的均一性,

c

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

h=1H(C|K)H(C)
c=1H(K|C)H(K)

其中,

H(C|K)

表示给定聚类结果

K

的条件熵,

H(C)

表示真实分类的熵,

表示给定真实分类

的条件熵,

表示聚类结果的熵。

FMI评价法

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

FMI的计算公式如下:

其中,

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

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

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

轮廓系数评价法

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

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

其中,

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

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

Calinski-Harabasz指数评价法

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

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

其中,

表示簇的数量,

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

分类模型评价法

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
						  🤞到这里,如果还有什么疑问🤞
					🎩欢迎私信博主问题哦,博主会尽自己能力为你解答疑惑的!🎩
					 	 🥳如果对你有帮助,你的赞是对博主最大的支持!!🥳
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-11-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
聚类模型评价(python实现)
评价指标分为外部指标和内部指标两种,外部指标指评价过程中需要借助数据真实情况进行对比分析的指标,内部指标指不需要其他数据就可进行评估的指标。下表中列出了几个常用评价指标的相关情况:
三猫
2019/08/23
6.1K0
聚类模型评价(python实现)
聚类︱python实现 六大 分群质量评估指标(兰德系数、互信息、轮廓系数)
本文介绍了聚类分析中的轮廓系数、调整兰德指数、互信息、同质性、完整性、V-measure、Fowlkes-Mallows 分数、Silhouette Coefficient、Calinski-Harabasz Index等指标,以及这些指标如何用于评估聚类分析结果。
悟乙己
2018/01/02
11.2K0
聚类︱python实现 六大 分群质量评估指标(兰德系数、互信息、轮廓系数)
6个常用的聚类评价指标
评估聚类结果的有效性,即聚类评估或验证,对于聚类应用程序的成功至关重要。它可以确保聚类算法在数据中识别出有意义的聚类,还可以用来确定哪种聚类算法最适合特定的数据集和任务,并调优这些算法的超参数(例如k-means中的聚类数量,或DBSCAN中的密度参数)。
deephub
2023/11/24
1.8K0
6个常用的聚类评价指标
【Scikit-Learn 中文文档】聚类 - 无监督学习 - 用户指南 | ApacheCN
2.3. 聚类 未标记的数据的 Clustering(聚类) 可以使用模块 sklearn.cluster 来实现。 每个 clustering algorithm (聚类算法)有两个变体: 一个是 class, 它实现了 fit 方法来学习 train data(训练数据)的 clusters(聚类),还有一个 function(函数),是给定 train data(训练数据),返回与不同 clusters(聚类)对应的整数标签 array(数组)。对于 class(类),training dat
片刻
2018/01/15
5.5K0
【Scikit-Learn 中文文档】聚类 - 无监督学习 - 用户指南 | ApacheCN
机器学习之鸢尾花-聚类
将物理或抽象对象的集合分成由类似的对象组成的多个类的过程被称为聚类。由聚类所生成的簇是一组数据对象的集合,这些对象与同一个簇中的对象彼此相似,与其他簇中的对象相异。“物以类聚,人以群分”,在自然科学和社会科学中,存在着大量的分类问题。聚类分析又称群分析,它是研究(样品或指标)分类问题的一种统计分析方法。聚类分析起源于分类学,但是聚类不等于分类。聚类与分类的不同在于,聚类所要求划分的类是未知的。聚类分析内容非常丰富,有系统聚类法、有序样品聚类法、动态聚类法、模糊聚类法、图论聚类法、聚类预报法等。
python与大数据分析
2022/03/11
7370
机器学习之鸢尾花-聚类
聚类模型评估指标之外部方法
聚类算法的理想结果是同一类别内的点相似度高,而不同类别之间的点相似度低。聚类属于无监督学习,数据没有标签,为了比较不同聚类模型的好坏,我们也需要一些定量的指标来进行评估。根式是否提供样本的标签信息,相关的指标可以分为以下两大类
生信修炼手册
2021/05/27
2.9K0
机器学习算法之聚类算法
"If you set your goals ridiculously high and it's a failure, you will fail above everyone else's success.
小闫同学啊
2020/02/26
1.3K0
用scikit-learn学习K-Means聚类
    在K-Means聚类算法原理中,我们对K-Means的原理做了总结,本文我们就来讨论用scikit-learn来学习K-Means聚类。重点讲述如何选择合适的k值。
刘建平Pinard
2018/08/14
7670
用scikit-learn学习K-Means聚类
模型评价基础
机器学习训练模型用的数据集和测试数据用的训练集互斥,往往通过测试集的测试误差来近似模型的泛化能力,根据模型的泛化能力评价模型的优劣。 误差是学习器的实际预测输出与样本的真实输出之间的差异。 训练误差,或称经验误差,是学习器在训练集上的误差。 学习器在在新样本上的误差,称为泛化误差。 模型评价主要是根据训练误差和泛化误差,来选择最优的模型及其参数的过程。
爱编程的小明
2022/09/05
1.1K0
模型评价基础
【机器学习】无监督学习:PCA和聚类
在这节课中,我们将讨论主成分分析(PCA)和聚类(clustering)这样的无监督学习方法。你将学习为何以及如何降低原始数据的维度,还有分组类似数据点的主要方法。
zenRRan
2019/11/19
2.4K0
机器学习(26)之K-Means实战与调优详解
关键字全网搜索最新排名 【机器学习算法】:排名第一 【机器学习】:排名第一 【Python】:排名第三 【算法】:排名第四 前言 在K-Means聚类算法原理(机器学习(25)之K-Means聚类算法详解)中对K-Means的原理做了总结,本文来讨论用scikit-learn来学习K-Means聚类。重点讲述如何选择合适的k值。 K-Means类概述 在scikit-learn中,包括两个K-Means的算法,一个是传统的K-Means算法,对应的类是KMeans。另一个是基于采样的Mini Batch K
昱良
2018/04/04
5.9K0
机器学习(26)之K-Means实战与调优详解
机器学习中的聚类
聚类算法是一种无监督的机器学习算法。 它将一组数据分成若干个不同的群组,使得每个群组内部的数据点相似度高,而不同群组之间的数据点相似度低。常用的相似度计算方法有欧式距离法。
@小森
2024/05/24
1160
机器学习中的聚类
机器学习评价指标大汇总
在使用机器学习算法的过程中,针对不同场景需要不同的评价指标,在这里对常用的指标进行一个简单的汇总。 一、分类 1. 精确率与召回率 精确率与召回率多用于二分类问题。精确率(Precision)指的是模型判为正的所有样本中有多少是真正的正样本;召回率(Recall)指的是所有正样本有多少被模型判为正样本,即召回。设模型输出的正样本集合为\$A\$,真正的正样本集合为\$B\$,则有: \$\text{Precision}(A,B)=\frac{|A\bigcap B|}{|A|},\text{Recall}(
小莹莹
2018/04/24
1.3K0
机器学习评价指标大汇总
机器学习 | KMeans聚类分析详解
大量数据中具有"相似"特征的数据点或样本划分为一个类别。聚类分析提供了样本集在非监督模式下的类别划分。聚类的基本思想是"物以类聚、人以群分",将大量数据集中相似的数据样本区分出来,并发现不同类的特征。
数据STUDIO
2021/06/24
4.4K0
开发 | 机器学习之确定最佳聚类数目的10种方法
AI科技评论按,本文作者贝尔塔,原文载于知乎专栏数据分析与可视化,AI科技评论获其授权发布。 在聚类分析的时候确定最佳聚类数目是一个很重要的问题,比如kmeans函数就要你提供聚类数目这个参数,总不能两眼一抹黑乱填一个吧。之前也被这个问题困扰过,看了很多博客,大多泛泛带过。今天把看到的这么多方法进行汇总以及代码实现并尽量弄清每个方法的原理。 数据集选用比较出名的wine数据集进行分析 library(gclus) data(wine) head(wine) Loading required package:
AI科技评论
2018/03/14
1.3K0
开发 | 机器学习之确定最佳聚类数目的10种方法
KMeans+降维,实现用户聚类!
基于Python Outlier Detection库进行异常值处理(Kmeans对异常值敏感)。
皮大大
2023/11/09
8840
【机器学习】--Kmeans从初识到应用
Kmeans算法一般在数据分析前期使用,选取适当的k,将数据分类后,然后分类研究不同聚类下数据的特点。
LhWorld哥陪你聊算法
2018/09/13
9040
【机器学习】--Kmeans从初识到应用
MLK | 非监督学习最强攻略
"MLK,即Machine Learning Knowledge,本专栏在于对机器学习的重点知识做一次梳理,便于日后温习,内容主要来自于《百面机器学习》一书,结合自己的经验与思考做的一些总结与归纳,本次主要讲解的内容是机器学习里的非监督学习经典原理与算法,非监督,也就是没有target(标签)的算法模型。"
Sam Gor
2019/07/17
9540
MLK | 非监督学习最强攻略
实战干货|Python数据分析消费者用户画像
基于Python Outlier Detection库进行异常值处理(Kmeans对异常值敏感)。
用户6888863
2023/11/30
1.2K0
实战干货|Python数据分析消费者用户画像
用scikit-learn学习谱聚类
    在谱聚类(spectral clustering)原理总结中,我们对谱聚类的原理做了总结。这里我们就对scikit-learn中谱聚类的使用做一个总结。
刘建平Pinard
2018/08/14
2.3K0
相关推荐
聚类模型评价(python实现)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验