吴恩达机器学习 笔记八 K-means聚类算法
1. 代价函数
K-means算法是比较容易理解的,它属于无监督学习方法,所以训练样本数据不再含有标签。我们假设有样本数据,我们选择设置个聚类中心,K-means算法的代价函数表达式如下
其中表示距离最近的聚类中心。
2. 具体算法
K-means算法的具体流程如下:
Repeat {
for i = 1 to m
c(i) := index (form 1 to K) of cluster centroid closest to x(i)
for k = 1 to K
μk := average (mean) of points assigned to cluster k
}
其中,第一个循环用于更新每个样本距离最近的聚类中心,第二个循环用于更新聚类中心所处的位置。
3. 随机初始化
通常我们会随机选取个样本数据作为初始聚类中心,但是这样可能得到一个局部最小点。其中一个解决方法是,
多次运行K-均值算法,每一次都重新进行随机初始化,最后再比较多次运行K-均值的结果,选择代价函数最小的结果。
但是,这种方法在,即较小的时候还是可行的,但是如果较大,这么做也可能不会有明显地改善。
4.聚类数的选取
绝大多数是需要根据数据人工选取的。肘图的方法可能有所帮助,比如得到左侧结果的时候,我们就可以选择肘的位置的作为聚类数。但肘图不一定可行,比如得到图中右侧结果的时候。