西瓜书——一元线性回归(二)

这篇博客将补充解释在一元线性回归问题中如何向量化的问题。

为何要向量化

在上篇博客中,我们求解了 w w w b b b的表达式,我们会发现, b b b的表达式尚属于简单的形式,但是 w w w的表达式却含有太多的求和符号了,当我们用Python代码去实现算法的时候就需要使用多个 f o r for for循环去遍历,这将大大提高算法的复杂度,降低算法的性能。但是Python有个numpy的库可以用来做矩阵运算,库里的算法也进行了调优,所以我们就尽可能使用向量的形式去表示 w w w,两个向量相乘就是一个求和。

向量化的准备步骤

w = ∑ i = 1 m y i ( x i − x ~ ) ∑ i = 1 m x i 2 − 1 m ( ∑ i = 1 m x i ) 2 w=\frac{\sum_{i=1}^{m}y_i(x_i-\widetilde{x})}{\sum_{i=1}^{m}x_i^2- \frac{1}{m}(\sum_{i=1}^{m}x_i)^2} w=i=1mxi2m1(i=1mxi)2i=1myi(xix )
恒等变形,
w = ∑ i = 1 m y i ( x i − x ~ ) ∑ i = 1 m x i 2 − ∑ i = 1 m x ~ x i w=\frac{\sum_{i=1}^{m}y_i(x_i-\widetilde{x})}{\sum_{i=1}^{m}x_i^2- \sum_{i=1}^{m} \widetilde{x}x_i} w=i=1mxi2i=1mx xii=1myi(xix )
w = ∑ i = 1 m y i ( x i − x ~ ) ∑ i = 1 m ( x i 2 − x ~ x i ) w=\frac{\sum_{i=1}^{m}y_i(x_i-\widetilde{x})}{\sum_{i=1}^{m}(x_i^2- \widetilde{x}x_i)} w=i=1m(xi2x xi)i=1myi(xix )
w = ∑ i = 1 m ( y i x i − x ~ y i ) ∑ i = 1 m ( x i 2 − x ~ x i ) w=\frac{\sum_{i=1}^{m}(y_ix_i-\widetilde{x}y_i)}{\sum_{i=1}^{m}(x_i^2- \widetilde{x}x_i)} w=i=1m(xi2x xi)i=1m(yixix yi)
此时 w w w的分子分母都只有一个求和符号了,也就是说,分子分母都可以变成两个向量相乘的形式了,但是用哪两个向量来表示呢?

向量化

通过观察分子分母,我们可以对里面的一些项做出恒等变形。
∑ i = 1 m x ~ y i = 1 m ∑ i = 1 m x i ∑ i = 1 m y i = ∑ i = 1 m x i y ~ \sum_{i=1}^{m} \widetilde{x}y_i=\frac{1}{m}\sum_{i=1}^{m}x_i\sum_{i=1}^{m}y_i=\sum_{i=1}^{m}x_i \widetilde{y} i=1mx yi=m1i=1mxii=1myi=i=1mxiy
∑ i = 1 m x ~ y i = x ~ ⋅ 1 m ⋅ m ∑ i = 1 m y i = m ⋅ x ~ ⋅ y ~ = ∑ i = 1 m x ~ ⋅ y ~ \sum_{i=1}^{m} \widetilde{x}y_i=\widetilde{x} \cdot\frac{1}{m} \cdot m\sum_{i=1}^{m}y_i=m \cdot \widetilde{x}\cdot \widetilde{y}=\sum_{i=1}^{m} \widetilde{x}\cdot \widetilde{y} i=1mx yi=x m1mi=1myi=mx y =i=1mx y
∑ i = 1 m x ~ ⋅ x i = x ~ ⋅ 1 m ⋅ m ∑ i = 1 m x i = ∑ i = 1 m x ~ 2 \sum_{i=1}^{m}\widetilde{x} \cdot x_i=\widetilde{x} \cdot\frac{1}{m} \cdot m\sum_{i=1}^{m}x_i = \sum_{i=1}^{m}\widetilde{x} ^2 i=1mx xi=x m1mi=1mxi=i=1mx 2

再将 w w w进行“加一项减一项”,
w = ∑ i = 1 m ( y i x i − x ~ y i − x ~ y i + x ~ y i ) ∑ i = 1 m ( x i 2 − x ~ x i − x ~ x i + x ~ x i ) w=\frac{\sum_{i=1}^{m}(y_ix_i-\widetilde{x}y_i-\widetilde{x}y_i+\widetilde{x}y_i)} {\sum_{i=1}^{m}(x_i^2- \widetilde{x}x_i-\widetilde{x}x_i+\widetilde{x}x_i)} w=i=1m(xi2x xix xi+x xi)i=1m(yixix yix yi+x yi)
再将上面已变型的项代入 w w w中进行恒等变形,
w = ∑ i = 1 m ( y i x i − x ~ y i − x ~ y i + x ~ y i ) ∑ i = 1 m ( x i − x ~ ) 2 w=\frac{\sum_{i=1}^{m}(y_ix_i-\widetilde{x}y_i-\widetilde{x}y_i+\widetilde{x}y_i)} {\sum_{i=1}^{m}(x_i-\widetilde{x})^2} w=i=1m(xix )2i=1m(yixix yix yi+x yi)
w = ∑ i = 1 m ( x i − x ~ ) ( y i − y ~ ) ∑ i = 1 m ( x i − x ~ ) 2 w=\frac{\sum_{i=1}^{m}(x_i-\widetilde{x})(y_i-\widetilde{y})} {\sum_{i=1}^{m}(x_i-\widetilde{x})^2} w=i=1m(xix )2i=1m(xix )(yiy )
令向量 X = ( x 1 − x ~ , x 2 − x ~ , . . . , x i − x ~ ) T X=(x_1-\widetilde{x},x_2-\widetilde{x},...,x_i-\widetilde{x})^T X=(x1x ,x2x ,...,xix )T
Y = ( y 1 − y ~ , y 2 − y ~ , . . . , y i − y ~ ) T Y=(y_1-\widetilde{y}, y_2-\widetilde{y},...,y_i-\widetilde{y})^T Y=(y1y ,y2y ,...,yiy )T
所以 w = X T Y X T X w=\frac{X^TY}{X^TX} w=XTXXTY
向量化结束!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值