一、聚类算法

1. K-Means 聚类

  • 原理:K-Means 是一种基于划分的聚类算法,目标是将 n n n 个样本划分到 k k k 个簇中,使得簇内样本的相似度尽可能高,簇间样本的相似度尽可能低。算法通过迭代的方式,不断更新簇的质心(即簇内样本的均值),直到质心不再变化或达到最大迭代次数。
  • 步骤
    1. 随机初始化 k k k 个质心。
    2. 将每个样本分配到距离最近的质心所在的簇。
    3. 重新计算每个簇的质心。
    4. 重复步骤 2 和 3,直到质心不再变化或达到最大迭代次数。
  • 优点:实现简单,计算效率高,对于大规模数据集有较好的性能。
  • 缺点:需要预先指定簇的数量 k k k;对初始质心的选择敏感,可能会陷入局部最优解;对噪声和离群点敏感。

2. DBSCAN 聚类

  • 原理:DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一种基于密度的聚类算法,它将具有足够密度的区域划分为簇,并在具有噪声的数据中发现任意形状的簇。核心概念包括核心点、边界点和噪声点。
  • 步骤
    1. 定义两个参数:邻域半径 ϵ \epsilon ϵ 和最小样本数 M i n P t s MinPts MinPts
    2. 遍历所有样本,找出所有核心点(在其 ϵ \epsilon ϵ 邻域内至少有 M i n P t s MinPts MinPts 个样本)。
    3. 从一个核心点开始,通过密度可达关系(即从一个核心点出发,通过一系列核心点相连)扩展出一个簇。
    4. 重复步骤 3,直到所有核心点都被访问过。未被访问的样本被标记为噪声点。
  • 优点:不需要预先指定簇的数量;可以发现任意形状的簇;对噪声和离群点具有较好的鲁棒性。
  • 缺点:对于密度变化较大的数据集,参数 ϵ \epsilon ϵ M i n P t s MinPts MinPts 的选择比较困难;在高维数据上的性能可能较差。

3. 层次聚类

  • 原理:层次聚类是一种基于样本间相似度的聚类算法,它通过构建一个层次化的聚类树来表示样本之间的聚类关系。层次聚类可以分为凝聚式(自底向上)和分裂式(自顶向下)两种方式。
  • 步骤(凝聚式)
    1. 将每个样本看作一个单独的簇。
    2. 计算所有簇之间的相似度,将相似度最高的两个簇合并成一个新的簇。
    3. 重复步骤 2,直到所有样本都合并到一个簇中或达到停止条件。
  • 优点:不需要预先指定簇的数量;可以生成一个层次化的聚类结构,方便用户根据需要选择合适的聚类结果。
  • 缺点:计算复杂度较高,对于大规模数据集的计算效率较低;一旦一个合并操作完成,就不能再撤销,可能会导致聚类结果不理想。

在论文中聚类的策略不一定是针对所有特征,可以针对其中几个可以解释的特征进行聚类,得到聚类后的类别,这样后续进行解释也更加符合逻辑。

二、聚类的流程,实操

  • 标准化数据

  • 选择合适的算法,根据评估指标调参( )
    KMeans 和层次聚类的参数是K值,选完k指标就确定
    DBSCAN 的参数是 eps 和min_samples,选完他们出现k和评估指标
    以及层次聚类的 linkage准则等都需要仔细调优。
    除了经典的评估指标,还需要关注聚类出来每个簇对应的样本个数,避免太少没有意义。

  • 将聚类后的特征添加到原数据中

  • 原则t-sne或者pca进行2D或3D可视化

作业: 对心脏病数据集进行聚类。

import pandas as pd
from sklearn.cluster import DBSCAN
from sklearn.preprocessing import StandardScaler
import matplotlib.pyplot as plt
import numpy as np# 读取 heart.csv 文件
file_path = r'.\csv\heart.csv'
data = pd.read_csv(file_path)# 假设数据集中所有列都是数值型特征,若有非数值型需要先处理
# 提取特征
X = data.values# 数据标准化
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)

接下来以DBSCAN聚类算法为例

