欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【含课程pdf & 测验答案】吴恩达-机器学习公开课 学习笔记 Week8-1 Unsupervised Learning

程序员文章站 2024-01-18 22:18:40
...

8-1 Unsupervised Learning 课程内容

此文为Week8 中Unsupervised Learning的部分。

8-1-1 Clustering

Unsupervised Learning: Introduction

在非监督学习中,我们需要将一系列无标签的训练数据输入到一个算法,并且通过算法来为我们找到这个数据的内在结构。

聚类算法:将数据分成几个可以分开的
【含课程pdf & 测验答案】吴恩达-机器学习公开课 学习笔记 Week8-1 Unsupervised Learning

K-Means Algorithm

在聚类问题中,我们有未加标签的数据,我们希望有一个算法能够自动的把这些数据分成有紧密关系的子集或是簇。K均值 (K-means) 算法是现在最为广泛使用的聚类方法。

如图所示,现在我有一些没加标签的数据,而我想将这些数据分成两个簇。

首先,随机选择两个点,这两个点叫做聚类中心 (cluster centroids) 。
【含课程pdf & 测验答案】吴恩达-机器学习公开课 学习笔记 Week8-1 Unsupervised Learning
K均值是一个迭代方法,它要做两件事情:第一个是簇分配,第二个是移动聚类中心

在K均值算法的每次循环中,第一步是要进行簇分配。这就是说,我要遍历所有的样本,然后依据每一个点是更接哪个中心来将每个数据点分配到两个不同的聚类中心中。
【含课程pdf & 测验答案】吴恩达-机器学习公开课 学习笔记 Week8-1 Unsupervised Learning
K均值的另一部分是要移动聚类中心。将两个聚类中心移动到和它一样颜色的那堆点的均值处。
【含课程pdf & 测验答案】吴恩达-机器学习公开课 学习笔记 Week8-1 Unsupervised Learning
然后我们就会进入下一个簇分配。重新检查所有没有标签的样本,依据它离红色中心还是蓝色中心更近一些,将它染成红色或是蓝色。然后我们又要移动聚类中心。
【含课程pdf & 测验答案】吴恩达-机器学习公开课 学习笔记 Week8-1 Unsupervised Learning
一直迭代下去,知道K均值方法收敛——聚类中心是不会变的并且那些点的颜色也不会变。

K均值算法:
【含课程pdf & 测验答案】吴恩达-机器学习公开课 学习笔记 Week8-1 Unsupervised Learning
【含课程pdf & 测验答案】吴恩达-机器学习公开课 学习笔记 Week8-1 Unsupervised Learning
【含课程pdf & 测验答案】吴恩达-机器学习公开课 学习笔记 Week8-1 Unsupervised Learning
K均值的另外一个应对没有很好分开的簇的常见应用:
【含课程pdf & 测验答案】吴恩达-机器学习公开课 学习笔记 Week8-1 Unsupervised Learning

Optimization Objective

K均值的优化目标函数:帮助我们调试学习算法确保K均值算法是在正确运行中;帮助K均值找到更好的簇并且避免局部最优解。

K均值算法要做的事情就是,它将找到参数 c(i) 和 μi,也就是说找到能够最小化J 的 c 和 μ 。这个代价函数 在K均值算法中有时候也叫做失真代价函数(distortion cost function) 。
【含课程pdf & 测验答案】吴恩达-机器学习公开课 学习笔记 Week8-1 Unsupervised Learning
这个算法的第一步就是聚类中心的分配,在这一步中,实际上就是在对代价函数 J 进行关于参数 c(1) c(2) 到 c(m)的最小化,而保持最近的聚类中心 μ1 到 μk 固定不变。
K-均值算法的第二步, 聚类中心的的移动,实际上是选择了能够 最小化 J 的 μ 的值。
【含课程pdf & 测验答案】吴恩达-机器学习公开课 学习笔记 Week8-1 Unsupervised Learning
**K均值算法其核心就是对代价函数 J 的优化过程。**我们可以用这个失真代价函数来调试K均值算法,证明算法是否正在收敛,是否正在正常工作。

Random Initialization

讨论得太多的是如何初始化聚类中心这一步,有几种不同的方法可以用来随机初始化聚类中心。但是,事实证明有一种方法比其他大多数可能考虑到的方法更加被推荐。

K均值方法最终可能会得到不同的结果,尤其是如果K均值方法落在局部最优的时候,取决于聚类簇的初始化方法。

我们能做的是初始化K均值很多次并运行K均值方法很多次,通过多次尝试来保证我们最终能得到 一个足够好的结果,一个 尽可能局部或全局最优的结果。
【含课程pdf & 测验答案】吴恩达-机器学习公开课 学习笔记 Week8-1 Unsupervised Learning
最后你要做的是, 在所有方法中选取能够给我们代价最小的一个。
事实证明,如果你运行K均值方法时所用的聚类数相当小(从 2到10)的话,做多次的随机初始化通常能够保证 你能有一个较好的局部最优解,保证你能找到更好的聚类数据。但是如果K非常大的话,那么有多个随机初始化就不太可能会有太大的影响。

Choosing the Number of Clusters

如何去选择聚类数目K的值?说实话,这个问题上没有一个非常标准的解答或者能自动解决它的方法。目前用来决定聚类数目的最常用的方法仍然是通过看可视化的图,或者看聚类算法的输出结果,或者其他一些东西来手动地决定聚类的数目。

肘部法则 (Elbow Method) :改变K的值也就是聚类类别的总数,选择曲线的肘点。
【含课程pdf & 测验答案】吴恩达-机器学习公开课 学习笔记 Week8-1 Unsupervised Learning
事实上你最后得到的曲线通常看起来是更加模棱两可的。

另外一种方法是看不同的聚类数量能为后续下游的目的提供多好的结果
【含课程pdf & 测验答案】吴恩达-机器学习公开课 学习笔记 Week8-1 Unsupervised Learning
大部分时候聚类数目仍然是通过手动人工输入或我们的洞察力来决定。一种可以尝试的方法是使用肘部法则,但是我不会期望它能表现得好。选择聚类数目的更好方法是去问一下你运行K-均值聚类是为了什么目的,想一想聚类的数目是多少才适合你运行K-均值聚类的后续目的。

测验 Unsupervised Learning

【含课程pdf & 测验答案】吴恩达-机器学习公开课 学习笔记 Week8-1 Unsupervised Learning
【含课程pdf & 测验答案】吴恩达-机器学习公开课 学习笔记 Week8-1 Unsupervised Learning
【含课程pdf & 测验答案】吴恩达-机器学习公开课 学习笔记 Week8-1 Unsupervised Learning
【含课程pdf & 测验答案】吴恩达-机器学习公开课 学习笔记 Week8-1 Unsupervised Learning
【含课程pdf & 测验答案】吴恩达-机器学习公开课 学习笔记 Week8-1 Unsupervised Learning

课程链接

https://www.coursera.org/learn/machine-learning/home/week/8

课件

课件链接

相关标签: 机器学习入门