【Python机器学习】聚类算法的对比与评估——在没有真实值的情况下评估聚类

news2024/11/16 15:30:47

在实践中,使用诸如ARI之类的指标有一个很大的问题。在应用聚类算法时,通常没有真实值来比较结果。如果我们知道了数据的正确聚类,那么可以使用这一信息构建一个监督模型(比如分类器)。因此,使用类似ARI和NMI的指标通常仅有助于开发算法,但对评估应用是否成功没有帮助。

有一些聚类的评分指标不需要真实值,比如轮廓系数(silhouette coeffcient)。但它们在实践中的效果并不好。轮廓系数计算一个簇的紧致度,其值越大越好,最高分数为1。虽然紧致的簇很好,但紧致度不允许复杂的形状。

下面利用轮廓分数在two_moons数据集上比较k均值、凝聚聚类和DBSCAN:


import matplotlib.pyplot as plt
import mglearn
import numpy as np
from sklearn.metrics.cluster import adjusted_rand_score
from sklearn.datasets import make_moons,make_blobs
from sklearn.preprocessing import StandardScaler
from sklearn.cluster import KMeans
from sklearn.decomposition import NMF,PCA
from sklearn.cluster import AgglomerativeClustering
from sklearn.cluster import DBSCAN
from sklearn.metrics.cluster import silhouette_score

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

X,y=make_moons(n_samples=200,noise=0.05,random_state=0)

#将数据缩放成平均值为0、方差为1
scaler=StandardScaler()
scaler.fit(X)
X_scaler=scaler.transform(X)

fig,axes=plt.subplots(1,4,figsize=(15,3),subplot_kw={'xticks':(),'yticks':()})

#创建一个随机的簇分配,作为参考
random_state=np.random.RandomState(seed=0)
random_clusters=random_state.randint(low=0,high=2,size=len(X))

axes[0].scatter(X_scaler[:,0],X_scaler[:,1],c=random_clusters,cmap=mglearn.cm3,s=60)
axes[0].set_title('随机分配-轮廓系数:{:.2f}'.format(silhouette_score(X_scaler,random_clusters)))

#列出要用的算法
algorithms=[KMeans(n_clusters=2),AgglomerativeClustering(n_clusters=2),DBSCAN()]

for ax,algorithm in zip(axes[1:],algorithms):
    clusters=algorithm.fit_predict(X_scaler)
    ax.scatter(X_scaler[:,0],X_scaler[:,1],c=clusters,cmap=mglearn.cm3,s=60)
    ax.set_title('{}:{:.2f}'.format(algorithm.__class__.__name__,silhouette_score(X,clusters)))

plt.show()


如上图,k均值的轮廓分数最高,尽管我们可能更喜欢DBSCAN的结果。但对于评估聚类,稍好的策略是使用基于鲁棒性的聚类指标。这种指标先向数据中添加一些噪声,或者使用不同的参数设定,然后运行算法,并对结果进行比较。其思想是:如果许多算法参数和许多数据扰动返回相同的结果,那么它是可信的。

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

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

相关文章

springboot微信点餐小程序-计算机毕业设计源码82910

目 录 摘要 1 绪论 1.1 项目开发背景 1.2目的和意义 1.3springboot框架介绍 2 微信点餐小程序系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1 数据流程 3.3.2 业务流程 2.3 系统功能分析 2.3.1 功能性分析 2.3.2 非功能性分析 2.4 系统用例分析 2.5本章小结 …

AIGC->基于扩散模型的图像生成算法 (课程大纲)

https://edu.csdn.net/course/detail/39618?spm=1001.2014.3001.5507https://edu.csdn.net/course/detail/39618?spm=1001.2014.3001.5507 课程特色是围绕着工作中AIGC文生图的具体用途来对文生图领域进行一个高屋建瓴式的分析,结合具体的应用,尤其是产业界的具体实用场景,…

django图书推荐系统-计算机毕业设计源码89399

摘 要 随着时代的不断更新,社会的不断变换,信息技术的飞速发展,计算机科技技术也逐步走向成熟。图书推荐系统对于当今社会来说是必不可少的一个信息组成部分,它可以管理大量图书、大量读者、让读者有条不紊的进行评分图书&#xf…

ruoyi-vue-plus中使用minio

minio windwos中安装使用: 1、安装 minio下载页面 2、启动:ruoyi-vue-plus: 配置管理:

哈啰集团全面接入通义灵码,AI 生成代码占比 20%,研发提效 12%

6 月 21 日,在阿里云 AI 智领者峰会上海站,哈啰集团算法总监贾立宣布, 哈啰集团已全面接入阿里云通义灵码专属版, 不仅提升了内部研发效率,实现 AI 代码采用率超过 20%,还将灵码接入了哈啰自研 Copilot “海…

JSAPI微信支付提示缺少total_fee

微信小程序云开发中使用微信支付。莫名其妙的报错: 这个报错严重图文不符,驴唇不对马嘴,难排查,很恶心。 原因可能是: 1、在微信支付中关联appid; 2、在小程序云开发控制台中授权:

