【机器学习】DBSCAN聚类算法——原理、参数调优与实战
DBSCAN聚类算法从原理到参数调优实战简介一、DBSCAN 相关概念核心概念图解核心术语详解算法实现流程二、DBSCAN 的 API核心参数说明三、案例分析1. 导入所需库2. 数据读取与标准化3. 数据准备4. DBSCAN 参数调优5. 确定最佳参数并输出结果总结关键参数调优建议简介本次我们将聚焦于一款极具特色的聚类算法——DBSCAN。相较于 K-means 等需要预先指定簇数量的算法DBSCAN 以其无监督自适应的特性在聚类领域占据着不可替代的地位。在这一课中我们会深入剖析 DBSCAN 算法的核心原理。你将了解到它如何通过密度可达和核心对象等关键概念自动发现数据集中任意形状的簇还能识别出那些不属于任何簇的噪声点。这一特性让它在处理非凸形状、存在噪声的数据时展现出远超传统聚类算法的优势。一、DBSCAN 相关概念核心概念图解DBSCANDensity-Based Spatial Clustering of Applications with Noise是一种基于密度的空间聚类算法。它将簇定义为密度相连的点的最大集合能够将具有足够高密度的区域划分为簇并在噪声数据中发现任意形状的聚类。核心术语详解术语定义核心对象Core Point如果某个点的 Eps 邻域内包含的样本数量 ≥ MinPts则该点为核心对象Eps 邻域给定对象半径 Eps 内的区域即以该点为中心、Eps 为半径的圆形区域直接密度可达如果点 p 在点 q 的 Eps 邻域内且 q 是核心对象则称 p 从 q 直接密度可达密度可达存在一个点链 p₁, p₂, …, pₙ使得每个点都从上一个点直接密度可达边界点Border Point在某个簇内但自身不是核心对象的点离群点Outlier / Noise既不是核心对象也不是边界点不属于任何簇的点算法实现流程输入数据集指定半径 Eps指定密度阈值 MinPts遍历所有点标记核心对象对每个核心对象找出其密度可达的所有点形成簇将不在任何簇中的点标记为噪声二、DBSCAN 的 APIclasssklearn.cluster.DBSCAN(eps0.5,min_samples5,metriceuclidean,metric_paramsNone,algorithmauto,leaf_size30,pNone,n_jobsNone)核心参数说明参数说明eps邻域半径决定了一个点的邻域范围默认 0.5min_samples构成核心点所需的最少样本数密度阈值默认 5metric距离度量方式默认 ‘euclidean’欧氏距离metric_params度量函数的额外参数默认 Nonealgorithm近邻搜索算法‘auto’ 表示自动选择ball_tree / kd_tree / bruteleaf_size构建 BallTree 或 KDTree 时的叶子节点大小默认 30p闵可夫斯基距离的阶数p2 为欧氏距离p1 为曼哈顿距离n_jobs并行计算的 CPU 核心数-1 表示使用所有核心三、案例分析1. 导入所需库importpandasaspdfromsklearn.clusterimportDBSCANfromsklearn.preprocessingimportStandardScalerfromsklearn.metricsimportadjusted_rand_score,normalized_mutual_info_scoreimportnumpyasnp2. 数据读取与标准化# 读取训练集和测试集数据data_trainpd.read_csv(datingTestSet2.txt,sep\t,encodingutf-8,enginepython,headerNone)data_testpd.read_csv(datingTestSet1.txt,sep\t,encodingutf-8,enginepython,headerNone)# 标准化处理DBSCAN 基于距离必须进行标准化scalerStandardScaler()data_train.iloc[:,:-1]scaler.fit_transform(data_train.iloc[:,:-1])data_test.iloc[:,:-1]scaler.transform(data_test.iloc[:,:-1])3. 数据准备x_traindata_train.iloc[:,:-1]# 训练集特征x_testdata_test.iloc[:,:-1]# 测试集特征y_train_truedata_train.iloc[:,-1]# 训练集真实标签y_test_truedata_test.iloc[:,-1]# 测试集真实标签4. DBSCAN 参数调优# 测试不同的 eps 参数scores[]eps_param_range[0.09,0.1,0.2,0.3,0.4,0.5,0.6]forepsineps_param_range:dbscanDBSCAN(epseps,min_samples2)train_labelsdbscan.fit_predict(x_train)# 忽略噪声点标签为 -1进行评估masktrain_labels!-1ifnp.sum(mask)0:ariadjusted_rand_score(y_train_true[mask],train_labels[mask])nminormalized_mutual_info_score(y_train_true[mask],train_labels[mask])score_mean(arinmi)/2scores.append(score_mean)print(feps {eps}平均得分 (ARINMI)/2 {score_mean:.4f})else:print(feps {eps}所有样本均被标记为噪声)scores.append(-1)5. 确定最佳参数并输出结果# 选择最佳 epsbest_epseps_param_range[np.argmax(scores)]print(f最优 eps 参数{best_eps})# 使用最佳参数重新训练best_dbscanDBSCAN(epsbest_eps,min_samples2)train_labelsbest_dbscan.fit_predict(x_train)print(训练集聚类标签\n,train_labels)# 对测试集进行聚类test_labelsbest_dbscan.fit_predict(x_test)print(测试集聚类标签\n,test_labels)总结DBSCAN 的优势无需预先指定簇数量自动发现数据中的聚类结构可发现任意形状的簇不同于 K-means 只能发现球形簇具有噪声过滤能力能自动识别并剔除离群点关键参数调优建议参数调优方法eps使用 k-distance 图辅助确定或通过网格搜索结合评估指标选择min_samples一般取数据维度的 2 倍或更大数据量较大时可适当增加

