关于梯度下降法中的X_b的理解

来源:6-3 线性回归中的梯度下降法

gzidzcs

2019-04-23

老师,我看来看去都无法理解这个
X_b = np.hstack([np.ones((len(x), 1)), x.reshape(-1,1)])
是怎么的出来的,请老师解释一下关于这个x_b,谢谢老师

写回答

1回答

liuyubobobo

2019-04-23

回忆一下,我们在课程中推导的梯度,是这样的:

//img.mukewang.com/szimg/5cbe0e700001ed6419841118.jpg


注意,这个梯度是一个长度为n+1的向量。因为除了每一个维度,要有一个θ参数以外,还有一个不和任何维度匹配的θ,我们叫θ(0)。

//img.mukewang.com/szimg/5cbe0f1c00018ae419141066.jpg


所以,在我们后续推导这个梯度计算的向量化公式的时候,为了统一计算,我们在这一项后面,添加了一个X(0),这样,这个响亮的每一项,看起来就一样了:)

//img.mukewang.com/szimg/5cbe0fb10001535d19021090.jpg


当然,我们还要保证这个等号是成立的。所以,这个X0,其实就是1!:)


所以,我们后续推导:

//img.mukewang.com/szimg/5cbe1069000103dd20021090.jpg


这个Xb,在这里,就有一列1。


这就是我们管他叫Xb的原因,而不是X,他和X不一样,多了一列1。我们的代码,其实就是在X前面,添加了一列1:)


以此为基础,再仔细看一看课程前面的推导,理解一下?:)


继续加油!:)

6
0

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

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

5968 学习 · 2456 问题

查看课程