定义:
k-平均算法(英文:k-means clustering)源于信号处理中的一种向量量化方法,现在则更多地作为一种聚类分析方法流行于数据挖掘领域。k-平均聚类的目的是:把 n个点(可以是样本的一次观察或一个实例)划分到k个聚类中,使得每个点都属于离他最近的均值(此即聚类中心)对应的聚类,以之作为聚类的标准。这个问题将归结为一个把数据空间划分为Voronoi cells的问题。
---------摘自维基百科
算法步骤:
- 初始化常数K,随机选取质心
- 计算样本与每个质心之间的相似度,将样本归类到最相似的类中
- 重新计算质心
- 重复23,直到质心不变
- 输出最终的质心以及每个类
算法的数学解释:
图像分割实战:
代码:
from sklearn.cluster import KMeans
import PIL.Image as image
from PIL import ImageFilter
import numpy as np
img = image.open('C:/Users/Ni