最小二乘法与线性回归

( a 1 , b 1 ) , ( a 2 , b 2 ) , ⋯   , ( a n , b n ) (a_1,b_1),(a_2,b_2),\cdots,(a_n,b_n) (a1,b1),(a2,b2),,(an,bn)
例子
a i a_i ai表示某地区警察的密度, b i b_i bi 表示该地区犯罪率。
现在分析二者的相对关系

大致均匀的分散在直线的两边,如何找出能代表它们趋势的直线呢?
最小二乘法的思想,最能代表趋势的直线,是
总体上来讲,这些点到这条直线最近
y = k x + c y=kx+c y=kx+c
由于实际数据是 ( a i , b i ) (a_i,b_i) (ai,bi),而拟合数据是 ( a i , k a i + c ) (a_i,ka_i+c) (ai,kai+c)最小二乘法则令差的和的平方 S S S为:
S = ∑ i = 1 n ( k a i + c − b i ) 2 S=\sum_{i=1}^{n}(ka_i+c-b_i)^2 S=i=1n(kai+cbi)2
如何对k和c取值,从而让 S 的值最小。

  • 关于 k 展开,形成一个一元二次函数
    S = ∑ i = 1 n ( k a i + c − b i ) 2 S=\sum_{i=1}^{n}(ka_i+c-b_i)^2 S=i=1n(kai+cbi)2
    = ( ∑ a i 2 ) k 2 + 2 ( ∑ ( a i ( c − b i ) ) ) k + ∑ ( c − b i ) 2 =(\sum a_i^2)k^2+2(\sum(a_i(c-b_i)))k+\sum(c-b_i)^2 =(ai2)k2+2((ai(cbi)))k+(cbi)2
  • 关于 c 展开
    = n c 2 + ( 2 ∑ ( k a i − b i ) ) c + ∑ ( k a i − b i ) 2 =nc^2+(2\sum(ka_i-b_i))c+\sum(ka_i-b_i)^2 =nc2+(2(kaibi))c+(kaibi)2

为了让 S 达到最小值,则要对上面两个一元二次方程取最小值。

c = − b 2 a = − 2 ∑ ( k a i − b i ) 2 n = 1 n ( ∑ ( b i − k a i ) ) c=-\frac{b}{2a}=-\frac{2\sum(ka_i-b_i)}{2n}=\frac{1}{n}(\sum(b_i-ka_i)) c=2ab=2n2(kaibi)=n1((bikai))
即为 c 和 k 之间满足的第一个方程:

c = 1 n ( ∑ ( b i − k a i ) ) ( 1 ) c=\frac{1}{n}(\sum(b_i-ka_i))(1) c=n1((bikai))(1)
把 k 的一元二次方程展开得

k = − b 2 a = − 2 ( ∑ ( a i ( c − b i ) ) ) 2 ∑ a i 2 = ∑ ( a i b i ) − c ∑ b i ∑ a i 2 k=-\frac{b}{2a}=-\frac{2(\sum(a_i(c-b_i)))}{2\sum a_i^2}=\frac{\sum(a_ib_i)-c\sum b_i}{\sum a_i^2} k=2ab=2ai22((ai(cbi)))=ai2(aibi)cbi

k = ∑ ( a i b i ) − c ∑ b i ∑ a i 2 ( 2 ) k=\frac{\sum(a_ib_i)-c\sum b_i}{\sum a_i^2}(2) k=ai2(aibi)cbi(2)

由(1)(2)得

k = n ∑ a i b i − ( ∑ a i ) ( ∑ b i ) n ∑ a i 2 − ( ∑ a i ) 2 k=\frac{n\sum a_ib_i-(\sum a_i)(\sum b_i)}{n\sum a_i^2-(\sum a_i)^2} k=nai2(ai)2naibi(ai)(bi)

c = ( ∑ a i 2 ) ( ∑ b i ) − ( ∑ a i ) ( ∑ a i b i ) ) n ∑ a i 2 − ( ∑ a i ) 2 c=\frac{(\sum a_i^2)(\sum b_i)-(\sum a_i)(\sum a_ib_i))}{n\sum a_i^2-(\sum a_i)^2} c=nai2(ai)2(ai2)(bi)(ai)(aibi))

参考资料:
[1] python机器学习-线性回归(LinearRegression)算法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值