线性回归算法(未完待续)

2020-03-22  本文已影响0人  老姚记事本

简单线性回归

1. 使用场景

两个随机变量有相关性,根据一个随机变量的值,预测另一个值。

2. 怎么样做?

线性回归思路,找到线性方程y = ax + b,使样本点(x, y)到方程对应直线的误差最小。对需要预测的点,通过方程得出。

3. 怎么定义误差最小?

直观会应该取点到直线距离相加,为了计算简单取y到直线距离,消除正负应用绝对值或者平方,这里使用平方,于是得到误差的计算方式,称作损失函数:



通过最小二乘法可以求出a、b的表达式:


4. 最小二乘法

对于测量值来说,让总的误差的平方最小的就是真实值。这是基于,如果误差是随机的,应该围绕真值上下波动。

二乘就是平方,线性回归中运用最小二乘法推导得到a,b的过程见参考资料

5. 代码实现细节

数学公式推导清楚了,实际写代码时没有太多难度的。中间需要注意使用向量计算速度可大幅提升。

向量化是非常常用的加速计算的方式,特别适合深度学习等需要训练大数据的领域。

#for x_i,y_i in zip(x,y): 
#    num = num + (x_i - x_mean) * (y_i - y_mean)
#    d = d + (x_i - x_mean) ** 2
num = (x_train - x_mean).dot(y_train - y_mean)  # 分子    
d = (x_train - x_mean).dot(x_train - x_mean)    # 分母
self.a_ = num / d
self.b_ = y_mean - self.a_ * x_mean

多元线性回归

1. 使用场景

简单线性回归,仅适用两个特征值,在真实世界中,一个样本通常有很多(甚至成千上万)特征值的,这就是多元线性回归。

2. 怎么做

原理与简单线性回归相同。



对应的损失函数:


todo 暂时由于向量运算不懂,剩余部分后续补充

参考资料

模型之母:简单线性回归&最小二乘法
模型之母:简单线性回归的代码实现
模型之母:多元线性回归

上一篇 下一篇

猜你喜欢

热点阅读