非监督学习的训练样本没有已知标签,常需要通过非监督学习去发现样本间的结构关系。
非监督学习这块内容由两部分组成:K邻近法和主成分分析。
K-means
聚类是最常见的非监督学习应用。K-means是最常见的聚类学习算法。
K-means算法的输入包括:训练集样本,和需要划分的类别K。
算法过程
随机初始设置类别标签,从训练集样本里随机挑选K个样本,分别代表将要划分的K个不同类别;
重复以下两步,直到结果不再变化:
- 归类,对所有训练集的每一个样本,分别依次寻找与它们距离最近的类别标签,并将它们划分到此类别;
- 重新定义类别标签的位置,将所有同类别样本的属性求平均值,得到新的该类别标签的位置。
损失函数
K-means的损失函数就是所有样本到所属类别标签的距离的总和。K-means的运算过程就已经是在不断降低损失函数了。
对于K-means算法,因初始类别标签是随机设置的,而这种随机设置并不能保证每次都得到理想的结果。
针对这种现象,我们可以重复多次K-means过程,并计算每次的得到的损失值,选择损失值最小的结果,作为最终的分类结果。
怎样选择分类的数量?
有些情况,可以将分类数量和其所对应的损失函数作图,观察图中是否有明显的拐点,如果有明显的拐点,则选择该拐点所对应的类别数;
但有时候从图上观察不到明显的拐点,因此这种方法并不总是有效。更多的时候,应根据实际需求进行划分。
主成分分析
主成分分析(PCA)是最常用的降维分析方法。
PCA可以将高维数据降低至低维数据,并尽量减少信息损失。对数据进行降维后,一方面可以压缩数据,使数据量变小,便于储存;另一方面,可更便于数据可视化。
PCA的思路
从2维到1维:寻找一条直线,当将所有样本投影至该直线时,总投影距离最小。
从n维到k维:寻找k维空间,当将所有样本投影至该k维空间时,总投影距离最小。
PCA不是线性回归
PCA和线性回归有点像,但本质不同。从2维到1维看,PCA要求所有样本到直线的投影距离之和最小;而线性回归要求所有样本到直线的纵坐标值之和最小。
PCA算法
在应用PCA之前,常需要提前对训练数据进行标准化,即减均值再除以方差。
算法实现过程:
需求:将数据从n维将至k维;
首先计算协方差矩阵Sigma;
然后计算协方差矩阵的特征向量(eigenvectors),得到k维特征向量
Ureduce=U(:,1:k)
;
获得每个样本在k维空间的投影结果,
z=Ureduce′∗x
;
想要将降维后的结果,恢复到未降维之前的情况,可以利用:
Xapprox=Ureduce∗z
选择多少个主成分?
一般要求在选择k个主成分后,使该k个主成分能对原始数据任然保留足够的代表性。通常计算原始数据X和降维后的Xapprox的距离之和与原始数据的离散程度的比值。
通常希望选择k个主成分后,依然能够解释原始数据90%以上的方差。
一般不建议通过对数据的降维来实现避免过拟合,面对过拟合问题,首选策略还是增加正则化项;
在应用PCA前,建议先用原始数据进行尝试,不建议从一开始就加入PCA。
注:如无特殊说明,以上所有图片均截选自吴恩达在Coursera开设的机器学习课程的课件ppt.