Clustering聚类算法总结+python实践

发布网友

我来回答

1个回答

热心网友

在本文中,我们将通过Python实践,以Iris鸢尾花数据集为例,探索各种聚类算法的应用。


虽然理论部分较为简略,但实践环节至关重要。在疫情期间的网课学习中,我有幸在机器学习课程中完成了结课报告,特别感谢华中师大张雄军老师的引导,让我在探索中逐渐入门机器学习,收获颇丰。


一、聚类算法基础

聚类算法是一种无监督学习方法,它的目标是根据数据的特征,自动将相似的数据分组,而不涉及预设的标签。聚类的目的在于数据简化和理解,发现数据结构的新洞察。


关键概念

不相似性:衡量不同类别的数据间的距离。
类间距离:目标是减小类与类之间的差异。
确定簇类数量K的方法:如CH index和Gap statistic。

二、聚类算法分类

主要的聚类方法有:


基于原型的:如KMeans和kmediods,通过中心点进行聚类。
基于图的:hierarchical clustering,通过节点和边构建聚类结构。
基于密度的:DBSCAN,根据数据密度划分簇。
基于统计的:高斯混合模型,利用概率分布进行聚类。


算法简述

KMeans:简单直观,网上资料丰富。
凝聚层次聚类:根据linkage类型,如single、complete、average或centroid。
DBSCAN:通过密度可达性进行聚类。
GMM:使用高斯分布建模,通过EM算法求解参数。

三、Python实践

我们以Iris数据集为例,初始设置K=3,DBSCAN的半径设为0.5,密度阈值设为2。通过TSNE进行高维可视化,展示了不同算法的预测结果。尽管聚类算法无法直接计算精确度,但通过对比已知分类,我们可以评价如purity这样的指标。


总结来说,不同的聚类方法适用于不同的数据类型和问题,没有绝对的优劣之分,关键在于理解数据特性并选择合适的算法。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com