本文以iris鸢尾花数据为例,实现各种聚类算法。
文章里理论部分很简略,主要是python实践。
没想到疫情期间度过了研一下学期,全在上网课,仍然是获益匪浅。
正好在上机器学习的课程做了结课报告,感谢华中师大张雄军老师,疯狂鞭笞我们去实践,小白上了一学期机器学习学到很多,终于入门了呜呜呜~~~
一、聚类算法
聚类算法即分类算法。分类的输入项是数据的特征,输出项是分类标签,它是无监督的。
为什么要聚类?对大量数据简化表示,寻找对数据结构的新见解。
聚类算法的重要概念:
不相似性:
类间距离:
聚类算法希望类间距离越小越好。
聚类算法簇类数量K的确定:
(1)CH index; (2)Gap statistic
二、聚类算法分类介绍
常见的聚类规则包括:
1)基于原型的,例如有通过质心或中心点聚类,
常见算法:KMeans、kmediods;
2)基于图的,也就是通过节点和边的概念,形成连通分支的分类,
常见算法:hierarchical clustering;
3)基于密度的,根据数据密度的大小进行聚类,
常见算法:DBSCAN密度聚类;
4)基于统计的聚类,数据一般符合一种或几种概率分布,根据概率分布情况进行聚类。
常见算法:高斯混合模型;
三、理论介绍(很简略)
1. KMeans、Kmediods
原理比较简单,网上都有
2. 凝聚层次聚类Agglomerative hierarchical
又可以分为 linkage=single、complete、average、centroid
凝聚层次聚类中重要概念linkage:衡量两个group之间的不相似性
其中 ,主要有single、complete、average、centroid类型:
3. DBSCAN
以DBSCAN聚类为例,核心思想就