机器学习复习:线性回归1

本文介绍了如何使用简单线性回归模型预测数据趋势,包括模型的建立、参数计算及评估方法。

Simple Linear Regression (简单的线性回归)

相关变量

example:

在过去的一个月里,猪肉的价格从8元一斤一路涨到了20元一斤。市面上的肉夹馍也逐渐从10元一个涨到了15元一个。在第二个月的第一天,我们发现猪肉的价格涨到了22元。那么肉夹馍的价格会涨到多少呢

variable(变量):

1、preddict target(预测对象) :y (what we want to predict)
2、feature(特征): x 已知的参数

所以训练数据集为:
{(xi,yi)}i=1n \{(x_i,y_i)\}^n_{i=1}{(xi,yi)}i=1n
假设我们对过去的30天进行了统计则 n=30,则 xi ,yi 分别为第 i 天的猪肉价格和肉夹馍价格。

parameters(参数):

3、slope(斜率): β1
4、intercept(截距): β0

在上面的例子中,我们的预测对象y,就是肉夹馍的价格。而我们的已知特征x就是猪肉的价格。
那么关于y和x之间的关系,我们可以选择最简单的线性方程
y=ax+b y=ax+by=ax+b
其中我们使β0=b,β1=aβ{_0}=b, β{_1}=aβ0=b,β1=a
便得到了关于肉夹馍价格x和猪肉价格y的线性预测模型:
yˆ=β0+β1x\^y=β{_0}+β{_1}xyˆ=β0+β1x
在这个模型中,β0和β1这两个参数选的越好,模型的预测结果就越准确。

Least-Squares Fit:

在这里,我们使用least-squares(LS) fit去得到这两个参数。
首先计算 Residual sum of squares(RSS):
RSS(β0,β1)=∑ i=1n(yi−yˆi)2RSS(β{_0},β{_1})=\sum_{\ i=1}^n{(y_i- \^y_i)^2}RSS(β0,β1)= i=1n(yiyˆi)2
为了进行下一步的计算,先声明一些需要计算的参数:

名称公式
样本均值(Sample mean)xˉ=1n∑ i=1nxiyˉ=1n∑ i=1nyi \bar x=\frac1n\sum_{\ i=1}^n{x_i}\\ \bar y=\frac1n\sum_{\ i=1}^n{y_i}xˉ=n1 i=1nxiyˉ=n1 i=1nyi
样本方差(Sample variance)Sx2=1n∑ i=1n(xi−xˉ)2Sy2=1n∑ i=1n(yi−yˉ)2S^2_x =\frac1n\sum_{\ i=1}^n{(x_i- \bar x)^2}\\S^2_y =\frac1n\sum_{\ i=1}^n{(y_i- \bar y)^2}Sx2=n1 i=1n(xixˉ)2Sy2=n1 i=1n(yiyˉ)2
样本标准差(Standard deviation)Sx=1n∑ i=1n(xi−xˉ)2Sy=1n∑ i=1n(yi−yˉ)2S_x = \sqrt {\frac1n\sum_{\ i=1}^n{(x_i- \bar x)^2}}\\S_y = \sqrt {\frac1n\sum_{\ i=1}^n{(y_i- \bar y)^2}}Sx=n1 i=1n(xixˉ)2Sy=n1 i=1n(yiyˉ)2
样本协方差(Sample covariance)Sxy=1n∑ i=1n(xi−xˉ)(yi−yˉ)S_{xy} = \frac1n\sum_{\ i=1}^n{(x_i- \bar x)(y_i- \bar y)}Sxy=n1 i=1n(xixˉ)(yiyˉ)
样本相关系数(Sample correlation coefficient)ρxy=SxySxSy=1n∑ i=1n(xi−xˉ)(yi−yˉ)1n∑ i=1n(xi−xˉ)⋅1n∑ i=1n(yi−yˉ) \rho_{xy}=\frac{S_{xy}}{S_xS_y} = \frac{\frac1n\sum_{\ i=1}^n{(x_i- \bar x)(y_i- \bar y)}}{\frac1n\sum_{\ i=1}^n{(x_i- \bar x)}·\frac1n\sum_{\ i=1}^n{(y_i- \bar y)}}ρxy=SxSySxy=n1 i=1n(xixˉ)n1 i=1n(yiyˉ)n1 i=1n(xixˉ)(yiyˉ)

