简单线性回归
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 暂时由于向量运算不懂,剩余部分后续补充
网友评论