线性回归及实现

什么是回归

回归百度百科的定义是:研究一组随机变量 Y = ( y 1 , y 2 , , , , y n ) Y = (y_1, y_2, ,,, y_n) Y=(y1,y2,,,,yn)与另一组随机变量 X = ( x 1 , x 2 , , , , x n ) X = (x_1, x_2, ,,, x_n) X=(x1,x2,,,,xn)之间关系的统计变量方法。回归主要的种类有:线性回归、曲线回归、二元logistic回归、多元logistic回归。

回归从一组数据出发,确定某些变量之间的定量关系式;即建立数学模型并估计未知参数。通常用最小二乘法。

线性回归

当因变量和自变量为线性关系时,它是一种特殊的线性模型,也就是线性回归,你可以把线性回归理解为求一条直线来拟合你的数据点。
在这里插入图片描述

推导

以预测房价为例,给定一组数据点 ( Y 1 , Y 2 , , , , Y n ) (Y_1, Y_2, ,,, Y_n) (Y1,Y2,,,,Yn) ( X 1 , X 2 , , , , X n ) (X_1, X_2, ,,, X_n) (X1,X2,,,,Xn),其中的 Y i Y_i Yi表示对应的样本输入为 X i X_i Xi时的房价,是一个标量,而 X i X_i Xi是一个d维向量,每一维表示衡量房价的一个标准,比如第一维表示面积、第二维表示房间地理位置、第三维表示楼层等。

我们知道2维空间中直线的方程是: y = k x + b y = k x + b y=kx+b
3维空间中直线方程是: z = k 1 x + k 2 y + b z = k_1x + k_2y + b z=k1x+k2y+b
那么类比d维空间中的直线方程应该是:
y = θ 1 x 1 + θ 2 x 2 + . . . + θ d x d + θ 0 (1) \tag{1} y = \theta_1x_1 + \theta_2x_2 +... + \theta_dx_d + \theta_0 y=θ1x1+θ2x2+...+θdxd+θ0(1)
线性回归就是要求出这条直线,也就是已知数据点,求出直线的参数 θ i , i = [ 0 , 1 , 2 , . . . d ] \theta_i, i= [0,1,2,... d] θi,i=[0,1,2,...d],其中,小写的 x j x_j xj表示 X i X_i Xi的d个特征中的第j个特征的数值。

我们发现 X i X_i Xi相当于一个d维的向量,而参数 θ \theta θ也有d+1个,所以想到用 θ = [ θ 0 , θ 1 , , , θ d ] \theta = [\theta_0, \theta_1,,, \theta_d] θ=[θ0,θ1,,,θd]来表示,将 X i X_i Xi扩展1维也变成d+1维,即 X i = [ 1 , x 1 , x 2 , . . . x d ] X_i= [1, x_1, x_2, ... x_d] Xi=[1,x1,x2,...xd],所以(1)式可以变成向量相乘的形式:
Y ^ = X θ (2) \tag{2} \hat Y = X\theta Y^=Xθ(2)
其中, X , θ 都 是 d + 1 X, \theta都是d+1 X,θd+1维的向量, X是行向量, θ 是 列 向 量 \theta是列向量 θ

(2)式是我们建立好的模型,将来我们要用它来预测房价,那么怎么衡量预测值与真实值之间的差异呢?就是用平方损失函数来衡量。

平方损失函数

J ( θ ) = ∑ i = 1 n ( Y i − Y ^ i ) 2 (3) \tag{3}J(\theta) = \displaystyle\sum_{i=1}^n (Y_i - \hat Y_i)^2 J(θ)=i=1n(YiY^i)2(3)
(3)式也可以向量化,如下图所示:
在这里插入图片描述
所以损失函数可向量化为:
J ( θ ) = ( y − X d θ ) T ( y − X d θ ) (4) \tag{4}J(\theta) = (y - X_d\theta)^T(y - X_d\theta) J(θ)=(yXdθ)T(yXdθ)(4)
其中y是真实标签, X d θ X_d\theta Xdθ是预测标签,这样就可以衡量损失了。
要计算 θ \theta θ,则可以先把(4)式展开,然后对 θ \theta θ求导:
在这里插入图片描述
求导之后就变成下面的式子:
在这里插入图片描述
变形得到:
在这里插入图片描述
之后就可以用得到的线性方程来预测房价了。

实现

实现可以看我的github地址:实现

参考:通俗理解线性回归(二)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值