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

在这里插入图片描述

🤵‍♂️ 个人主页: @AI_magician
📡主页地址: 作者简介:CSDN内容合伙人,全栈领域优质创作者。
👨‍💻景愿:旨在于能和更多的热爱计算机的伙伴一起成长!!🐱‍🏍
🙋‍♂️声明:本人目前大学就读于大二,研究兴趣方向人工智能&硬件(虽然硬件还没开始玩,但一直很感兴趣!希望大佬带带)

在这里插入图片描述

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

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

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

聚类详解

        • ARI评价法(兰德系数)
        • AMI评价法(互信息)
        • V-measure评分
        • FMI评价法
        • 轮廓系数评价法
        • Calinski-Harabasz指数评价法
        • 分类模型评价法

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

方法名称真实值最佳值sklearn****函数
ARI评价法(兰德系数)需要1.0adjusted_rand_score
AMI评价法(互信息)需要1.0adjusted_mutual_info_score
V-measure评分需要1.0completeness_score
FMI评价法需要1.0fowlkes_mallows_score
轮廓系数评价法不需要畸变程度最大silhouette_score
Calinski-Harabasz指数评价法不需要相较最大calinski_harabaz_score
  • ARI评价法(兰德系数):ARI通过比较聚类结果和真实分类之间的成对样本相似性来衡量聚类的质量,其数值范围从-1到1,值越高表示聚类结果与真实分类越相似。

  • AMI评价法(互信息):AMI利用互信息的概念衡量聚类结果和真实分类之间的共享信息量,其数值范围也从0到1,值越高表示聚类结果越好。

  • V-measure评分:V-measure综合考虑了聚类结果的均一性和完整性,通过计算均一性和完整性的加权平均得到评分,数值范围也是从0到1。

  • FMI评价法:FMI通过比较聚类结果和真实分类中成对样本关系来评估聚类的相似度,数值范围从0到1,值越高表示聚类结果越好。

  • 轮廓系数评价法:轮廓系数结合了样本与其所属簇的平均距离和样本与其他簇的平均距离来度量聚类结果的紧密度和分离度,数值范围从-1到1。

  • Calinski-Harabasz指数评价法:Calinski-Harabasz指数通过计算簇内离差平方和和簇间离差平方和的比值来评估聚类结果的质量,数值越大表示聚类结果越好。

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

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

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

ARI评价法(兰德系数)

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

ARI的计算公式如下:

A R I = ∑ i j ( n i j 2 ) − [ ∑ i ( a i 2 ) ∑ j ( b j 2 ) ] / ( n 2 ) 1 2 [ ∑ i ( a i 2 ) + ∑ j ( b j 2 ) ] − [ ∑ i ( a i 2 ) ∑ j ( b j 2 ) ] / ( n 2 ) 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}}} ARI=21[i(2ai)+j(2bj)][i(2ai)j(2bj)]/(2n)ij(2nij)[i(2ai)j(2bj)]/(2n)

其中, n n n是样本总数, n i j n_{ij} nij表示同时被聚类结果和真实分类划分为同一簇的样本对数量, a i a_i ai表示被聚类结果划分为第 i i i簇的样本数量, b j b_j bj表示被真实分类划分为第 j j j类的样本数量。

AMI评价法(互信息)

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

AMI的计算公式如下:

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

其中, I ( X ; Y ) I(X;Y) I(X;Y)表示聚类结果和真实分类的互信息, H ( X ) H(X) H(X) H ( Y ) H(Y) H(Y)分别表示聚类结果和真实分类的熵, E [ I ( X ; Y ) ] E[I(X;Y)] E[I(X;Y)]是互信息的期望值,用于校正由于随机因素引起的误差。

V-measure评分

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

V-measure的计算公式如下:

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

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

h = 1 − H ( C ∣ K ) H ( C ) h = 1 - \frac{H(C|K)}{H(C)} h=1H(C)H(CK)

c = 1 − H ( K ∣ C ) H ( K ) c = 1 - \frac{H(K|C)}{H(K)} c=1H(K)H(KC)

其中, H ( C ∣ K ) H(C|K) H(CK)表示给定聚类结果 K K K的条件熵, H ( C ) H(C) H(C)表示真实分类的熵, H ( K ∣ C ) H(K|C) H(KC)表示给定真实分类 C C C的条件熵, H ( K ) H(K) H(K)表示聚类结果的熵。