现在我们开始计算β0和β1,因为RSS计算的是真实值和预测值之间的差的平方,所以理论上,RSS越小则模型越准。而RSS是一个关于β0和β1的二元二次方程,并且二次参数的系数为正数,所以理论上,偏导为0的点就是最小值点,那么开始暴力求导吧!
0=∂RSS(β0,β1)∂β0=ddβ0∑ i=1n(yi−β0−β1xi)2=−2∑ i=1n(yi−β0−β1xi)(1)0=\frac{\partial RSS(β{_0},β{_1})}{\partial β{_0}} =\frac{d}{d β{_0}}\sum_{\ i=1}^n{(y_i-β{_0}-β{_1}x_i)^2}\\=-2\sum_{\ i=1}^n{(y_i-β{_0}-β{_1}x_i)} \tag{1}0=β0RSS(β0,β1)=dβ0d i=1n(yiβ0β1xi)2=2 i=1n(yiβ0β1xi)(1)
0=∂RSS(β0,β1)∂β1=ddβ1∑ i=1n(yi−β0−β1xi)2=−2∑ i=1n(yi−β0−β1xi)xi(2)0=\frac{\partial RSS(β{_0},β{_1})}{\partial β{_1}} =\frac{d}{d β{_1}}\sum_{\ i=1}^n{(y_i-β{_0}-β{_1}x_i)^2}\\=-2\sum_{\ i=1}^n{(y_i-β{_0}-β{_1}x_i)x_i}\tag {2}0=β1RSS(β0,β1)=dβ1d i=1n(yiβ0β1xi)2=2 i=1n(yiβ0β1xi)xi(2)
结合上表公式可从(1)⟹0=yˉ−β0−β1xˉ⟹β0=yˉ−β1xˉ(3) \Longrightarrow0=\bar y-β{_0}-β{_1}\bar x\\ \Longrightarrowβ{_0}=\bar y-β{_1}\bar x \tag{3}0=yˉβ0β1xˉβ0=yˉβ1xˉ(3)
推导(2)可得0=1n∑ i=1nxiyi−xˉβ0−yi−β11n∑ i=1nxi2(4)0=\frac1n\sum_{\ i=1}^n{x_iy_i- \bar xβ{_0}-y_i-β{_1} \frac1n\sum_{\ i=1}^nx^2_i}\tag{4} 0=n1 i=1nxiyixˉβ0yiβ1n1 i=1nxi2(4)
将(3)代入(4)中
0=1n∑ i=1nxiyi−xˉyˉ−β1(1n∑ i=1nxi2−xˉ2)⟹β1=SxySx2(5) 0=\frac1n\sum_{\ i=1}^nx_iy_i- \bar x \bar y-β{_1}( \frac1n\sum_{\ i=1}^nx^2_i-\bar x^2)\\ \Longrightarrow β{_1} =\frac{S_{xy}}{S_x^2}\tag{5}0=n1 i=1nxiyixˉyˉβ1(n1 i=1nxi2xˉ2)β1=Sx2Sxy(5)
通过(3),(5)我们就可以得到β0,β1的最佳值。
其中
Sxy=1n∑ i=1nxiyi−xˉyˉSx2=1n∑ i=1nxi2−xˉ2S_{xy}= \frac1n\sum_{\ i=1}^n{x_iy_i- \bar x \bar y}\\ S_x^2=\frac1n\sum_{\ i=1}^nx^2_i-\bar x^2Sxy=n1 i=1nxiyixˉyˉSx2=n1 i=1nxi2xˉ2

模型评估(Model evaluation)

将得到的β0,β1代入RSS方程可得
RSS(β0,β1)=n(1−ρxy2)Sy2RSS(β{_0},β{_1})=n(1-\rho_{xy}^2)S_y^2 RSS(β0,β1)=n(1ρxy2)Sy2
通常我们计算R2来评估模型的好坏
R2=1−RSS/nSy2=ρxy2R^2=1-\frac{RSS/n}{S_y^2} =\rho_{xy}^2R2=1Sy2RSS/n=ρxy2
如果
R2=1,则这个模型很好
R2=0,则表示这个模型的准确率和随机模型差不多
R2<0,则该模型还不如扔色子来的准

至此一个简单的线性回归模型,从训练的评估的全过程就结束啦!

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值