本栏目(Machine learning)包括单参数的线性回归、多参数的线性回归、Octave Tutorial、Logistic Regression、Regularization、神经网络、机器学习系统设计、SVM(Support Vector Machines 支持向量机)、聚类、降维、异常检测、大规模机器学习等章节。内容大多来自Standford公开课machine learning中Andrew老师的讲解和其他书籍的借鉴。(https://class.coursera.org/ml/class/index)
PS: 盼望已久的十一长假就要到了~祝大家国庆快乐,玩的开心!(*^__^*)
第十讲. 降维——Dimensionality Reduction
===============================
(一)、为什么要降维?
(二)、主成分分析Principal Component Analysis (PCA)
(三)、PCA 算法流程
(四)、从压缩数据中恢复原数据
(五)、怎样决定降维个数/主成分个数
(六)、应用PCA进行降维的建议
本章主要讲述应用PCA算法进行数据降维的原理
=====================================
(一)、为什么要降维?
- About data:
- About Visualization:
=====================================
(二)、About Principal Component Analysis (PCA)
- PCA 目的:降维——find a low dimension surface on which to project data ~
distance总和最小,就是PCA的任务。
- PCA 与 Linear Regression 的区别:
Regression是给出{x1,x2,...,xn},希望根据x去预测y,所以进行回归
=====================================
(三)、PCA 算法流程
1. 计算各个feature的平均值,计μj ;(Xj(i)表示第i个样本的第j维特征的value)
μj = Σm Xj(i)/m
(Xj(i)-μj)/sj
value decomposition),在matlab中有函数[U,S,V] = svd(A) 返回一个与A同大小的对角矩阵S(由Σ的特征值组成),两个酉矩阵U和V,且满足= U*S*V'。若A为m×n阵,则U为m×m阵,V为n×n阵。奇异值在S的对角线上,非负且按降序排列。
该矩阵大小为n×k
=====================================
(四)、从压缩数据中恢复原数据
我们已经知道,可以根据z(i) = Ureduce'× x(i) 将n维向量x降维到k维向量z,那么有时我们需要恢复n维向量,怎么做呢?
= U-1, 所以
= (U-1)-1×z = Uz
=====================================
(五)、怎样决定降维个数/主成分个数
所以,可以用下式进行k的合理选取:
=====================================
(六)、应用PCA进行降维的建议
1. PCA可以降维,那让我们联想到了之前说过拟合问题是由维度过高或者参数过多造成的,那么可不可以用PCA解决overfitting的问题呢?
Ans:NO!应用PCA提取主成分可能会解决一些overfitting的问题,但是呢,不建议用这种方法解决overfitting问题,还是建议用第三章中讲过的加入regularization项(也称为ridge
regression)来解决。
2. PCA中主成分分析应用到那部分数据呢?
Ans:Only Training Data!可以用Cross-Validation data 和 test Data进行检验,但是选择主分量的时候只应用training data.
3. 不要盲目PCA
Notice:only 当你在原数据上跑到了一个比较好的结果,又嫌它太慢的时候才采取PCA进行降维,不然降了半天白降了~
关于Machine Learning更多的学习资料将继续更新,敬请关注本博客和新浪微博Sophia_qing。