第一节 模型评估与模型参数选择
1.对于给定的输入x,若预测值偏离真实目标值,说明模型存在误差;
2.预测值与真实值之间的误差函数度量称为损失函数;
3.在损失函数度量下,训练集上的平均误差被称为训练误差,测试集上的误差称为泛化误差;
4.泛化误差是衡量一个模型泛化能力的重要标准。
5.误差
:预测输出
ො
𝑦
与真实输出
𝑦
之间的差异;
•
经验误差、训练误差
:在
训练集
上的误差;
•
泛化误差
:在新样本上的误差。
•
泛化误差越小越好,经验误差不一定越小越好,可能导致
过拟合
。
6.种数据集之间的关系:
•
训练集相当于上课学知识
•
验证集相当于课后的的练习题,用来纠正和强化学到的知
识
•
测试集相当于期末考试,用来最终评估学习效果
7.验证集 :
在
新数据
(验证集和测试集是不同的数据)上的表现如何。
同时通过
调整超参数
,让模型处于最好的状态
验证集不像训练集和测试集,它
是非必需的
。
如果不需要调整超参数,就可以不使用验证集,
直接用测试集来评估效果。
•
验证集评估出来的效果并非模型的最终效果,主要是用来调整超参数的,模型最终效果以测
试集的评估结果为准。
通过测试集(Test Dataset)来做最终的
评估,来看学习效果(模型效果)好不好
8.
划分数据集:
超参数越少,或者超参数很容易调整,那么可以减少验证集的比例,更多的分配给训练集。
9.
过拟合:
将训练样本自身的一些特点当作所
有样本潜在的泛化特点
。
表现:
在训练集上表现很好,在测试集上表
现不好。
第二节 监督学习
监督学习与非监督学习
1.如果数据集中样本点只包含了模型的输入
𝒙
,那么就需要采用
非监督学习的方法
2.如果这些样本点以
〈𝒙
,
𝒚〉
这样的输入-输出二元组的形式出现(
有数据标签
)
,
那么就可以采用
监督学习
的算法。
3.
模型与最优化算法的选择,很大程度上
取决于能得到什么样的数据
4.
在监督学习中,我们根据
训练集
𝒙
𝑖
, 𝒚
𝑖
𝑖
𝑁 =1
中的观测
样本点来优化
模型
𝑓 ⋅
,使得给定测试样例
𝒙′
作为模型输
入,其输出
ෝ
𝒚
尽可能接近正确输出
𝒚′
。
ෝ
𝒚
=
𝑓 x
回归:回归问题的输出是
连续值;分类:
分类问题的输出是
离散值
一个购物网站想要计算出其在某个时期的预期收益,研究人员会将相关因素如广告投放
量、网站流量、优惠力度。得到在未来某一时刻的预测值
回归问题中通常使用均方损失函数来作为度量模型效果的指标
均方误差损失函数(Mean Squared Error,MSE):
简单线性回归
•
自变量 x 和因变量 y之间存在一条线性关系:
•
多元线性回归
•
假设自变量 和因变量 y之间存在一条线性关系
线性回归可以用于预测什么中的场景?
1.预测房价
•
假设我们想要预测某个城市的房价。
我们可以收集
到该城市
过去几年的房价数据,以及一些相关的因
素,比如房屋的面积、房龄、所处区域、楼层等
。
我们可以使用这些数据
建立一条最佳拟合直线
,从
而
对未来的房价进行预测
。
•
在这个例子中,
自变量
可以包括
面积、房龄、所处
区域
等,
因变量
是
房价
。
•
我们可以通过
最小二乘法
来估计
截距和斜率的值
2.预测销售额
•
假设我们想要预测某家公司未来一年的销售额。
•
我们可以收集到该公司
过去几年的销售额数据,以
及一些相关的因素,比如广告投入、促销活动、季
节性因素
等。我们可以使用这些数据建立一条最佳
拟合直线,从而对未来的销售额进行预测。
•
在这个例子中,
自变量
可以包括
广告投入、促销活
动、季节性因素
等,
因变量是销售额
想要预测(检测)的目标是猫,那么在数据集中猫为
正样本
( Positive )
, 其 他 狗 、 兔 子 、 狮 子 这 些 数 据 为
负 样 本
(Negative )
。
准确率
(
Accuracy
):对于测试集中
D
个样本,有
k
个被正
确分类,
D-k
个被错误分类,则准确率为
样本不平衡,准确率就会失效
精确率(查准率)
- Precision:所有被预测为正样本中实际为正样本的概率
召回率(查全率)
- Recall:实际为正样本中被预测为正样本的概率
把精确率(
Precision
)和召回率(
Recall
)之
间的关系用图来表达,就是下面的
PR
曲线
:
mAP
是多个类别
AP
的平均值。这个
mean
的意思是对每个类的
AP
再求
平均,得到的就是
mAP
的值,
mAP
的大小一定在
[0,1]
区间,越大越
好。
该指标是目标检测算法中最重要的一个。
模型评估
需要根据模型的训练历史判断模型是否处于
欠拟
合或过拟合状态
。
第三节:线性回归模型
(一)机器学习:数据集 模型选择 训练KNN不需要 推理(预测)
线性回归
模型是指
𝑓(⋅)
采用线性组合形式的回归模型,在线性回归问题
中,因变量和自变量之间是线性关系的。对于第
𝑖
个因变量
𝑥
𝑖
,我们乘以
权重系数
𝑤
𝑖
,取
𝑦
为因变量的线性组合:
𝒚 = 𝒇 𝒙 = 𝒘
𝟏
𝒙
𝟏
+ ⋯ + 𝒘
𝒏
𝒙
𝒏
+ 𝒃
•
其中
𝑏
为常数项。若令
𝒘 = (𝑤
1
, ⋯ , 𝑤
𝑛
)
,则上式可以写成向量形式:
𝐲 = 𝒇 𝒙 = 𝒘
⊤
𝒙 + 𝒃
•
可以看到
𝒘
和
𝑏
决定了回归模型
𝑓(⋅)
的行为。由数据样本得到
𝒘
和
𝒃
有许
多方法,例如最小二乘法(书上)、梯度下降法。
最开始
𝜔
是选取一个随机值,然后通过训练想
要找到一个
𝜔
的取值使得生成的预测函数与真
实值的差异尽可能小,即损失尽可能小。
我们采用损失函数来衡量真实值与预测值之间的差异。
•
目标:
找到一个
𝜔
使得损失函数的值最小。
•
采用真实值与预测值的平方作为损失函数(
loss)
:
•
假设
𝜔
=3
、
4
、
0…
,计算出每个样本的损失,之后求平均损失。目标就是找到一个
𝜔
使得这个平均损失最小:
Pytorch
画图:
matplotlib
库
•
如果没有安装
matplotlib
库需要安装:
pip install matplotlib
• plt.plot()
• plt.plot()
是
Matplotlib
库中用于绘制线图(折线图)的主要函数之一。
•
它的作用是将一组数据点连接起来,以可视化数据的趋势、关系或模式。
plt.plot(x, y, fmt, **kwargs)
•
x
:表示
X
轴上的数据点,通常是一个列表、数组或一维序列,用于指定数据点的水平位置。
•
y
:表示
Y
轴上的数据点,通常也是一个列表、数组或一维序列,用于指定数据点的垂直位置。
•
fmt
:是一个
可选
的格式字符串,用于指定线条的样式、标记和颜色。例如,‘
ro-’
表示红色圆点
线条。
•
**kwargs
:是一系列可选参数,用于进一步自定义线条的属性,如线宽、标记大小、标签等
样式参数(
fmt
): 格式字符串可以包含一个字符来指定颜色,一个字符来指定标记样式,以及一
个字符来指定线条样式。例如,‘
r-’
表示红色实线,‘
bo–’
表示蓝色圆点虚线。
•
线条样式(
linestyle
): 使用
linestyle
参数可以指定线条的样式,如实线(‘
-’
)、虚线(‘
–’
)、
点划线(‘
-.’
)等。
•
标记样式(
marker
): 使用
marker
参数可以指定数据点的标记样式,如圆点(‘
o’
)、方块
(‘
s’
)、星号(‘
*
’)等。
•
线条颜色(
color
): 使用
color
参数可以指定线条的颜色,可以使用颜色名称(如’
red’
)、缩
写(如’
r’
)或十六进制颜色码(如’
#FF5733’
)。
•
线宽(
linewidth
): 使用
linewidth
参数可以指定线条的宽度,以数字表示。
•
标记大小(
markersize
): 使用
markersize
参数可以指定标记的大小,以数字表示。
•
图例标签(
label
): 使用
label
参数可以为线条指定标签,用于创建图例。
•
其他属性: 还有许多其他属性可用于自定义线图,如透明度、渐变、线型、阴影等。