主成分分析

From Ufldl

Jump to: navigation, search
(Recovering an Approximation of the Data 数据还原)
(Number of components to retain 选择主成分个数)
Line 510: Line 510:
【一审】:接下来的问题是我们如何选择<math>\textstyle k</math>,即有多少个PCA主成分值得保留?在我们这个简单的二维实验中,保留一个成分是十分自然的选择,但对于高维数据来说,做这个决定就没那么简单:如果<math>\textstyle k</math>过大,我们便没有多少有效压缩,如果是极限情况<math>\textstyle k=n</math>,我们等同于在使用原始数据(只是旋转投射到了一组不同的基);相反地,如果<math>\textstyle k</math>过小,那我们很可能比较差的近似数据。
【一审】:接下来的问题是我们如何选择<math>\textstyle k</math>,即有多少个PCA主成分值得保留?在我们这个简单的二维实验中,保留一个成分是十分自然的选择,但对于高维数据来说,做这个决定就没那么简单:如果<math>\textstyle k</math>过大,我们便没有多少有效压缩,如果是极限情况<math>\textstyle k=n</math>,我们等同于在使用原始数据(只是旋转投射到了一组不同的基);相反地,如果<math>\textstyle k</math>过小,那我们很可能比较差的近似数据。
-
【二审】:
+
【二审】:我们如何选择<math>\textstyle k</math>,即有多少个PCA主成分应该保留?在我们这个简单的二维实验中,保留第一个成分看起来是自然的选择,但对于高维数据来说,做这个决定就没那么简单:如果<math>\textstyle k</math>过大,数据压缩率不高,在极限情况<math>\textstyle k=n</math>时,等于是在使用原始数据(只是旋转投射到了不同的基);相反地,如果<math>\textstyle k</math>过小,那我们可能使用很差的近似数据。
Line 524: Line 524:
【一审】:为了决定<math>\textstyle k</math>值,我们通常会计算不同<math>\textstyle k</math>值可保留的方差百分比,具体来说,如果<math>\textstyle k=n</math>,那么我们得到的是对数据的完美近似,也就是保留了100%的方差,即原始数据的所有变化特性(variation)都被保留下来;如果<math>\textstyle k=0</math>,那么我们是在使用零向量来近似输入数据,因此也就只有0%的方差可以被保留。
【一审】:为了决定<math>\textstyle k</math>值,我们通常会计算不同<math>\textstyle k</math>值可保留的方差百分比,具体来说,如果<math>\textstyle k=n</math>,那么我们得到的是对数据的完美近似,也就是保留了100%的方差,即原始数据的所有变化特性(variation)都被保留下来;如果<math>\textstyle k=0</math>,那么我们是在使用零向量来近似输入数据,因此也就只有0%的方差可以被保留。
-
【二审】:
+
【二审】:在决定<math>\textstyle k</math>值设置的过程中,我们通常会计算不同<math>\textstyle k</math>值可保留的方差百分比,具体来说,如果<math>\textstyle k=n</math>,那么我们得到的是对数据的完美近似,也就是保留了100%的方差,即原始数据的所有变化都被保留下来;相反,如果<math>\textstyle k=0</math>,那么我们是在使用零向量来近似输入数据,因此也就只有0%的方差可以被保留。
Line 536: Line 536:
【一审】:更一般的情况,假设<math>\textstyle \lambda_1, \lambda_2, \ldots, \lambda_n</math>表示<math>\textstyle \Sigma</math>的特征值(按由大到小降序排列),则<math>\textstyle \lambda_j</math>为对应于特征向量<math>\textstyle u_j</math>的特征值,如果我们保留前<math>\textstyle k</math>个主成分,则保留的方差百分比可计算为:
【一审】:更一般的情况,假设<math>\textstyle \lambda_1, \lambda_2, \ldots, \lambda_n</math>表示<math>\textstyle \Sigma</math>的特征值(按由大到小降序排列),则<math>\textstyle \lambda_j</math>为对应于特征向量<math>\textstyle u_j</math>的特征值,如果我们保留前<math>\textstyle k</math>个主成分,则保留的方差百分比可计算为:
-
【二审】:
+
【二审】:更一般的情况,假设<math>\textstyle \lambda_1, \lambda_2, \ldots, \lambda_n</math>表示<math>\textstyle \Sigma</math>的特征值(按由大到小顺序排列),则<math>\textstyle \lambda_j</math>为对应于特征向量<math>\textstyle u_j</math>的特征值,如果我们保留前<math>\textstyle k</math>个成分,则保留的方差百分比可计算为:
:<math>\begin{align}
:<math>\begin{align}
Line 551: Line 551:
【一审】:上面我们的二维实验中,<math>\textstyle \lambda_1 = 7.29</math>,<math>\textstyle \lambda_2 = 0.69</math>,保留前<math>\textstyle k=1</math>个主成分,也等于我们保留了<math>\textstyle 7.29/(7.29+0.69) = 0.913</math>,即91.3%的方差。
【一审】:上面我们的二维实验中,<math>\textstyle \lambda_1 = 7.29</math>,<math>\textstyle \lambda_2 = 0.69</math>,保留前<math>\textstyle k=1</math>个主成分,也等于我们保留了<math>\textstyle 7.29/(7.29+0.69) = 0.913</math>,即91.3%的方差。
-
【二审】:
+
【二审】:上面我们简单的二维实验中,<math>\textstyle \lambda_1 = 7.29</math>,<math>\textstyle \lambda_2 = 0.69</math>,因此,仅保留<math>\textstyle k=1</math>个主成分,等于我们保留了<math>\textstyle 7.29/(7.29+0.69) = 0.913</math>,即91.3%的方差。
Line 570: Line 570:
\sum_{i=1}^m x_{{\rm rot},j}^2</math>,如果<math>\textstyle \lambda_j \approx 0</math>,则说明<math>\textstyle x_{{\rm rot},j}</math>基本接近于0,将其赋值为常数0因而并不会产生较大损失,这也解释了为什么要保留排名靠前的主成分(对应值较大的<math>\textstyle \lambda_j</math>)而不是末尾的那些, 这些排名靠前的主成分<math>\textstyle x_{{\rm rot},j}</math>方差更大,值也较大,如果设为0将引入较大的近似误差。
\sum_{i=1}^m x_{{\rm rot},j}^2</math>,如果<math>\textstyle \lambda_j \approx 0</math>,则说明<math>\textstyle x_{{\rm rot},j}</math>基本接近于0,将其赋值为常数0因而并不会产生较大损失,这也解释了为什么要保留排名靠前的主成分(对应值较大的<math>\textstyle \lambda_j</math>)而不是末尾的那些, 这些排名靠前的主成分<math>\textstyle x_{{\rm rot},j}</math>方差更大,值也较大,如果设为0将引入较大的近似误差。
-
【二审】:
+
【二审】:虽然对保留方差的百分比进行更规范的定义已超出了本教程的范围,但很容易判断<math>\textstyle \lambda_j =
 +