FMI评价法

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

FMI的计算公式如下:

F M I = T P ( T P + F P ) ( T P + F N ) FMI = \frac{TP}{\sqrt{(TP + FP)(TP + FN)}} FMI=(TP+FP)(TP+FN) TP

其中, T P TP TP表示聚类结果和真实分类中成对样本被划分到同一簇的数量, F P FP FP表示聚类结果中被错误划分到同一簇的样本对数量, F N FN FN表示真实分类中被错误划分到同一簇的样本对数量。

轮廓系数评价法

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

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

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

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

Calinski-Harabasz指数评价法

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

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

C H = BCSS / ( k − 1 ) WCSS / ( n − k ) CH = \frac{{\text{BCSS}/(k-1)}}{{\text{WCSS}/(n-k)}} CH=WCSS/(nk)BCSS/(k1)

其中, k k k表示簇的数量, n n n表示样本的总数。Calinski-Harabasz指数的值越大表示聚类结果的质量越好。

分类模型评价法

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

						  🤞到这里,如果还有什么疑问🤞
					🎩欢迎私信博主问题哦,博主会尽自己能力为你解答疑惑的!🎩
					 	 🥳如果对你有帮助,你的赞是对博主最大的支持!!🥳

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/189502.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

贝叶斯个性化排序损失函数

