Unsupervised Learning

四个月了,终于写到无监督学习了。。。。。


相关机器学习概念:
K均值聚类(K-means clustering)


1. Unsupervised Learning

监督学习与无监督学习的差异:
我们之前接触的线性回归、逻辑回归、神经网络和SVM都是监督学习,它们的输入数据集有标签{(x(1),y(1)),(x(2),y(2)),...,(x(m),y(m))}\{(x^{(1)},y^{(1)}),(x^{(2)},y^{(2)}),...,(x^{(m)},y^{(m)})\},在程序运行前就可对输出结果有大致的掌握。
无监督学习的输入数据集无标签,只有数据集属性{x(1),x(2),...,x(m)}\{x^{(1)},x^{(2)},...,x^{(m)}\},且输出结果不可预测。
\quad

无监督学习的例子:
-Market segmentation
-Social network analysis
-Organize computer clusters
-Astronomical data analysis
\quad

2. Clustering

2.1 K-means Algorithm

K均值聚类算法首先需要初始化K个聚类中心,然后进行迭代计算,每次迭代完成两个任务:
1、簇分配 cluster assignment
遍历样本,将每一个样本点分配至最近的聚类中心
2、移动聚类中心 move centroid
根据簇分类的结果,计算每一类的均值并将其作为新的聚类中心
\quad

用伪代码表述为:
Randomly initialize K cluster centroids μ1,μ2,...,μKRn\mu_1,\mu_2,...,\mu_K∈\R^n
Repeat{
\qquad for i = 1 to m
c(i):=\qquad\qquad c^{(i)}:= index (from 1 to K) of cluster centroid closest to x(i)x^{(i)}
\qquad for k = 1 to K
μK:=\qquad\qquad \mu_K:= average (mean) of points assigned to cluster K
\qquad }

\quad
NOTE: 在聚类问题中,x(i)Rnx^{(i)}∈\R^n,无需加入x0=1x_0=1
\quad

2.2 Optimization Objective

K均值算法中的代价函数有时也被称作失真函数(distortion cost function):
【Machine Learning, Coursera】机器学习Week8 无监督学习

2.3 Random Initialization

随机选取K(K<m)个训练样本,作为随机初始点。
K均值聚类法存在局部最优的可能性。为了尽可能地得到全局最优的结果,我们可以循环执行K均值方法,如随机初始化100次,选择目标函数值最小的那一次作为最终聚类结果:
【Machine Learning, Coursera】机器学习Week8 无监督学习
\quad

2.4 Choosing the Number of Clusters

聚类数目的选择很大程度上依赖于主观判断,这也是无监督学习的一个特点。一种可能的判断方法是肘部法则(Elbow method),计算不同聚类数目下的代价函数并作图,选择畸变值下降速度突变的那一点作为聚类数。不过在实践中,这种方法有时表现并不好,比如下图右侧的平滑曲线,它并没有明显的“肘部”。
【Machine Learning, Coursera】机器学习Week8 无监督学习

根据聚类后续的目的来选择聚类数目是更好的办法。比如选择T恤的尺码,我们可能会选择3类S,M,L,也可能选择5类XS,S,M,L,XL,这需要根据实际的供求关系来确定。
【Machine Learning, Coursera】机器学习Week8 无监督学习

相关文章: