目录
一、Scipy聚类kmeans概述
(一)基本概念
聚类是将数据集分为由相似数据点组成的组的过程,即将数据分割成指定数量的几个类,以便于揭示数据的内在性质及规律。其中,聚类分为中央聚类和层次结构聚类两种类型。
k均值聚类算法(k-means clustering algorithm)是一种迭代求解的聚类分析算法,其步骤是随机选取K个对象作为初始的聚类中心,然后计算每个对象与各个种子聚类中心之间的距离,将距离相近的元素划分为一类,进而实现分组。
Scipy提供了用于K均值聚类,从k均值模型生成码本以及通过将它们与码本中的质心进行比较来量化向量的功能。
(二)聚类代码示例
选取一组数据,对其进行聚类分析。
具体代码如下 :
import numpy as np
from scipy.cluster.vq import vq, kmeans, whiten
import matplotlib.pyplot as plt
#导入第三方库
fe = np.array([[1.9,2.0],
[1.7,2.5],
[1.6,3.1],
[0.1,0.1],
[0.8,0.3],
[0.4,0.3],
[0.22,0.1],
[0.4, 0.3],
[0.4,0.5],
[1.8,1.9]])
#定义待聚类变量集
book = np.array((fe[0], fe[1]))
print(type(book))
print("book: \n",book)
codebook, distortion = kmeans(fe, book)
print("codebook:", codebook)
print("distortion: ", distortion)
plt.scatter(fe[:,0], fe[:,1], c='g')
plt.scatter(codebook[:, 0], codebook[:, 1], c='r')
plt.show()
#将聚类结果显示在坐标系内
结果为:
其中,红色为聚类中心。
二、聚类色彩提取实例
(一)PIL提取色彩
本代码利用PIL对图片进行色彩提取,并将色彩出现频率进行排序,输出特定序列的颜色。<