1

2

没有完全在一条直线上是因为round-off error

3

4

5

6

7

8

9

10

Ng说PCA是找一条线(就是找一个维度),使原始点到这条线的的距离最短,他把它叫做Projection Error。按PCA一般的理解是说要找到一条线,使在这条线的方差最大(每一个点投影到线上,都会又一个对应的点,也就是有一个在新维度上的取值,该维度就是一个随机变量,要使这个随机变量的方差最大)。两者是同一个意思。因为假设原来的点为$x$,投影到线上是$x'$,投影的距离为$d$,x'到$0$点的距离(就是$z$在新坐标轴上的取值)为$z$,$x$到$0$点的距离为$s$,那么有$ s ^ 2 = d ^ 2 + z ^ 2 $。所以,方差最大,就是要让Projection Error最小。前面说的是降维到1维的场景。如果降维到k维,那对应的就是在这个k维向量的协方差矩阵的

11

12

不同点:

  1. 如图中画的,算的不是同一个距离值;
  2. 线性回归是有一个y值,而pca中每一个维度都是等价的,没有一个特殊的维度作为y
13

14

15

  • mean normalization 就是使随机变量均值为0
  • feature scaling 就是把值缩放进行缩放。
  • 图中的$s_j$可以是standard deviation,也可以是maximum value。
16

17

  • 在mean normalization之后的协方差矩阵,可以用这种方式计算。标准的公式中的分母应该是$m-1$。可见https://en.wikipedia.org/wiki/Covariance,calculating sample covariance。

  • 这里用SVD,也是为了求特征值和特征向量,Ng说用eig()函数其实也可以,但是SVD更numerically stable。但在这里,两者会给出相同的结果(也就是svd没有前面说的stable优势),因为协方差矩阵一定是对称半正定矩阵(positive semi-definite)。

18

19

m个样本,每个是n维,那么$x^{(i)}$是n * 1的向量,$X$是m * n的矩阵。

20

21

22

pca中保留下来的k维,就是principal components

23

24

25

还是对应前面那张黑板的图。

26

27

TODO: pca都是拿整个矩阵在做转换,我随便拿一个样本,能单独转换吗?可以去看一下scikit-learn。

28

29

因为pca是无监督的,没有用到y的信息。

30


In [ ]: