关于PCA的两个问题

来源:7-3 求数据的主成分PCA

道尔顿的奶茶

2019-11-26

bobo老师好,学习PCA章节目前遇到了两个问题,希望能得到您的指点:
1.在解释w如果不是单位向量的时候,您说eta就要很小才能顺畅的搜索,导致我们的搜索的效率很低。请问为什么w不是单位向量的时候eta就要很小呢?
图片描述

2.关于绘制第一主成分线的代码,我看到您在另外一个回答中解答了,但我不确定是不是正确理解了您所表达的意思:

plt.plot([x1,x2],[y1,y2])

以上代码是绘制 点(x1,y1)和点(x2,y2)之间的直线

plt.plot([0,w2[0]*30],[0,w2[1]*30], color = 'r')

在这里, 把点(w2[0],w2[1])横纵坐标都乘30相当于把横纵坐标线性的右上移动了,所以线也就长了,这样理解对吗?

写回答

1回答

liuyubobobo

2019-11-27

1

不然的话,有可能 w 的模很大,导致 w 是一个很长的向量。如果要想只搜索一小步,就只能用一个很小的 eta 了。但如果 w 是单位向量,搜索的步长,就是完全靠 eta 控制的。


实际上,对于 w,因为表示的是搜索方向,所以,他的长度大小我们是不需要的。靠 eta 控制搜索步长,也和本身 eta 的语义相符合。否则的话,其实是 eta 和 ||w|| 在共同决定搜索步长。


其实,在之前介绍的批量梯度度下降法中,也应该这么做一下,效果更好:)


2

理解的对。

用一个具体的例子可能看得更清楚。

一个是在绘制(0, 0), (1, 2) 两点间的直线;

另一个是在绘制(0, 0), (30, 60) 两点间的直线。


继续加油!:)

0
4
道尔顿的奶茶
回复
liuyubobobo
谢谢bobo老师
2019-11-27
共4条回复

Python3入门机器学习 经典算法与应用  

Python3+sklearn,兼顾原理、算法底层实现和框架使用。

5839 学习 · 2437 问题

查看课程