非监督学习K-means算法

简介

@维基百科

K-平均算法(英文:k-means clustering)源于信号处理中的一种向量量化方法,现在则更多地作为一种聚类分析方法流行于数据挖掘领域。k-平均聚类的目的是:把{\displaystyle n}n个点(可以是样本的一次观察或一个实例)划分到k个聚类中,使得每个点都属于离他最近的均值(此即聚类中心)对应的聚类,以之作为聚类的标准。这个问题将归结为一个把数据空间划分为Voronoi cells的问题。

这个问题在计算上是NP困难的,不过存在高效的启发式算法。一般情况下,都使用效率比较高的启发式算法,它们能够快速收敛于一个局部最优解。这些算法通常类似于通过迭代优化方法处理高斯混合分布的最大期望算法(EM算法)。而且,它们都使用聚类中心来为数据建模;然而k-平均聚类倾向于在可比较的空间范围内寻找聚类,期望-最大化技术却允许聚类有不同的形状。

此外K-means算法(k-平均聚类)与KNN算法(K-近邻算法)没有任何关系。
本文内容皆源自Andrew Ng

K-means算法思想

输入:
1.训练集,即需要进行聚类的数据,只有X没有标记Y。
2.K即聚类族的个数。

根据K随机初始化K个聚类中心。

族分配。

移动聚类中心。

例如下图所示:
1
2

优化函数

优化函数

初始聚类中心的方式

随机选择K个输入点的坐标作为聚类中心,然后执行150-1000次循环,计算其代价函数,选择其最小的结果。例如

for _ in range(100):
    ...

选择K的大小

肘部法则

肘部法则

根据实际应用选择

posted on 2020-02-05 15:15  _Eureka  阅读(280)  评论(0)    收藏  举报

导航