# 使用 DBSCAN 进行聚类
db = DBSCAN(eps=0.3, min_samples=10).fit(X_scaled)
core_samples_mask = np.zeros_like(db.labels_, dtype=bool)
core_samples_mask[db.core_sample_indices_] = True
labels = db.labels_# 聚类数量(排除噪声点)
n_clusters_ = len(set(labels)) - (1 if -1 in labels else 0)
n_noise_ = list(labels).count(-1)print(f'估计的聚类数量: {n_clusters_}')
print(f'估计的噪声点数量: {n_noise_}')

在这里插入图片描述
这个由于特征过多,所以不能做可视化展示,如果想做可视化展示,可以讲一个特征和标签对应,用这个特征来做聚类分析,最后可以做可视化分析。

三、总结

本文介绍了三种常见的聚类算法,对心脏病数据集做DBSCAN 聚类分析。先读取数据并标准化,设参数完成聚类得簇数与噪声点数。

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

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

相关文章

【编程干货】本地用 Ollama + LLaMA 3 实现 Model Context Protocol(MCP)对话服务

模型上下文协议(MCP)本身提供的是一套标准化的通信规则和接口,简化了客户端应用的开发。 MCP 实际上是一套规范,官方把整套协议分成「传输层 协议层 功能层」三大块,并对初始化握手、能力协商、数据/工具暴露、安全…

永磁同步电机控制算法-基于新型趋近律的反馈线性化滑模控制

一、原理介绍 针对永磁同步电机传统PID矢量控制方式无法实现d、q轴电流完全解耦控制的问题,运用反馈线性化理论实现永磁同步电机转速和d轴电流解耦。针对反馈线性化导致的鲁棒性下降问题,利用滑模控制方式提高系统鲁棒性,引入新型双幂次趋近…

德尔菲法和层次分析法是什么

德尔菲法和层次分析法是什么 德尔菲法和层次分析法是两种常用的决策分析方法 德尔菲法 定义:德尔菲法是一种采用背对背的通信方式征询专家小组成员的预测意见,经过几轮征询,使专家小组的预测意见趋于集中,最后做出符合市场未来发展趋势的预测结论。实施步骤 组成专家小组…

【windows】win10部分版本的sxs文件下载

Win10部分版本的sxs文件下载 win10 1703 链接: https://pan.baidu.com/s/13O5djVSWIhIjBP1ZVtORAA?pwdsdpp 提取码: sdpp win10 1809 链接: https://pan.baidu.com/s/1vUEMQWqWcyTicHLJNox99w?pwddfx4 提取码: dfx4 win10 1903,1909 链接: https://pan.baidu.com/s/1MoKcm3N…

Java项目部署-Springboot+Vue网页部署上线全教程

SpringbootVue网页部署上线全教程 文章目录 SpringbootVue网页部署上线全教程1.环境说明2.Mysql安装部署2.1 安装并修改密码2.2 防火墙开放 3.Spring Boot项目打包3.1 配置公网ip3.2 安装 Maven3.3 使用 Maven 打包 Spring Boot 项目3.4 Centos运行Jar包3.4.1 安装 Java 1.8 环…

FISCO BCOS【初体验笔记】