\sum_{i=1}^m x_{{\rm rot},j}^2</math>,,因可以证明,如果<math>\textstyle \lambda_j \approx 0</math>,则说明<math>\textstyle x_{{\rm rot},j}</math>基本接近于0,将其赋值为常数0因而并不会产生较大损失,这也解释了为什么要保留排名靠前的主成分(对应<math>\textstyle \lambda_j</math>值较大的)而不是末尾的那些,这些排名靠前的主成分<math>\textstyle x_{{\rm rot},j}</math>变动更大,因此值也更大,如果设为0将引入较大的近似误差。
Line 596: Line 597:
对于其它的应用,如果不介意引入的误差稍大,那保留方差百分比在90-98%范围内可能都合理。若向他人介绍PCA算法,告诉他们你选择的<math>\textstyle k</math>是为了保留95%的方差相较于直接告诉他们你保留了前120个(或任意某个数字)主成分也更便于他人理解。
对于其它的应用,如果不介意引入的误差稍大,那保留方差百分比在90-98%范围内可能都合理。若向他人介绍PCA算法,告诉他们你选择的<math>\textstyle k</math>是为了保留95%的方差相较于直接告诉他们你保留了前120个(或任意某个数字)主成分也更便于他人理解。
-
【二审】:
+
【二审】:以处理图像数据为例,一个惯常的经验法则是选择<math>\textstyle k</math>以保留99%的方差,换句话说,我们选取满足以下条件的最小<math>\textstyle k</math>值:
 +
:<math>\begin{align}
 +
\frac{\sum_{j=1}^k \lambda_j}{\sum_{j=1}^n \lambda_j} \geq 0.99.
 +
\end{align}</math>
 +
对其它应用,如不介意引入稍大的误差,有时也仅保留90-98%的方差范围。若向他人介绍PCA算法,告诉他们你选择的<math>\textstyle k</math>是为保留95%的方差,比告诉他们你保留了前120个(或任意某个数字)主成分更便于他人理解。
== PCA on Images 对图像数据应用PCA算法 ==
== PCA on Images 对图像数据应用PCA算法 ==

Revision as of 23:40, 11 March 2013

Personal tools