机器学习之降维

#Dimensionality Reduction(降维)【无监督学习】
 

#Motivation 1:Data compression(目标1:数据压缩)

  • 如果我们能把所有的原始样本投影这条绿色线上,则只需要一个数就能指定点在直线上的位置;
  • 这会让学习算法运行得更快。

  • 投影在一个平面上;

 

#Motivation 2:Data Visualization(目标2:可视化)

 

#Principal Component Analysis problem formulation(主要成分分析问题规划)

对于降维问题来说,目前最流行最常用的算法是principal components analysis(主成分分析方法PCA)算法:

  • PCA:找一个低维平面,然后将数据投影在上面,使这些蓝色小线段即长度平方,也叫projection error(投影误差)最小;
  • 在应用PCA之前,常规的做法是先进行mean normalization(均值归一化)和feature scaling(特征规范化)。

  • 通常,我们会有N维数据,并且我们想将其降到K维,则不只是找单个向量对数据进行投影,而是想找K个方向来对数据进行投影来最小化投影误差。

  • PCA不是线性回归

1、计算covariance matrix(协方差)∑,计算矩阵∑的eigenvector(特征向量):

  • svd代表singular value decomposition(奇异值分解),这是更加高级的分解算法。
  • 有一个octave函数叫eig被用来计算相同的事,eig和svd函数会有相同的结果,但是svd数值上更稳定。
  • 具有相同的结果是因为covariance matrix(协方差矩阵)总是满足一个数学上的性质叫symmetric positive definite(正定矩阵)。

2、提取前K个向量,给了我们K个方向即我们想投影数据的方向:

  • 图中的x可以是训练集、交叉验证集或者测试集中的例子

 

PCA总结:

进行归一均值化和任选feature scaling(特征缩放)之后,应用svd程序得到U、S、D,然后先得到要降维度矩阵U的前K列,最终定义了我们如何从一个特征向量x到降维的表示z。

 

#Choosing the number of principal components(主成分数量选择)

  • PCA想要做的是最小化average squared projection error(平均投影误差平方);
  • 99%~90%都是可以的;

  • 右边的方法更方便,因为不需要一遍一遍执行svd。

总结:

 

#Reconstruction from compressed representation(压缩重现)

也叫reconstruction of the original data(原始数据的重构):从低维表示z回到未压缩的数据表示,得到一个和原来数据x的近似。

 

#Advice for applying PCA(应用PCA的建议)

1、检查已经被标记的训练集并抽取输入,即先把y临时放一边,得到一个无标签的训练集。

2、使用PCA,得到元素数据的低维表示,得到一个新的训练集。

3、把低维的训练集输入一个学习算法,可能是神经网络或者是逻辑回归算法,然后学习假设函数H尝试去进行预测。

4、如果有一个新的测试样本x,将测试样本通过PCA的映射关系得到相应z,然后代入到假设函数中进行预测。

注意:PCA做的是定义一个从x到z的映射,这个映射只能通过在训练集上运行PCA来定义。我们应该只在训练集上拟合这些参数如U_reduced,而不是在交叉验证集或者在测试集上。然后找到U_reduced或者找到参数来进行特征缩放或均值归一化以及划分特征的合适的缩放规模。在训练集上找到所有这些参数之后,可以把这个映射用在交叉验证集或者测试集的其他样本中。

 

#总结

PCA的应用:

1、它能进行压缩

2、能加速学习算法

  • 1和2:为了选择k,经常会计算出percentage of variance retained(方差保留的百分比)。通常这种学习算法加速应用需要保留99%的方差。

3、可视化应用

 

有一种常见的对PCA算法的误用:尝试使用PCA去防止过拟合

  • 最好是使用正则化而不是PCA来减少数据维度,因为PCA会舍掉一些信息(可能很重要),不关心y值是什么。

 

PCA算法的另一个误用:

建议:在实现PCA之前,直接做想做的事情,首先考虑使用最原始的数据x,只有在这么做不能达到目的的情况下才考虑使用PCA和z。

 


PS.内容为学习吴恩达老师机器学习的笔记【https://study.163.com/course/introduction/1004570029.htm

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值