Kmeans图像分割及聚类
一、目标
利用K-means算法实现图像分割,尝试使用不同的K值,观察对结果的影响。
利用K-means算法实现对UCI数据集中数值型数据Iris的聚类,将结果可视化表示。
二、算法思想
K-means
首先分别设定计算欧氏距离和随机取初始聚类中心的函数,然后计算点与聚类中心的距离,如小于最短距离则更新聚类中心的点的类别,进行迭代。最后得出聚类中心和样本分类情况。图像分割
利用 matplotlib 导入数据后,将图像转化为矩阵,代入 kmeans进行运算。手动改变 k 值,分别取 2、3、4、5,分别导出图像。Iris 处理
首先用 sklearn 模块导入 iris 数据,再用 PCA 方法将数据从四维降到二维,将降维后数据代入 kmeans 进行聚类,得到三个类别,用 matplotlib 和 pil 辅助绘图。
三、核心代码
1、图像分割
1 | import matplotlib.pyplot as plt |
2、Iris
1 | import matplotlib.pyplot as plt |
四、结果图像
图像分割原图
图像分割 k=2
图像分割 k=3
图像分割 k=4
图像分割 k=5
Iris聚类结果