回归就是寻找一个函数function,可能是一次函数,也可能是多次函数,通过输入特征值,输出对应的目标值。
应用举例
- 股票预测;
- 自动驾驶;
- 商品推荐;
- 宝可梦精灵升级之后的攻击力预测;
模型步骤
- 模型假设(即选择一个模型框架)
- 模型评估(通过损失函数Loss function评估模型的好坏)
- 模型优化(通过梯度下降来修改参数优化模型)
step 1 模型假设
单特征变量
以单特征的线性模型为例:
y
=
b
+
w
⋅
x
c
p
y = b + w·x_{cp}
y=b+w⋅xcp,所以此时b和w存在许多可能:
f
1
:
b
=
0.2
,
w
=
3
f1:b=0.2,w=3
f1:b=0.2,w=3
f
2
:
b
=
−
0.4
,
w
=
34
f2:b=-0.4,w=34
f2:b=−0.4,w=34
f
3
:
b
=
−
0.34
,
w
=
32
f3:b=-0.34,w=32
f3:b=−0.34,w=32
.
.
.
.
.
.
......
......
多特征模型
大部分label的影响因素都是多样的,比如宝可梦进化后的CP值,除了进化前的CP,物种
、血量、属性这些都会是影响因素:
所以假设线性模型为:
y
=
b
+
∑
x
i
w
i
y=b+\sum x_{i}w_{i}
y=b+∑xiwi:
- x i x_{i} xi:即为各种特征值;
- w i w_{i} wi:即为各种特征的权重
- b:为偏移量
step 2:模型评估
假设模型为:
y
=
b
+
∑
x
i
w
i
y=b+\sum x_{i}w_{i}
y=b+∑xiwi;
定义损失函数LossFunction:
L
(
f
)
=
∑
(
b
+
∑
w
i
x
i
−
y
i
)
2
L(f)=\sum (b+\sum w_{i}x_{i}-y_{i})^2
L(f)=∑(b+∑wixi−yi)2
通过损失函数的值来评价模型的好坏。
step3:模型优化
很明显,我们的目的是得到一个拟合特征与对应值的最优模型,那么应当在损失函数上寻找值最小的时候。如图以单特征为例:
另外,这里提及了一个学习率(学习步长)
η
\eta
η,以
w
w
w的优化为例:
w
=
w
−
η
∗
d
L
d
w
∣
w
=
w
i
w=w-\eta*\frac{dL}{dw}\vert w=w_{i}
w=w−η∗dwdL∣w=wi
- 如果偏微分大于零,说明该处 w w w偏大,应该回退;
- 如果偏微分小于零,说明该处 w w w偏小,应该增大;
优化时通过步长的约束避免一步跨很大的步子。
通过不断重复上述过程,最终寻找适合的参数。
另外,梯度下降不可避免地遇到局部优化问题,因此实际使用使用时还应当注意解决。
如何判断训练好的模型的好坏?
使用训练集和测试集的平均误差来评判。
更强大的模型:N次模型
过拟合问题
虽然在训练的时候,越复杂的模型对训练集的拟合程度越高,但是大部分时候用在测试集上效果并不能达到预想结果。
正则化
正则化可以使得拟合曲线更加平滑,目的是限制过拟合的发生,可以通过加入正则项的方法实现正则化。