相关新闻

Unity3D MMORPG手游战斗系统架构设计与C#实战解析

Unity3D MMORPG手游战斗系统架构设计与C#实战解析

1. 项目概述:为什么MMORPG战斗系统是手游成败的关键在手游开发领域,尤其是MMORPG这个红海赛道,战斗系统的好坏几乎直接决定了产品的生死。它不仅仅是玩家与游戏世界交互的核心,更是承载付费、社交、策略和长期留存的关键模块。一个…

2026/8/3 2:48:11阅读更多 →
Unity动画进阶:Parent Constraints实现动态装备绑定与平滑切换

Unity动画进阶:Parent Constraints实现动态装备绑定与平滑切换

1. 项目概述:从父子关系到约束关系的思维跃迁如果你是一个Unity动画师或者技术美术,肯定对“父子关系”(Parenting)这个操作熟得不能再熟了。把一把剑拖到角色的手上,让它成为手骨骼的子物体,这是最直接、最…

2026/8/3 2:48:11阅读更多 →
AI实验自动化调度框架:基于成本感知的智能GPU资源管理

AI实验自动化调度框架:基于成本感知的智能GPU资源管理

1. 项目概述:当AI实验遇上“电费焦虑”如果你也搞过深度学习,尤其是需要长时间训练模型或者跑大量对比实验,那对下面这个场景肯定不陌生:盯着屏幕上的训练进度条,心里盘算着这次实验要跑多久,然后目光不自觉…

2026/8/3 2:48:11阅读更多 →
Jetson Orin部署YOLOv11与深度相机实现实时目标测距

Jetson Orin部署YOLOv11与深度相机实现实时目标测距

1. 项目概述:当YOLOv11遇上Jetson Orin与深度相机最近在边缘计算和机器人领域,一个非常实际的需求越来越突出:不仅要“看见”物体,还要知道它“有多远”。传统的目标检测模型,比如我们熟悉的YOLO系列,能精准…

2026/8/3 4:04:57阅读更多 →
C语言双人跑酷游戏开发:蹦床机制与数据驱动地图实现

C语言双人跑酷游戏开发:蹦床机制与数据驱动地图实现

1. 项目概述:从零到一的双人跑酷游戏世界最近在社区里看到不少朋友对用Dev-C做小游戏很感兴趣,尤其是那种能和朋友一起玩的。正好,我之前用C语言和Dev-C的图形库捣鼓过一个双人跑酷游戏,版本迭代到了3.2,核心玩法就是两…

2026/8/3 4:04:57阅读更多 →
DAMA框架:企业数据资产化与治理实践指南

DAMA框架:企业数据资产化与治理实践指南

1. 数据资产化浪潮下的DAMA框架价值数据正在成为这个时代最核心的生产要素之一。根据国际数据公司(IDC)的预测,到2025年全球数据总量将达到175ZB。但现实中,超过80%的企业数据仍处于"沉睡"状态,无法转化为真…

2026/8/3 4:04:57阅读更多 →
哈里斯鹰算法优化最小二乘提升(HHO-LSBoost)多输入回归预测

哈里斯鹰算法优化最小二乘提升(HHO-LSBoost)多输入回归预测

1. 哈里斯鹰算法优化最小二乘提升(HHO-LSBoost)多输入回归预测解析在工程预测和数据分析领域,多输入回归预测一直是个经典难题。传统的最小二乘法虽然简单直接,但在面对非线性、高维度数据时往往力不从心。而哈里斯鹰算法(HHO)作为一种新兴的元启发式优化…

2026/8/3 4:04:57阅读更多 →
AI论文写作工具评测:虎贲等考AI表现突出

AI论文写作工具评测:虎贲等考AI表现突出

