数据分析技术---对比K-means,密度分析和层次聚类性能

一、数据集选择:

Iris数据集。

二、实验代码:

#对比k-means、密度聚类和层次聚类性能

import matplotlib.pyplot as plt

from sklearn import datasets

from sklearn.cluster import KMeans, DBSCAN, AgglomerativeClustering

from sklearn.preprocessing import StandardScaler

import seaborn as sns



# 加载Iris数据集

iris = datasets.load_iris()

X = iris.data

y = iris.target



# 数据标准化(对于k-means和DBSCAN可能是有必要的)

scaler = StandardScaler()

X_scaled = scaler.fit_transform(X)



# k-means聚类

kmeans = KMeans(n_clusters=3, random_state=0)

y_kmeans = kmeans.fit_predict(X_scaled)



# 密度聚类(DBSCAN)

dbscan = DBSCAN(eps=0.5, min_samples=5)

y_dbscan = dbscan.fit_predict(X_scaled)



# 层次聚类

agg_clustering = AgglomerativeClustering(n_clusters=3)

y_agg = agg_clustering.fit_predict(X_scaled)



# 绘制k-means聚类结果

plt.figure(figsize=(10, 4))

plt.subplot(1, 3, 1)

sns.scatterplot(x=X_scaled[:, 0], y=X_scaled[:, 1], hue=y_kmeans, palette='viridis')

plt.title('K-Means Clustering')



# 绘制DBSCAN聚类结果

plt.subplot(1, 3, 2)

sns.scatterplot(x=X_scaled[:, 0], y=X_scaled[:, 1], hue=y_dbscan, palette='viridis')

plt.title('DBSCAN Clustering')



# 绘制层次聚类结果

plt.subplot(1, 3, 3)

sns.scatterplot(x=X_scaled[:, 0], y=X_scaled[:, 1], hue=y_agg, palette='viridis')

plt.title('Agglomerative Clustering')



plt.tight_layout()

plt.show()

三、三种聚类方法的实验结果图:

四、性能分析:

1.定量分析:

k-means:在Iris数据集上,k-means能够快速地将样本分为三类,但由于其基于距离的聚类方式,对于非凸形或噪声较大的数据集可能表现不佳。

密度聚类(DBSCAN):DBSCAN能够发现任意形状的簇,并对噪声数据不敏感。在Iris数据集上,它能够清晰地划分出三个簇,并且对于噪声数据有较好的处理能力。

层次聚类:层次聚类能够产生层次化的聚类结果,但在选择聚类数时需要人工干预。在Iris数据集上,当设定聚类数为3时,层次聚类能够得到较好的结果。

2.定性分析:

k-means:优点在于速度快、实现简单,适用于大规模数据集。缺点在于对初始质心敏感,可能陷入局部最优解,且对于非凸形或噪声较大的数据集可能表现不佳。

密度聚类(DBSCAN):优点在于能够发现任意形状的簇,对噪声数据不敏感。缺点在于需要调整两个参数(eps和min_samples),且对于高维数据可能表现不佳。

层次聚类:优点在于能够产生层次化的聚类结果,便于分析数据的层次结构。缺点在于计算复杂度高,对于大规模数据集可能不适用,且在选择聚类数时需要人工干预。

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

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

相关文章

STM32自己从零开始实操04:显示电路原理图

一、TFT-LCD 屏接口 1.1指路 以下是该部分的设计出来后的实物图,我觉得看到实物图可能更方便理解这部分的设计。 图1 实物图 这部分设计的是一个屏幕的接口,很简单。使用的屏幕是:2.8inch 16BIT Module MRB2801。 1.2数据手册 &#xff0…

metasploit上线之后可以使用的命令

1. 通用控制命令 meterpreter > essions -k 1 # 通过ID号杀死一个会话 meterpreter > background # 将会话放入后台 meterpreter > getuid/getpid # 查询用户权限与PID meterpreter > sysinfo # 查看目标…

智慧校园教学模式的崛起:优化学习体验

在当今数字化时代,智慧校园教学模式正在成为教育界的热门话题。随着科技的不断发展,传统的教学方式已经无法满足现代学生的需求。智慧校园教学模式以其灵活性、互动性和个性化的特点,正逐渐改变着教育的面貌。 首先,智慧校园教学模…

R_AARCH64_ADR_PREL_PG_HI21问题说明

目录 问题现象: 问题原因 问题机理 问题现象: 客户现场加载out文件出现如下问题: 打印“Relocation of type ‘R_AARCH64_ADR_PREL_PG_HI22…..’”,明确是ARDP指令引起的问题 问题原因 ARDP的寻址范围是4GB范围,加载的位置…

Tomcat概述及部署

目录 一、Tomcat概述 1.Tomcat的简介 2.Tomcat 核心的三个组件 3.应用场景 4.Tomcat 请求过程 二、部署安装Tomcat 三、Tomcat 虚拟主机配置 四、Tomcat多实例部署 一、Tomcat概述 1.Tomcat的简介 Tomcat 是 Java 语言开发的,Tomcat 服务器是一个免费的开…

经验分享,超声波车位引导系统和视频车位引导系统有哪些区别

