机器学习学习笔记(十一)—— 无监督学习(Unsupervised Learning)/K均值算法(K-means)

什么是无监督学习:

无监督学习只给出未标记的数据集,通过学习来找出数据的结构关系。

K均值算法(K-means):

K均值算法是现在最为广泛使用的聚类算法。

K均值算法是如何运作的:

先从K=2的例子来看

1.设置2个聚类中心点:

机器学习学习笔记(十一)—— 无监督学习(Unsupervised Learning)/K均值算法(K-means)

2.对每个绿色点,谁更接近红色叉还是蓝色叉进行染色:

机器学习学习笔记(十一)—— 无监督学习(Unsupervised Learning)/K均值算法(K-means)

3.移动聚类中心点,红色叉移动到所有红色点均值中心处,蓝色叉移动到所有蓝色点均值中心处:

机器学习学习笔记(十一)—— 无监督学习(Unsupervised Learning)/K均值算法(K-means)

4.如此迭代,直到红色点蓝色点的数量不再变化,就认为达到收敛了:

机器学习学习笔记(十一)—— 无监督学习(Unsupervised Learning)/K均值算法(K-means)机器学习学习笔记(十一)—— 无监督学习(Unsupervised Learning)/K均值算法(K-means)

K均值算法步骤:

input: K(number of clusters), Training set {x(1), x(2), x(3)..., x(m)}

 注:机器学习学习笔记(十一)—— 无监督学习(Unsupervised Learning)/K均值算法(K-means), 没有机器学习学习笔记(十一)—— 无监督学习(Unsupervised Learning)/K均值算法(K-means).

1.随机初始化K个聚类中心,机器学习学习笔记(十一)—— 无监督学习(Unsupervised Learning)/K均值算法(K-means)

注:有时候会是局部最小值,那么可以多次(50~1000)随机化聚类中心点,多次求解寻找最优解。

当K在2~10左右时,多次随机化会有较大的影响,而如果K很大,则效果不会太明显。

2.for i = 1 to m { 机器学习学习笔记(十一)—— 无监督学习(Unsupervised Learning)/K均值算法(K-means) := index (from 1 to K) of cluster centroid closest to 机器学习学习笔记(十一)—— 无监督学习(Unsupervised Learning)/K均值算法(K-means) },即:

机器学习学习笔记(十一)—— 无监督学习(Unsupervised Learning)/K均值算法(K-means)

机器学习学习笔记(十一)—— 无监督学习(Unsupervised Learning)/K均值算法(K-means)

3.for k = 1 to K { 机器学习学习笔记(十一)—— 无监督学习(Unsupervised Learning)/K均值算法(K-means) := average (mean) of points assigned to cluster k }

注:如果发现没有x属于机器学习学习笔记(十一)—— 无监督学习(Unsupervised Learning)/K均值算法(K-means) ,那么就删除这个聚类中心点,那么结果就变成K-1个中心点,如果非要有K个聚类中心,那就随机找一个点。

4.重复2、3步直到收敛。

K均值算法的优化目标函数/代价函数:

我们定义机器学习学习笔记(十一)—— 无监督学习(Unsupervised Learning)/K均值算法(K-means)=cluster centroid of cluster to witch example 机器学习学习笔记(十一)—— 无监督学习(Unsupervised Learning)/K均值算法(K-means) has been assigned.

那么优化目标函数(Optimization objective)如下:

机器学习学习笔记(十一)—— 无监督学习(Unsupervised Learning)/K均值算法(K-means)

注:在K-means中,这个函数也叫做失真代价函数(distortion cost function).

注:在J关于迭代次数的图像中,应该是单调递减的。

如何确定K值:

目前来说大多数时候,我们还是通过绘制特征图像,人工寻找一个合适的K值。下面也给出几种常见的方法:

1.ELbow method(肘部法则):

多次测试K值,找到肘部点。左图是个很好的尝试,但如果出现右图这样的,就不能给出明确的答案了。

机器学习学习笔记(十一)—— 无监督学习(Unsupervised Learning)/K均值算法(K-means)机器学习学习笔记(十一)—— 无监督学习(Unsupervised Learning)/K均值算法(K-means)

2.根据具体的问题,主观判断K值(e.g. T-shirt的尺寸问题)