贝叶斯个性化排名(Bayesian Personalized Ranking, BPR)是一种用于推荐系统的机器学习方法,旨在为用户提供个性化的排名列表。BPR的核心思想是通过对用户历史行为数据的分析,对用户可能喜欢和不喜欢的物品对(item pair…

时间序列预测 — Informer实现多变量负荷预测(PyTorch)

目录 1 实验数据集 2 如何运行自己的数据集 3 报错分析 1 实验数据集 实验数据集采用数据集4:2016年电工数学建模竞赛负荷预测数据集(下载链接),数据集包含日期、最高温度℃ 、最低温度℃、平均温度℃ 、相对湿度(平均) 、降雨…

Kibana部署

服务器 安装软件主机名IP地址系统版本配置KibanaElk10.3.145.14centos7.5.18042核4G软件版本:nginx-1.14.2、kibana-7.13.2-linux-x86_64.tar.gz 1. 安装配置Kibana (1)安装 [rootelk ~]# tar zxf kibana-7.13.2-linux-x86_64.tar.gz -C…

laravel实现发送邮件功能

Laravel提供了简单易用的邮件发送功能,使用SMTP、Mailgun、Sendmail等多种驱动程序,以及模板引擎将邮件内容进行渲染。 1.在项目目录.env配置email信息 MAIL_MAILERsmtp MAIL_HOSTsmtp.qq.com MAIL_PORT465 MAIL_FROM_ADDRESSuserqq.com MAIL_USERNAME…

【理解ARM架构】 散列文件 | 重定位

🐱作者:一只大喵咪1201 🐱专栏:《理解ARM架构》 🔥格言:你只管努力,剩下的交给时间! 目录 🏓引出重定位🏓散列文件🏓可读可写数据段重定位&#…

php的字符转义函数有那些,是干什么的

在 PHP 中,字符转义函数是用于处理字符串中的特殊字符,以防止这些字符被误解、滥用或引起安全问题的一组函数。这些函数的主要作用是确保在将用户提供的数据插入到数据库、构建 HTML 输出或进行其他与安全相关的操作时,不会导致潜在的安全漏洞…

6.12找树左下角的值(LC513-M)

算法: 这道题适合用迭代法,层序遍历:按层遍历,每次把每层最左边的值保存、更新到result里面。 看看Java怎么实现层序遍历的(用队列): /*** Definition for a binary tree node.* public clas…

C#,《小白学程序》第九课:堆栈(Stack),先进后出的数据型式

1 文本格式 /// <summary> /// 《小白学程序》第九课&#xff1a;堆栈&#xff08;Stack&#xff09; /// 堆栈与队列是相似的数据形态&#xff1b;特点是&#xff1a;先进后出&#xff1b; /// 比如&#xff1a;狭窄的电梯&#xff0c;先进去的人只能最后出来&#xff1…

Python中zip()函数用法解析

打包 zip() 函数是 Python 中一个非常有用的函数&#xff0c;它用于将多个可迭代对象组合成一个元组序列&#xff0c;依次将来自每个可迭代对象的元素打包在一起。 基本的语法是 zip(iterable1, iterable2, ...)&#xff0c;其中 iterable1, iterable2, ... 是要合并的可迭代…

Kubernetes技术与架构-配置

一般情况下&#xff0c;Kubernetes使用yaml文件格式定义配置文件&#xff0c;配置文件须指定对应的API稳定版本号&#xff0c;将配置文件进行版本控制、在发布新版本的过程中出问题时可以执行版本回滚操作&#xff0c;将相关联的对象定义在同一个配置文件中、从而更容易地管理&…

队列详解(C语言实现)

文章目录 写在前面1 队列的定义2 队列的初始化3 数据入队列4 数据出队列5 获取队头元素6 获取队尾元素7 获取队列元素个数8 判断队列是否为空8 队列的销毁 写在前面 本片文章详细介绍了另外两种存储逻辑关系为 “一对一” 的数据结构——栈和队列中的队列&#xff0c;并使用C语…

openEuler Linux 部署 FineBi

openEuler Linux 部署 FineBi 部署环境 环境版本openEuler Linux22.03MySQL8.0.35JDK1.8FineBi6.0 环境准备 升级系统内核和软件 yum -y updatereboot安装常用工具软件 yum -y install vim tar net-tools 安装MySQL8 将 MySQL Yum 存储库添加到系统的存储库列表中 sudo…

RocketMq 队列(MessageQueue)

RocketMq是阿里出品&#xff08;基于MetaQ&#xff09;的开源中间件&#xff0c;已捐赠给Apache基金会并成为Apache的顶级项目。基于java语言实现&#xff0c;十万级数据吞吐量&#xff0c;ms级处理速度&#xff0c;分布式架构&#xff0c;功能强大&#xff0c;扩展性强。 官方…

【LeetCode:828. 统计子串中的唯一字符 | 贡献法 乘法原理】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

蓝桥杯第四场双周赛(1~6)

1、水题 2、模拟题&#xff0c;写个函数即可 #define pb push_back #define x first #define y second #define int long long #define endl \n const LL maxn 4e057; const LL N 5e0510; const LL mod 1e097; const int inf 0x3f3f; const LL llinf 5e18;typedef pair…

十大排序之冒泡排序与快速排序(详解)

文章目录 &#x1f412;个人主页&#x1f3c5;算法思维框架&#x1f4d6;前言&#xff1a; &#x1f380;冒泡排序 时间复杂度O(n^2)&#x1f387;1. 算法步骤思想&#x1f387;2.动画实现&#x1f387; 3.代码实现&#x1f387;4.代码优化&#xff08;添加标志量&#xff09; …

NX二次开发UF_CURVE_ask_curve_fit_data 函数介绍

文章作者&#xff1a;里海 来源网站&#xff1a;https://blog.csdn.net/WangPaiFeiXingYuan UF_CURVE_ask_curve_fit_data Defined in: uf_curve.h int UF_CURVE_ask_curve_fit_data(tag_t curve_feature, UF_CURVE_curve_fit_data * curve_fit_data ) overview 概述 Ask c…

【Spring集成MyBatis】MyBatis注解开发

文章目录 1. MyBatis的常用注解2. 基于注解的MyBatis增删改查增删改查完整代码加载映射关系测试代码 3. MyBatis的注解实现复杂映射开发一对一操作的实现一对一操作实现的第二种方式一对多操作的实现多对多操作实现 1. MyBatis的常用注解 2. 基于注解的MyBatis增删改查 使用注…

【Kotlin】引入与基础语法

文章目录 Kotlin的特性Kotlin优势Kotlin的安卓项目变量变量保存了指向对象的引用优先使用val来避免副作用 后端变量Backing Fields延迟初始化 Kotlin的特性 它更加易表现&#xff1a;这是它最重要的优点之一。你可以编写少得多的代码。Kotlin是一种兼容Java的语言Kotlin比Java…

针对哈希冲突的解决方法

了解哈希表和哈希冲突是什么 哈希表&#xff1a;是一种实现关联数组抽象数据类型的数据结构&#xff0c;这种结构可以将关键码映射到给定值。简单来说哈希表&#xff08;key-value&#xff09;之间存在一个映射关系&#xff0c;是键值对的关系&#xff0c;一个键对应一个值。 …
最新文章