非监督学习之Kmeans算法

Keyword:

Clustering, Dimensionality Reduction

  1. Example:
    Clustering Movie: 两人喜好的电影被聚类分为Class A和Class B,这些数据没有label,但是通过聚类可以看出这两类数据之间的区别。
    非监督学习之Kmeans算法
  2. K-means Algorithm:
    Step1: Assign
    随机的画2个聚类中心,分配距离每个聚类中心近的点
    非监督学习之Kmeans算法
    Step2: Optimize
    移动clustering center使得center到其他点的距离的平方quadratic最小得到下图
    非监督学习之Kmeans算法
    现在分类情况如下,对每个聚类中心分配的点发生改变
    非监督学习之Kmeans算法
    继续迭代iteration之后,聚类中心将移动聚类点群的中间
    非监督学习之Kmeans算法
  3. K-means的算法sklearn实现
    sklearn.cluster.KMeans

from sklearn.cluster import KMeans
import numpy as np
X = np.array([[1, 2], [1, 4], [1, 0],
… [10, 2], [10, 4], [10, 0]])

kmeans = KMeans(n_clusters=2, random_state=0).fit(X)
kmeans.labels_
array([1, 1, 1, 0, 0, 0], dtype=int32)

kmeans.predict([[0, 0], [12, 3]])
array([1, 0], dtype=int32)

kmeans.cluster_centers_
array([[10., 2.],
[ 1., 2.]])

Parameter:
n_clusters: cluster的数量,需根据实际情况自行设置
max_iter: 迭代次数 default=300
n_init: 不同初始化的数量, 初始化时的状态可能不同,cluster位置不同导致最终结果不同,所以ensemble了不同初始化,即使一些最终聚类结果不同但是综合来看结果是正确的。

限制: k-means算法相当于hill climb算法,它的结果很大程度上依赖于初始条件,当初始条件不同,可能导致不同的结果。例如下方的图示,三个cluster points最终的分类,形成local minimum即非最优解,局部的小聚类形成,稳定不会再移动。cluster越多,local minimun则可能越多。所以要求该算法要多进行几次。

非监督学习之Kmeans算法

相关文章:

  • 2021-10-08
  • 2022-12-23
  • 2021-09-09
  • 2022-12-23
  • 2021-07-09
  • 2021-07-31
  • 2021-07-14
猜你喜欢
  • 2021-08-31
  • 2021-05-03
  • 2022-12-23
  • 2022-12-23
  • 2021-06-07
  • 2021-07-20
相关资源
相似解决方案