飞梭区块链搭建初体验笔记 环境部署创建四个节点的飞梭区块链用的VMware17 centos 7.9 区块链是飞梭2.0用的webase-frontJava环境的正确安装Webase-front搭建 智能合约设计一点合约调试笔记 智能合约abi文件转为go文件后端项目配置相关工具linux常用命令(防忘记&…

内容社区系统开发文档

1 系统分析 1.1 项目背景 1.2 需求分析 2 系统设计 2.1 系统功能设计 2.2 数据库设计 2.2.1 数据库需求分析 2.2.2 数据库概念结构设计 2.2.3 数据库逻辑结构设计 2.2.4 数据库物理结构设计 2.2.5 数据库视图设计 2.2.6 函数设计 2.2.7 存储过程设计 2.2.8 触发器…

BigemapPro小技巧:调整线方向及延长线

今天为大家分享两个 BigemapPro 处理矢量数据的小技巧,分别是调整线方向和延长线要素,掌握这些技巧能够大幅提升数据处理的效率和准确性。 01 调整线方向 在BigemapPro中,线要素其实是带有方向属性的,正常情况下看不出来 但是如果…

nt!MiSessionAddProcess函数分析和nt!MmSessionSpace全局变量的关系

第一部分: 1: kd> g Breakpoint 42 hit nt!MiSessionAddProcess: 80ab2fbe 55 push ebp 1: kd> kc # 00 nt!MiSessionAddProcess 01 nt!MmCreateProcessAddressSpace 02 nt!PspCreateProcess 03 nt!NtCreateProcessEx 04 nt!_KiSystemServic…

2025年消防设施操作员考试题库及答案

一、判断题 31.消防用水不作他用的技术措施应每季度进行检查,若发现故障应及时进行处理。() 答案:错误 解析:本题考查的是消防水池、高位消防水箱的保养方法。每月检查消防用水不作他用的技术措施,发现故…

Ray开源程序 是用于扩展 AI 和 Python 应用程序的统一框架。Ray 由一个核心分布式运行时和一组用于简化 ML 计算的 AI 库组成

​一、软件介绍 文末提供程序和源码下载 Ray开源程序 是用于扩展 AI 和 Python 应用程序的统一框架。Ray 由一个核心分布式运行时和一组用于简化 ML 计算的 AI 库组成 二、Ray AI 库的更多信息 数据:适用于 ML 的可扩展数据集训练:分布式训练Tune&…

软件设计师-软考知识复习(3)

在磁盘上存储数据的排列方式会影响I/O服务的总时间。假设每个磁道被划分成10个物理块,每个物理块存放1个逻辑记录。逻辑记录R1,R2…R10存放在同一个磁道上,记录的排列从1到10。 假定磁盘的旋转速度为10ms/周,磁头当前处在R1的开始处。若系统…

Unity Editor 扩展:查找缺失的 Image Sprite

在 Unity 开发过程中,缺失的 Sprite 引用(特别是在 UI 元素上)可能导致程序运行时出现问题,尤其是在使用 Image 组件时。当你拥有多个 Prefab 和大量的 UI 资源时,手动检查每个 Prefab 是否缺失了 Source Image 变得十…

在VTK中使用VTKCamera

文章目录 概要Cpp代码概要 在VTK(Visualization Toolkit)中,vtkCamera 类用于控制三维场景中相机的视角。相机决定了你从哪个角度和位置观察三维场景。使用 vtkCamera 的一般步骤包括创建相机对象、配置相机参数、将相机设置为渲染器的活动相机,以及更新相机视图。 Cpp代…

【Docker系列】使用格式化输出与排序技巧

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

临床智能体AI与环境感知AI的融合:基于python的医疗自然语言处理深度分析

引言 医疗领域的数智化进程正以前所未有的速度推进,人工智能技术的应用尤为显著。随着大型语言模型(LLMs)的迅猛发展,医疗AI已从简单的辅助工具升级为复杂的智能体系统。临床智能体AI与环境感知AI的融合代表了医疗AI的最新发展方向,为重塑医疗运营自然语言处理提供了全新…

JAVA SE(9)——多态

1.多态的概念&作用 多态(Polymorphism)是面向对象编程的三大基本特性之一(封装和继承已经讲过了),它允许不同类的对象对同一消息做出不同的响应。具体来说,多态允许基类/父类的引用指向派生类/子类的对象(向上转型…

GPS定位方案

目录 一、常用的GPS定位方案包括: 二、主流品牌及热销型号 三、常用GPS算法及核心逻辑: 一、基础定位算法 二、高精度算法 三、辅助优化算法 四、信号处理底层算法 四、基本原理(想自己写算法的琢磨一下原理) 一、常用的GP…

PCIe - ZCU106(RC) + KU5P(EP) + 固化

目录 1. 简介 1.1 Data Mover 1.2 描述符 2. ZCU102 2.1 Ubuntu OS 2.2 USB Host 2.2.1 连接拓扑 2.2.2 设备类型 2.2.3 USB 跳帽设置 2.3 无线网卡 2.4 PCIe Info 2.4.1 Diagram 2.4.2 lspci -tv 2.4.3 lspci -v 2.4.2.1 设备基本信息 2.4.2.2 控制与状态寄存…

精益数据分析(43/126):媒体网站商业模式的盈利与指标解析

精益数据分析(43/126):媒体网站商业模式的盈利与指标解析 在创业和数据分析的学习旅程中,我们不断探索各种商业模式的奥秘,今天让我们一同深入《精益数据分析》,聚焦媒体网站商业模式,剖析其盈…