KMeans聚类
提出问题
- 对于给定了标签的训练数据,可以使用KNN来分类,但是对于没有给定标签的训练数据,如何根据其中的Feature,对数据进行分类,使分类下的样本数据看上去比较接近呢?
分析问题
监督学习和无监督学习
- 以往的回归、朴素贝叶斯、SVM等都是有类别标签 𝑦 的,也就是说样例中已经给出了样例的分类。这类机器学习称为监督学习。
- 而聚类的样本中却没有给定 𝑦 ,只有特征 𝑥 ;其目的是找到每个样本 𝑥 潜在的类别 𝑦 ,并将同类别 𝑦 的样本 𝑥 放在一起。
K-Means算法
- 计算过程:
- 估计样本中的总分类个数 𝐾
- 随机选取K个聚类质心点 μ 1 , μ 2 , ⋯ , μ k \mu 1, \mu 2,\cdots,\mu k μ1,μ2,⋯,μk
- 对于每一个样本,分别计算到每个质心点的距离 d 1 , d 2 , ⋯ , d k d_{1}, d_{2}, \cdots, d_{k} d1,d2,⋯,dk,取最近的一个距离,作为该样本暂时所属的分类k。可以选择欧几里得(euclidean)距离作为参考依据。至此,每个样本都归入某个类别下
- 对于每个类别,计算其所辖的每个样本到其质心的距离之和,作为累积距离偏差 W k W_{k} Wk
- 针对每个类别,重新计算质心: μ k = ∑ i =