使用Python实现Mean Shift算法

前文介绍的K-Means算法需要指定K值(分组数),本文实现的MeanShift聚类算法不需要预先知道聚类的分组数,对聚类的形状也没有限制。

为了更好的理解这个算法,本帖使用Python实现Mean Shift算法。

MeanShift算法详细介绍:https://en.wikipedia.org/wiki/Mean_shift

scikit-learn中的MeanShift

使用Python实现Mean Shift算法

使用Python实现Mean Shift算法

MeanShift把上面数据自动分为3组,计算出的三个组的”中心点”为:

使用Python实现Mean Shift算法

执行结果:

使用Python实现Mean Shift算法

bandwidth参数代表点的半径(radius)范围,bandwidth=20:

使用Python实现Mean Shift算法

bandwidth=2.5:

使用Python实现Mean Shift算法

这个bandwidth可以根据数据样本求出最适合的值。

在实际数据上应用Mean Shift算法

数据集:titanic.xls(泰坦尼克号遇难者/幸存者名单)。目的:对乘客进行分类,看看这几组人有什么共同特点。

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注