1. 主流AI论文写作工具横向评测作为一名长期关注AI写作工具发展的研究者,我最近对市面上5款主流AI论文辅助工具进行了深度实测。测试发现,虎贲等考AI在学术规范性、文献处理能力和写作质量三个维度表现突出,成为本次评测的"实力担当&quo…

2026/8/3 4:04:57阅读更多 →
Unity游戏资源修改实战:UABEA工具核心技巧与避坑指南

Unity游戏资源修改实战:UABEA工具核心技巧与避坑指南

1. 项目概述:从玩家到创造者的第一步如果你玩过一些Unity引擎开发的单机游戏,无论是PC上的独立佳作,还是手机上的热门作品,可能都曾有过这样的念头:这个角色的衣服能不能换一种颜色?这个武器的属性是不是可…

2026/8/3 4:02:56阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/3 0:29:53阅读更多 →
限时公开!某头部SaaS公司内部AI模板工厂架构文档(含5类行业模板源码+性能压测报告)

限时公开!某头部SaaS公司内部AI模板工厂架构文档(含5类行业模板源码+性能压测报告)

更多请点击: https://intelliparadigm.com 第一章:AI模板批量生成的核心价值与落地全景 AI模板批量生成正从实验性工具演进为现代软件工程的关键基础设施。它通过语义理解、上下文感知与结构化约束,将重复性高、模式明确的代码/文档/配置生成…

2026/8/3 0:33:53阅读更多 →
如何快速找回消失的网页:Web Archives浏览器扩展终极指南

如何快速找回消失的网页:Web Archives浏览器扩展终极指南

如何快速找回消失的网页:Web Archives浏览器扩展终极指南 【免费下载链接】web-archives Browser extension for viewing archived and cached versions of web pages, available for Chrome, Edge and Safari 项目地址: https://gitcode.com/gh_mirrors/we/web-a…

2026/8/3 0:20:37阅读更多 →
3个让你工作效率翻倍的Umi-OCR实战技巧:免费离线文字识别完全指南

3个让你工作效率翻倍的Umi-OCR实战技巧:免费离线文字识别完全指南

3个让你工作效率翻倍的Umi-OCR实战技巧:免费离线文字识别完全指南 【免费下载链接】Umi-OCR OCR software, free and offline. 开源、免费的离线OCR软件。支持截屏/批量导入图片,PDF文档识别,排除水印/页眉页脚,扫描/生成二维码。…

2026/8/3 0:00:32阅读更多 →
[具身智能-181]:PC+服务器+具身机器人:构建具身智能从仿真到量产的闭环迭代混合架构

[具身智能-181]:PC+服务器+具身机器人:构建具身智能从仿真到量产的闭环迭代混合架构

PC服务器具身机器人:构建具身智能从仿真到量产的闭环迭代混合架构一、前言:具身智能需要“混合算力闭环系统”传统人工智能依赖云端静态数据集训练,不具备物理交互能力,无法适应真实世界的不确定性。具身智能(Embodied…

2026/8/3 0:00:32阅读更多 →
[具身智能-181]:大分布式通信模型对比:看懂为什么 DDS 是 ROS2 底层通信最优解

[具身智能-181]:大分布式通信模型对比:看懂为什么 DDS 是 ROS2 底层通信最优解

前言构建机器人、具身智能这类分布式实时系统,通信底座直接决定整套系统的实时性、容错性、组网能力。分布式领域长期存在 4 类经典通信架构:点对点模式、Broker 中间代理模式、广播模式、以数据为中心(DDS)模式。很多开发者疑惑&…

2026/8/3 0:00:32阅读更多 →
无损视频剪辑终极指南:如何实现快速高效的多媒体处理

无损视频剪辑终极指南:如何实现快速高效的多媒体处理

无损视频剪辑终极指南:如何实现快速高效的多媒体处理 【免费下载链接】lossless-cut The swiss army knife of lossless video/audio editing 项目地址: https://gitcode.com/gh_mirrors/lo/lossless-cut 在数字媒体创作领域,视频编辑处理的质量损…

2026/8/3 2:32:59阅读更多 →
AI辅助本科论文写作:8大工具评测与高效使用指南

AI辅助本科论文写作:8大工具评测与高效使用指南

1. 本科生论文写作的AI辅助现状本科毕业论文是每个大学生必须跨越的一道坎。记得我当年写论文时,光是文献检索就花了整整两周时间,打印的参考文献堆满了半个书桌。如今AI技术的发展为学术写作带来了革命性变化,合理使用这些工具可以节省80%以…

2026/8/3 2:33:01阅读更多 →
如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手

如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手

如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手 【免费下载链接】ticket-purchase 大麦自动抢票,支持人员、城市、日期场次、价格选择 项目地址: https://gitcode.com/GitHub_Trending/ti/ticket-purchase 还在为抢不到热门演唱会门票…

2026/8/3 2:33:04阅读更多 →