机器学习笔记(参考吴恩达机器学习视频笔记)12_聚类

12 聚类

监督学习中,训练集带有标签,目标是找到能够区分正负样本的决策边界,需要根据标签拟合一个假设函数。非监督学习中,需要将无标签的训练数据输入到一个算法,此算法可以找到这些数据的内在结构。一个能够根据数据的内在结构,将它们分成几个不同的点集(或簇)的算法,就被称为聚类算法。聚类算法是一个非监督学习的算法。

12.1 K-Means算法

K-means是以距离作为评价标准的一种聚类算法,即距离越近,相似度就越高。使用K-means可以完成用户行为的聚类分析,实现步骤如下:

说明:输入为聚类个数K,输出为K个最终聚类中心和划分完成的簇。

Step1:输入K和包含N个行为向量的数据集。

Step2:从N个行为向量中选取K个作为初始的聚类中心。

Step3:计算其余N-K个对象与各个聚类中心之间的距离。

Step4:将其余对象分配给距离最近的聚类中心,计算完毕后形成了以聚类中心为中心的簇,再计算每一个聚类的聚类中心。

Step5:若本轮聚类中心与上一轮聚类中心的欧式距离小于给定的阈值则结束;否则继续Step3、4、5。

12.2 优化目标

K-Means最小化问题是要最小化所有的数据点与其所关联的聚类中心点之间的距离之和,代价函数表示为:

其中,代表与最近的聚类中心。优化目标便是找出使得代价函数最小的

12.3 随机初始化

运行K-Means算法的之前,首先要随机初始化所有的聚类中心点,方法如下:

1)选择,即聚类中心点的个数要小于所有训练集实例的数量。

2)随机选择K个训练实例,然后令K个聚类中心分别与这K个训练实例相等。

K-Means可能会停留在一个局部最小处,这取决于初始化的情况。为了解决这个问题,通常需要多次运行K-Means算法,每一次都重新进行随机初始化,最后再比较多次运行K-Means的结果,选择代价函数最小的结果。这种方法在K较小的时候(2~10)还是可行的,但是如果K较大,这么做也可能不会有明显地改善。

12.4 选择聚类数

没有所谓最好的选择聚类数的方法,通常是需要根据不同的问题,人工进行选择的。选择的时候思考运用K-Means算法聚类的动机是什么,然后选择能最好服务于该目标的聚类数。

有一种选择聚类数目的方法,叫做“肘部法则”。如下图:

机器学习笔记(参考吴恩达机器学习视频笔记)12_聚类_第1张图片

你可能感兴趣的:(机器学习,聚类,K-means)