SecureCRT使用方法(非常简单)!!!

一、简单了解 SecureCRT是一款功能强大的终端仿真软件,广泛用于远程访问和管理服务器。它提供了丰富的功能和安全性,使得远程连接更加简单、高效和可靠。 SecureFX 可以提供安全文件传输。主要用于Linux操作系统客户端文件传输程序,该客户端…

刷题记录6.24

438. 找到字符串中所有字母异位词https://leetcode.cn/problems/find-all-anagrams-in-a-string/ 这道题乍一看感觉很复杂。因为 异位词指由相同字母重排列形成的字符串,包括相同的字符串,那么就会有很多种组成,增加题目的复杂性。 对于这个…

微信小程序修改应用名称

1、修改名称(10分钟即可生效) 账号管理员 2、修改icon(如果logo带有名称则需要修改)

【单片机毕业设计选题24025】-基于ESP32的车联网控制器设计

系统功能: 这个设计采用ESP32芯片作为核心控制器,搭配其它传感器,电源模块以及通信模块,用于实现车联网中的MQTT数据收发控制. ESP32芯片负责接收电路模块和相关传感器的数据,包括模拟信号,按键触发信号等, 随后ESP32进行数据处理并通过MQTT协议与通信模块协同工作将数据上传至…

短剧小程序源码:打造个性化的娱乐体验

在数字化媒体时代,短剧作为一种新兴的娱乐形式,正迅速受到全球用户的喜爱。短剧小程序源码作为这一趋势下的产物,为短剧的创作、分享和观看提供了一个全新的平台。本文将深入探讨短剧小程序源码的关键特性及其在全球化娱乐市场中的潜力。 一…

同城代驾小程序代驾平台APP代驾软件开发代驾JAVA系统源码

市场分析 随着现代社会的快速发展,人们的生活节奏日益加快,出行需求也愈发多样化。在繁忙的都市生活中,代驾服务以其便捷、安全的特点受到了广大用户的青睐。为了满足这一市场需求,代驾系统基础功能软件应运而生,通过…

Windows重新安装安全中心解决白屏问题

重新安装Windows安全中心(Windows Security Center)涉及多个步骤,包括重置Windows安全功能和重新安装Windows安全应用。以下是详细的步骤: 1. 通过PowerShell重置Windows安全中心 打开PowerShell: 在开始菜单中搜索“PowerShell”…

AIGC遇上ChatGPT,互联网公司的创意设计师,还能做什么?

随着科技的日新月异,AIGC(人工智能生成内容)和ChatGPT等AI技术的涌现,为互联网公司的创意设计师们描绘了一幅充满挑战与机遇的新图景。在这个数字化、智能化的新时代,创意设计师们不仅要保持敏锐的审美眼光和源源不断的…

精细化视频剪辑解决方案,数字人接入定制开发

为满足企业对于高质量、高效率视频制作的需求,美摄科技推出了全新的精细化视频剪辑解决方案。凭借多端专业的视频编辑工具、模板设计工具以及数字人接入定制开发服务,美摄科技为企业提供了一站式的视频剪辑体验,助力企业轻松打造专业级视频内…

社交风潮塑造者:探索用户在Facebook的影响力

在当今数字化社会中,Facebook不仅是人们社交互动的主要平台,更是塑造社交风潮和文化趋势的重要力量。本文将从另一个角度深入探讨用户在Facebook上的影响力,探索其如何通过个人行为和互动,影响和改变社会的各个方面。 个人表达和内…

【大数据技术原理与应用(概念、存储、处理、分析与应用)】第1章-大数据概述习题与知识点回顾

文章目录 单选题多选题知识点回顾几次信息化浪潮主要解决什么问题?信息科技为大数据时代提供哪些技术支撑?数据产生方式有哪些变革?大数据的发展历程大数据的四个特点(4V)大数据对思维方式的影响大数据有哪些关键技术&…

C++调试技巧总结

1.调试准备 常用调试 Crash调试 调试信息: Windows系统:符号单独PDB文件/链接时生成,从外部的符号服务器下载。(微软) LInux: 调试符号与目标模块在一个文件内,编译时产生调试信息。模块发布时…

OurBMC大咖说丨第5期:BMC开发中的非标准化问题探讨

栏目介绍:"OurBMC大咖说" 是由 OurBMC 社区精心策划的线上讲座栏目,邀请 BMC 相关领域大咖共同探讨 BMC 全栈技术的发展趋势、挑战和机遇。无论你是初学者还是资深从业者,"OurBMC大咖说" 都将为你提供一个宝贵的学习和交…

MobileViT v3 论文解读

paper:MobileViTv3: Mobile-Friendly Vision Transformer with Simple and Effective Fusion of Local, Global and Input Features official implementation:GitHub - micronDLA/MobileViTv3 出发点 MobileViT v1通过结合CNN和ViT的优势,…