首页 分享 Python实现Iris数据集(鸢尾花卉数据集)meanshift聚类

Python实现Iris数据集(鸢尾花卉数据集)meanshift聚类

来源:花匠小妙招 时间:2024-09-17 17:52

一,鸢尾花Iris数据集解析参考博文:https://blog.csdn.net/u010916338/article/details/86487890

二,Python使用meanshift聚类,并绘制聚类散点图。

from sklearn.cluster import MeanShift

from sklearn import datasets

import matplotlib.pyplot as plt

#加载数据集,是一个字典类似Java中的map

lris_df = datasets.load_iris()

#挑选出前两个维度作为x轴和y轴,你也可以选择其他维度

x_axis = lris_df.data[:,0]

y_axis = lris_df.data[:,2]

#构建模型

model = MeanShift()

#训练模型

model.fit(lris_df.data)

#预测全部150条数据

predicted = model.fit_predict(lris_df.data)

#打印出来对150条数据的聚类散点图

plt.scatter(x_axis,y_axis,c=predicted)

meanshift聚类的效果和kmeans聚成两类的效果相当 

 

三,meanshift算法流程

(1)确定滑动窗口半径r,以随机选取的中心点C半径为r的圆形滑动窗口开始滑动。均值漂移类似一种爬山算法,在每一次迭代中向密度更高的区域移动,直到收敛。 
(2)每一次滑动到新的区域,计算滑动窗口内的均值来作为中心点,滑动窗口内的点的数量为窗口内的密度。在每一次移动中,窗口向密度更高的区域移动。 
(3)移动窗口,计算窗口内的中心点以及窗口内的密度,知道没有方向在窗口内可以容纳更多的点,即一直移动到圆内密度不再增加为止。 
(4)步骤一到三会产生很多个滑动窗口,当多个滑动窗口重叠时,保留包含最多点的窗口,然后根据数据点所在的滑动窗口进行聚类。

单个滑动窗口演示:

è¿éåå¾çæè¿°

多个滑动窗口(其中起始点的个数可以为所有样本或者随机抽样,初始值覆盖面广可以解决kmeans局部最优问题

 è¿éåå¾çæè¿°

四,meanshift的优缺点

优点:

(1)不同于K-Means算法,均值漂移聚类算法不需要我们知道有多少类/组。 
(2)基于密度的算法相比于K-Means受均值影响较小。  

缺点:

窗口大小/半径「r」的选择很重要。

相关知识

python利用c4.5决策树对鸢尾花卉数据集进行分类(iris)
python实践gcForest模型对鸢尾花数据集iris进行分类
TensorFlow 2建立神经网络分类模型——以iris数据为例
用Python识别花卉种类,并自动整理分类!
人工智能考试——k近邻算法对鸢尾花(iris)数据集进行分析
flower花朵识别数据集
Tensorflow鸢尾花分类(数据加载与特征处理)
细粒度分类数据集汇总
Python机器学习基础教程
植物病害识别数据集

网址: Python实现Iris数据集(鸢尾花卉数据集)meanshift聚类 https://www.huajiangbk.com/newsview174204.html

所属分类:花卉
上一篇: 买花要遵循的7个原则
下一篇: 喜欢在家中养护花卉,就选择花期长

推荐分享