Scalers点评:机器学习小组是成长会的内部小组,这是成长会机器学习小组第8周学习笔记
往期日志:
ScalersTalk成长会机器学习小组第5周学习笔记(参见3月23日推送)
本周学习情况:
本周(20160327-20160403)学习了非监督学习以及数据降维方法。本周的复盘主持人是Aline[S180]
本周主要内容:
本周针对Coursera上Andrew Ng的Machine Learning第八周课程进行复盘。主要内容包括如何用K均值算法实现非监督学习中的聚类问题,以及如何用主成分分析(PCA)实现数据降维。
本周主要知识点:
一. Unsupervised Learning (无监督学习)
监督学习与无监督学习的区别无监督学习的训练集没有y值,只有表示特征的x值。无监督学习用于分析数据的结构,而聚类(clustering)是无监督学习的一项重要应用。
K均值算法
原理:若将一组数据分为K类,则随机选择K个聚类中心(cluster centroids),将每个x值分配给离它最近的聚类中心,再把每个聚类中心移动到归属于它的所有x的平均值处。重复移动和分配的过程,直到收敛。
P.S. 如果没有点分配给某聚类中心,则移除该聚类中心
实现:
K值确定方法:观察+手动选择
肘部原则:代价函数在合适的K值处出现明显拐点。但拐点不明显时不适用。
根据实际情况选择K值。
聚类中心的位置:随机初始化:使聚类中心随机等于训练集的数据值
重复移动与分配
优化
二. Dimensionality Reduction (数据降维)
目标
数据压缩:节约存储空间,提高计算速度
可视化(2D,3D)
方法:主成分分析(Principal Component Analysis)
原理:
使得数据在这组向量上的投影误差最小。
PCA不是线性回归:
线性回归最小化平方误差,即h(x)到y之间的距离(坐标系中垂直方向),线性回归中的直线用于预测y
PCA最小化点到直线距离(方向与直线垂直),PCA中的直线用于尽可能代表x
算法:
数据预处理: feature scaling/mean normalization
计算协方差矩阵
用奇异值分解计算协方差矩阵的特征向量(eigenvectors)
[U,S,V] = svd(Sigma);
如何选择k值(主成分数量)
[U,S,V] = svd(Sigma)
表明该k值下保留了99%的方差。
压缩后的重建
PCA应用监督学习中的加速:用降维后的数据预测y
注意事项:
PCA不用于避免过拟合,因为在舍弃部分x精度时并没有考虑其对y的影响。防止过拟合要用正则化方法
不要一开始就使用PCA,先用原始数据进行,只有在需要节省空间,提升速度或数据可视化时才需要考虑PCA
ScalersTalk ID:scalerstalk本微信公众号作者Scalers,游走在口译世界的IT从业者。微信公众号ScalersTalk,网站ScalersTalk.com,口译100小时训练计划群C 456036104成长会是由Scalers发起的面向成长、实践行动,且凝聚了来自全球各地各行各业从业者的社群。有意入会者请和Scalers直接联系,我和其他会员会和你直接交流关于成长行动等各方面的经验教训。2016年成长会持续招募中,参见做能说会写的持续行动者:ScalersTalk成长会2016年会员计划介绍(2016.3更新)