回归定义

Regression 就是找到一个函数 function ,通过输入特征 x ,输出一个数值 Scalar 。

应用举例

•    股市预测(Stock market forecast)
◦    输入:过去10年股票的变动、新闻咨询、公司并购咨询等
◦    输出:预测股市明天的平均值
•    自动驾驶(Self-driving Car)
◦    输入:无人车上的各个sensor的数据,例如路况、测出的车距等
◦    输出:方向盘的角度
•    商品推荐(Recommendation)
◦    输入:商品A的特性,商品B的特性
◦    输出:购买商品B的可能性
•    Pokemon精灵攻击力预测(Combat Power of a pokemon):
◦    输入:进化前的CP值、物种(Bulbasaur)、血量(HP)、重量(Weight)、高度(Height)
◦    输出:进化后的CP值

模型步骤

•    step1:模型假设,选择模型框架(线性模型)
•    step2:模型评估,如何判断众多模型的好坏(损失函数)
•    step3:模型优化,如何筛选最优的模型(梯度下降)

step1 模型假设 - 线性模型

一元线性模型(单个特征):我们可以假设出多种可能的线性模型,但有些模型的参数会明显不合理,可以舍弃
多元线性模型(多个特征):需要根据各个特征的权重来假设模型

step2 模型评估 - 损失函数

如何判断众多模型的好坏:根据【实际结果】与【模型预测结果】的差,来判定模型的好坏,也    就是使用损失函数(Loss function) 来衡量模型的好坏。

Step 3 最佳模型 - 梯度下降

筛选最优的模型使Loss最小
方法: 单个参数时:
•作L随参数变化的图,然后随机选取一点,
•计算微分,也就是当前的斜率,根据斜率来判定移动的方向,大于0向左移动(减少$w$)小于 0向右 移动(增加$w$)
•根据学习率(步长)移动
⁃ •重复步骤2和步骤3,直到找到最低点

1

2

解释完单个模型参数,引入2个模型参数 , 其实过程是类似的,需要做的是偏微分,过程如下图所示。

3

如果想进一步提升准确值,则要更换更加合适模型。
模型越复杂,在训练集上的平均误差越小,但在实际应用中会出问题(Overfitting)。

4

步骤优化

1、考虑物种属性的影响

输入更多Pokemons数据,相同的起始CP值,但进化后的CP差距竟然是2倍。如下图,其实将Pokemons种类通过颜色区分,就会发现Pokemons种类是隐藏得比较深得特征,不同Pokemons种类影响了进化后的CP值的结果。
5

通过对 Pokemons种类判断,将 4 个线性模型 合并到一个线性模型中:

6

2、加入更多特征

如果希望模型更强大表现更好(更多参数,更多input)
将更多的参数加到模型中,更多特征,更多input,数据量没有明显增加,仍旧导致overfitting

7

3、加入正则化

8

•    w 越小,表示 function 较平滑的,function 输出值与输入值相差不大。
•    在很多应用场景中,并不是 w 越小模型越平滑越好,但是经验值告诉我们 w 越小大部分情况下都是好的。
•    b 的值接近于0 ,对曲线平滑是没有影响。

9