刚开始入门机器学习,线性回归是肯定躲不过的。特别到之后的神经网络的全连接层也是需要线性回归基础。
最简单的公式就是
y
=
w
x
+
b
y=wx+b
y=wx+b。
x和y是已知量,要求出w和b的值。
我们在平面坐标图上看,
y
=
w
x
+
b
y=wx+b
y=wx+b,就是一条直线。我们要确认这条直线就只要两个点就可以确定出来。
但是现实情况的数据并不是百分百符合
y
=
w
x
+
b
y=wx+b
y=wx+b这条直线的,很可能是围绕这条直线变动的。那么y就有可能出现偏差了。
实际情况y和符合
y
’
=
w
x
+
b
y’=wx+b
y’=wx+b预测情况的这条直线对应的y‘就会出现偏差了。
如何计算这两个之间的偏差呢,基本我们是使用均方差的方式
(
y
−
y
‘
)
(
y
−
y
′
)
(y-y‘)(y-y')
(y−y‘)(y−y′)的方式来衡量实际情况y和预测情况y’之间的误差。
随着我们真实数据越来越多,那么就会存在多个点用来计算误差。
误差值=(总数据的均方差/数据量)
误差值的计算相当于就是损失函数计算
我们当然希望这个误差值越来越小,所以这个误差值就是用来调整y’=wx+b 中斜率w值和b值,让其不断变小,这就让涉及到学习率这个值了。
新的
w
′
=
w
−
学
习
率
∗
误
差
值
w'= w - 学习率*误差值
w′=w−学习率∗误差值。
通过不断的调整w和b值,那么就会让这条线更加更符合现实情况的数据预期。
以上是最简单的线性回归情况。
那么要如何模拟更复杂的情况呢?
现实情况是一个结果y,更可能和一堆相关x有关系,那么很明显公式就会如下一样
y
′
=
w
1
∗
x
1
+
w
2
∗
x
1
+
…
…
+
w
n
∗
x
n
+
b
y' = w1*x1+ w2*x1+……+wn*xn +b
y′=w1∗x1+w2∗x1+……+wn∗xn+b
已知量x通过不断的去计算出真实y和预测y’之间的误差值来不断更新w和b值,用这样的方式不断完善对现实情况的预测。
使用矩阵来表达如一下
y
′
=
[
w
1
,
w
2
,
…
…
,
w
n
,
b
]
∗
[
x
1
,
x
2
,
…
…
,
x
n
,
1
]
y' = [w1,w2,……,wn,b] * [x1,x2,……,xn,1]
y′=[w1,w2,……,wn,b]∗[x1,x2,……,xn,1]
其中
[
w
1
,
w
2
,
…
…
,
w
n
,
b
]
[w1,w2,……,wn,b]
[w1,w2,……,wn,b]就是同loss函数和学习率进行变化的部分。
经典的波士顿房价预测就是基本的公式就是使用以上说的线性回归来预测现实情况数值的情况。