TensorFlow 聚类相关实现学习
注:聚类这一相关的无监督学习涉及到了很多的算法,及其原理,如:Kmeans、Kmeans++、层次聚类、基于密度的聚类、以及谱聚类等等。这里主要通过使用 TensorFlow 实现 Kmeans 以及 Knn 算法(这里采用半监督学习方法实现,以达到学习 TensorFlow API 的目的。其他具体算法的讲解,请参看别处。
一、从数据中学习 === > 无监督学习
1.1 概念简介
- 无监督学习可以从给定的数据集中找到感兴趣的模式(pattern),它一般不给出标签或者模式的信息,需要自动探索信息是怎么组成的,并识别数据中的不同结构。
- 聚类是指针对没有标签(unlabeled)的数据,寻找具有相同特征的数据,并将其分配到形同的组或者簇。其中,为了将不同的成员分配到形同的簇中,于是对于表示不同元素之间的距离(distance)就显的比较重要了,事实也是如此,有针对各种不同情况的距离的定义。
1.2 算法实现流程
1.2.1 K 均值算法
- 初始化,随机以 K 个元素作为起始质心。为了简化,可以采用元素列表的前 K 个元素作为质心。你也可以采用你自己风格的初始化
- 计算每个样本跟质心的距离,并将样本分配给距离它最近的质心所属的簇,重新计算分配之后的质心。相当于质心不断移动迭代。