聚类的算法实现 | 【亲证有效】
人在最好的时光,总会犯上一些痴,一些傻。哪一段青春不荒唐,哪一场爱情不受伤,错过了前面的人。

俗话说:“物以类聚,人以群分”,在自然科学和社会科学中,存在着大量的分类问题。所谓类,通俗地说,就是指相似元素的集合。
· 常见的聚类算法 ·
K-Means
(K均值)聚类
算法步骤
(1) 首先我们选择一些类/组,并随机初始化它们各自的中心点。中心点是与每个数据点向量长度相同的位置。这需要我们提前预知类的数量(即中心点的数量)。
(2) 计算每个数据点到中心点的距离,数据点距离哪个中心点最近就划分到哪一类中。
(3) 计算每一类中中心点作为新的中心点。
(4) 重复以上步骤,直到每一类中心在每次迭代后变化不大为止。也可以多次随机初始化中心点,然后选择运行结果最好的一个。
下图演示了K-Means进行分类的过程:

优点:
速度快,计算简便
缺点:
我们必须提前知道数据有多少类/组。
K-Medians是K-Means的一种变体,是用数据集的中位数而不是均值来计算数据的中心点。
K-Medians的优势是使用中位数来计算中心点不受异常值的影响;缺点是计算中位数时需要对数据集中的数据进行排序,速度相对于K-Means较慢。
2. 均值漂移聚类
3. 基于密度的聚类方法(DBSCAN)
4. 用高斯混合模型(GMM)的最大期望(EM)聚类
5. 凝聚层次聚类
6. 图团体检测(Graph Community Detection)
其他的算法可以查看:
https://blog.csdn.net/Katherine_hsr/article/details/79382249
K-mean聚类
代码实现
1、导入数据

2、计算每个数据点到中心点的距离

3、对数据点分组

4、迭代收敛和更新质心

结果图展示:

相似的代码和演示的数据都上传到了网盘,大家可以去下载、尝试和应用到自己的项目中。
https://pan.baidu.com/s/1pN8veKEWmV6xCVjY_RGR-A


赞 (0)