随着城市化进程的加速和汽车保有量的持续增长,停车难已成为城市交通管理的一大挑战。车位引导系统作为解决这一问题的有效工具,其重要性日益凸显。它不仅能够提升停车场的运营效率,还能显著改善驾驶者的停车体验。目前市场上主要有两种车位引…

颠沛流离学二叉树(完结撒花篇)

本篇会加入个人的所谓鱼式疯言 ❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言 而是理解过并总结出来通俗易懂的大白话, 小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的. 🤭🤭🤭可能说的不是那么严谨.但小编初心是能让更多人…

mac M1下安装PySide2

在M1下装不了PySide2, 是因为PySide2没有arm架构的包 1 先在M1上装qt5 安装qt主要是为了能用里面的Desinger, uic, rcc brew install qt5 我装完的路径在/opt/homebrew/opt/qt5 其中Designer就是用来设计界面的 rcc用resource compiler, 编绎rc资源文件的, 生成对应的py文件…

使用pexpect检查SSH上的文件是否存在

使用 pexpect 模块可以在 Python 中执行命令并检查其输出。你可以使用 ssh 命令连接到远程服务器,并执行 ls 命令检查文件是否存在。下面我就列举几个我经常遇到的几个错误并做个详细的解决方案。 1、问题背景 用户需要编写一个 Python 脚本,以检查一个…

编制教师违约金一般是多少钱

老师们,你们在签订合同时,对合同中提到的违约金条款感到疑惑?那么,编制教师的违约金一般是多少呢?可能很多老师在签订合同时都没有一个明确的答案。 违约金的设定是为了保障双方的权益,当一方违反合同约定时…

有极性电容器的引脚极性怎么判别?

由于有极性电容器有正、负之分,在电路中又不能乱接,所以在使用有极性电容器前需要先判别出正、负极。有极性电容器的正、负极判别方法如图2—9~图2—11所示。 方法一:对于未使用过的新电容,可以根据引脚长短来判别。引…

【阿里前端面试题】聊聊前端性能优化的方案,解决过什么样的性能问题?

大家好,我是“寻找DX3906”。每天进步一点。日积月累,有朝一日定会厚积薄发! 前言: 前面已经和大家分享了4篇面试题: 《【阿里前端面试题】浏览器的加载渲染过程》 《【阿里前端面试题】客户端和服务器交互&#xff…

VUE3 学习笔记(12):对比Vuex与Pinia状态管理的基本理解

在组件传值中,当嵌套关系越来越复杂的时候必然会将混乱,是否可以把一些值存在一个公共位置,无须传值直接调用呢?VUEX应运而生,但是从VUE3开始对VUEX的支持就不那么高了,官方推荐使用Pinia。 Vuex配置 ST1:…

NGINX之location和rewrite

一.NGINX常用的正则表达式 二.Location location作用:对访问的路径做访问控制或者代理转发 1.location 常用的匹配规则: 进行普通字符精确匹配,也就是完全匹配^~ / 表示普通字符匹配。使用前缀匹配。如果匹配成功,则不再匹配其它 …

场外个股期权的杠杆率有多大?

场外个股期权作为金融衍生品的一种,为投资者在个股交易中提供了显著的杠杆效应。这种杠杆效应,简单来说,就是投资者通过较少的资金控制更大金额的投资,从而放大了投资收益的可能性,但同时也伴随着风险的增加。 文章来…

算法基础之哈希表

大家好,这里是教授.F 什么是哈希表: 哈希表其实就是数组的pro版本。数组有下标,每个下标对应着一个值。哈希表也类似,哈希表有很多哈希值,然后每一个哈希值都会对应着一个值。就是这样:hash(key) 哈希表的…

这个高考作文满分的极客,想和你聊聊新媒体写作

计育韬 曾为上海市高考作文满分考生 微信官方 SVG AttributeName 开发者 新榜 500 强运营人 复旦大学青年智库讲师 浙江传媒学院客座导师 上海团市委新媒体顾问 上海市金山区青联副主席 文案能力,从来就不是一蹴而就的。今天,来和大家聊聊当年我的…

端午档新片速递《谈判专家》领衔,每日影视作品推荐❗❗❗多部佳作待映

每日影视作品推荐一、新片速递《谈判专家》上映时间:2024年端午档预售情况:已开启预售,并有望成为该档期的票房冠军备注:据猫眼专业版数据,该片备受期待 《我才不要和你做朋友呢》上映时间:2024年端午档期预…

CSS函数: 实现数据限阈的数字函数

CSS函数中提供了几个比较实用的数字函数,它可以帮助我们实现一定的数学计算功能。常见的数字函数目前提供了五个:calc()、max()、min()和clamp()函数。其基本实现功能如下: calc():允许在声明 CSS 属性值时执行一些计算。max()&a…

智能推荐算法应用:如何提升淘宝在线扭蛋机用户购物体验

在淘宝的在线扭蛋机平台上,用户的购物体验至关重要。为了提升这一体验,我们引入了智能推荐算法,帮助用户发现他们可能感兴趣的扭蛋产品。这一技术的应用不仅提高了用户的购物效率,还大大增强了用户的购物乐趣。 一、智能推荐算法…