聚类评价指标

聚类评价指标分为 内部指标外部指标 两大类,用于评估聚类算法的性能。


一、内部评价指标

内部评价指标不依赖真实标签,主要通过聚类结果本身的紧凑性和分离性进行评估。

  1. 轮廓系数(Silhouette Coefficient, SC)

    • 衡量数据点与其簇内点的紧密程度,以及与最近簇的分离程度。
    • 公式:
      • a(i): 数据点 i 到其簇内其他点的平均距离。
      • b(i): 数据点 i 到最近簇的平均距离。
    • 值域:[-1, 1],值越大表示聚类效果越好。
  2. DB指数(Davies-Bouldin Index, DBI)

    • 衡量簇内紧密性与簇间分离性的比值。
    • 公式:
      • k: 簇的数量。
      • σi,σj: 簇 i 和 j 的内部散度。
      • dij: 簇 i和 j 的中心距离。
    • 值越小表示聚类效果越好。
  3. CH指数(Calinski-Harabasz Index)

    • 衡量簇间分离度与簇内紧密度的比值。
    • 公式:
      • k: 簇数。
      • n: 数据总数。
    • 值越大表示聚类效果越好。

二、外部评价指标

外部指标依赖真实标签,衡量聚类结果与真实类别的匹配程度。

  1. 准确率(Accuracy, ACC)

    • 衡量聚类结果与真实标签的最大匹配程度。
    • 公式:
      • yi: 数据点 i 的真实标签。
      • ci: 数据点 i 的聚类标签。
      • map(ci): 聚类标签与真实标签的最佳映射。
    • 值域:[0, 1],值越大表示聚类效果越好。
  2. 归一化互信息(Normalized Mutual Information, NMI)

    • 衡量真实类别与聚类结果的互信息量。
    • 公式:
      • I(Y;C): 真实标签 Y 和聚类结果 C 的互信息。
      • H(Y),H(C): 真实标签和聚类结果的熵值。
    • 值域:[0, 1],值越大表示聚类效果越好。
  3. 调整兰德指数(Adjusted Rand Index, ARI)

    • 衡量数据点对间一致性的调整比例。
    • 公式:
    • 值域:[-1, 1],值越大表示聚类效果越好。

三、总结

不同指标适用于不同场景:

  • 内部指标适合无标签数据的聚类评估。
  • 外部指标适合已知真实类别的数据,用于对比不同算法的表现。
    选择合适的指标有助于全面分析聚类算法的优劣。

目前的深度聚类领域的论文大多采用的是ACC、NMI、ARI三种,并且大多以NMI的值为准来衡量一个模型的聚类性能。也有部分论文采用了分类的F1指标来作为一种参考指标(个人认为可以不用)。当然,内部指标也可以用,我刚刚有一篇论文就被专家建议增加内部指标。。。。。。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

flask后端开发(1):第一个Flask项目

目录 一、Helloworddebug、host、port的配置 gitcode地址: https://gitcode.com/qq_43920838/flask_project.git 一、Helloword 一般是会创建两个文件夹和app.py app.py from flask import FlaskappFlask(__name__)app.route(/) def hello_world():return Hello…

C++ 设计模式:抽象工厂(Abstract Factory)

链接:C 设计模式 链接:C 设计模式 - 工厂方法 链接:C 设计模式 - 原型模式 链接:C 设计模式 - 建造者模式 抽象工厂(Abstract Factory)是一种创建型设计模式,它提供一个接口,用于创…

docker 安装与配置 gitlab

前提条件 Docker:确保你已经安装了 Docker 和 Docker Compose。可以通过以下命令来检查是否安装 Docker:docker --version1. 拉取 GitLab Docker 镜像 首先,我们需要拉取 GitLab 的官方 Docker 镜像。可以使用以下命令来获取 GitLab CE&…

C语言-详细讲解-字符串加密

1.题目要求 编写加密程序,将用户输入的一个英文句子加密为加密字符串,然后输出加密字符串。假设句子长度不超过50个字符。根据给定的句子加密函数原型SentenceEncoding,编写函数SentenceEncoding调用字符加密函数CharEncoding完成句子加密。然…

stratovirt

title: 探索 Stratovirt:云时代的虚拟化新力量 date: ‘2024-12-29’ category: blog tags: Stratovirt云计算虚拟化技术技术解析 sig: Stratovirt archives: ‘2024-12’ author:way_back summary: Stratovirt 作为新兴的虚拟化技术,以其独特的架构和先…

一文复盘:RAG技术-大模型

原文:https://zhuanlan.zhihu.com/p/13962398269 RAG(Retrieval-Augmented Generation)之所以被关注,有两方面原因: 1、没有跑大模型的资源:大多数人没有GPU集群搞LLM的预训练。 2、大模型缺乏知识&…

使用 OpenCV 绘制线条和矩形

