
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
2.4 无监督学习案例:K平均聚类算法实现
无监督学习对图像进行分类时,可以采用K-Means算法。该算法实现简单,运行速度快,要求事先知道数据所具有的类别数。K-Means时数据最初的随机分类类别会对最终结果产生很大的影响。数据较少时,K-Means算法分类可能会失败。
1. 项目描述
将色彩量化后,图像的直方图作为识别时的特征量。
2. 相关知识
(1)为每个数据随机分配类。
(2)计算每个类的重心。
(3)计算每个数据与重心之间的距离,将该数据分配到与重心距离最近的那个类。
(4)重复步骤2和步骤3,直到没有数据的类别发生改变为止。
3. 项目设计
(1)对图像进行减色化处理后,计算直方图,将其用作特征量。
(2)对每张图随机分配类别0或类别1(已知类别数为2)。
(3)分别计算类别0和类别1特征量的质心(质心存储在gs=np.zeros((Class,12),dtype=np.float32)中),gs具有如下所示的形状和内容:

(4)对于每个图像,计算特征量与质心之间的距离(在此取欧式距离),并将图像类别指定为距离最近的质心所代表的类别。
(5)重复步骤3和步骤4,直到没有数据的类别发生改变为止。
4. 项目过程
实现代码为:



5. 项目测试