OpenCV 是一个功能强大的计算机视觉库,它不仅提供了丰富的图像处理功能,还支持图像的绘制。绘制简单的几何图形(如线条和矩形)是 OpenCV 中常见的操作。在本篇文章中,我们将介绍如何使用 OpenCV 在图像上绘制线条和矩形…

WinForm 美化秘籍:轻松实现 Panel 圆角虚线边框

文章目录 1、引言2、案例实现1、创建自定义 Panel 类2、定义圆角矩形3. 使用自定义 Panel4. 调整属性5、使用背景图片来实现5、拓展:使用 Panel 的 Paint重绘单独实现虚线边框效果 3、实现效果4、总结 1、引言 在 Winform 应用程序开发中,美化用户界面&…

Spring Cloud LoadBalancer (负载均衡)

目录 什么是负载均衡 服务端负载均衡 客户端负载均衡 Spring Cloud LoadBalancer快速上手 启动多个product-service实例 测试负载均衡 负载均衡策略 自定义负载均衡策略 什么是负载均衡 负载均衡(Load Balance,简称 LB) , 是高并发, 高可用系统必不可少的关…

OpenCloudOS简介

OpenCloudOS是一款开源的云操作系统,具有诸多特性和优势,广泛应用于多个领域。 一、项目背景 开源社区发起:由操作系统、云平台、软硬件厂商与个人共同倡议发起的操作系统社区项目,旨在打造全面中立、开放、安全、稳定易用、高…

NLP 中文拼写检测纠正论文 Automatic-Corpus-Generation

拼写纠正系列 NLP 中文拼写检测实现思路 NLP 中文拼写检测纠正算法整理 NLP 英文拼写算法,如果提升 100W 倍的性能? NLP 中文拼写检测纠正 Paper java 实现中英文拼写检查和错误纠正?可我只会写 CRUD 啊! 一个提升英文单词拼…

区块链安全常见的攻击合约和简单复现,附带详细分析——不安全调用漏洞 (Unsafe Call Vulnerability)【6】

区块链安全常见的攻击分析——不安全调用漏洞 Unsafe Call Vulnerability 区块链安全常见的攻击合约和简单复现,附带详细分析——不安全调用漏洞 (Unsafe Call Vulnerability)【6】1.1 漏洞合约1.2 漏洞分析1.3 攻击步骤分析1.4 攻击合约 区块链安全常见的攻击合约和…

生成excel文件(有备注和表头的情况)

要使用 Java 导出 Excel 文件,并且通过 ExcelProperty 注解进行列的映射,可以利用 EasyExcel 库。EasyExcel 是阿里巴巴开源的一款高性能 Excel 读写工具,它支持通过注解将类与 Excel 的列进行映射,简化了 Excel 操作的复杂性。 …

Excel 面试 01 “Highlight in red the 10 lowest orders”

要在 Excel 中完成“Highlight in red the 10 lowest orders”的任务,可以使用条件格式(Conditional Formatting)。以下是详细步骤: 步骤 1:选择数据范围 打开包含订单数据的工作表。选中包含订单金额或数量的单元格范…

留学生交流互动系统|Java|SSM|VUE| 前后端分离

【技术栈】 1⃣️:架构: B/S、MVC 2⃣️:系统环境:Windowsh/Mac 3⃣️:开发环境:IDEA、JDK1.8、Maven、Mysql5.7 4⃣️:技术栈:Java、Mysql、SSM、Mybatis-Plus、VUE、jquery,html 5⃣️数据库可…

Junit如何禁用指定测试类,及使用场景

在JUnit中禁用指定测试类可以通过多种方式实现,具体取决于使用的JUnit版本(JUnit 4 或 JUnit 5)。以下是针对两个版本的详细说明以及它们可能的使用场景: JUnit 4 禁用整个测试类 可以使用Ignore注解来忽略整个测试类。这将导致…

算法基础一:冒泡排序

一、冒泡排序 1、定义 冒泡排序(英语:Bubble Sort)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序(如从大到小、首字母从A到Z)错误就把他们交换过来。 …

Spark大数据开发与应用案例(视频教学版)(一)

作者:余辉 简介:余辉,硕士毕业于中科院,从事IT行业12年。专注于大数据和机器学习。在数据团队担任过的角色:研发、架构师、负责人、讲师。数据知识产权:出版大数据书籍【1】本,论文【2】篇&…

跨域请求问题

跨域请求简介 跨域请求:通过一个域的JavaScript脚本和另外一个域的内容进行交互 域的信息:协议、域名、端口号 同域:当两个域的协议、域名、端口号均相同 如下所示: 同源【域】策略:在浏览器中存在一种安全策略就是…

探索开源项目 kernel:技术的基石与无限可能

在开源的广袤世界中,有一颗璀璨的明星——kernel(https://gitee.com/openeuler/kernel),它宛如一座技术的宝藏,蕴含着无数的智慧与创新,为众多开发者所瞩目和敬仰。 一、初窥 kernel 项目 当我第一次接触…