为什么要对模型进行评估
首先,对一个模型进行评估可以更好对模型进行解释,解释该方法在研究方向上具体有哪方面的应用,为什么要用这个方法而不用其他方法,这样有助于提高我们自身的分析能力以及各方法之间的灵活运用
经验误差与过拟合
在这里简单写一下
错误率
(
e
r
r
o
r
r
a
t
e
)
=
分类错误样本数
(
a
)
样本总数
(
m
)
精度(accuracy)
=
1
−
a
m
训练集上的误差
=
训练误差或者经验误差
新样本上的误差
=
泛化误差
\text{错误率}\left( error\,\,rate \right) =\frac{\text{分类错误样本数}\left( a \right)}{\text{样本总数}\left( m \right)} \\ \text{精度(accuracy)}=1-\frac{a}{m} \\ \text{训练集上的误差}=\text{训练误差或者经验误差} \\ \text{新样本上的误差}=\text{泛化误差}
错误率(errorrate)=样本总数(m)分类错误样本数(a)精度(accuracy)=1−ma训练集上的误差=训练误差或者经验误差新样本上的误差=泛化误差
在所有的误差上,最能体现一个模型的好坏是通过泛化性能,也就是泛化误差尽可能地小
过拟合
过拟合往往就是表示其在泛化性能上表现极差,但是在训练集上面的表现,也就是训练误差的值往往很小,常见的方法有拉格朗日插值法,牛顿插值法,这些方法就是因为过于注重训练误差(也被称之为龙格现象),如下图,就是经过了所有样本点,训练能力很好,但是如果有新的点加入,往往会导致误差较大
欠拟合
与之对应的就是欠拟合,可以理解为就是点与拟合曲线的误差过大,用直线拟合直线(如图所示),这样就是严重的欠拟合
评估方法
在对模型进行评估的时候往往会采用训练集 S S S以及测试集 T T T的方法进行评估,也就是将 t r a i n i n g s e t training\ set training set当中的数据进行一定方法的分割,用来对模型进行评估,判断其泛化能力
留出法
留出法是较为常用的方法,将数据集
D
D
D划分称为了两个互斥的集合,其中一个为
S
S
S,另一个为
T
T
T,使用
S
S
S训练出来模型之后,通过
T
T
T判断模型的好坏
D
=
S
∪
T
,
S
∩
T
=
∅
D=S\cup T,S\cap T=\varnothing
D=S∪T,S∩T=∅
保留类别比例的采样方法被称为分层采样,保证了数据的尽可能的平均,通常采用的分配是
70
%
70\%
70%的训练集
S
S
S和
30
%
30\%
30%的测试集
T
T
T
交叉验证法
也就是让数据集
D
D
D当中的数据既当测试集
S
S
S,又当测试集
T
T
T,具体方法就是将
D
D
D分成
k
k
k个大小相似的互斥子集,每次取
k
−
1
k-1
k−1为训练集,剩下的作为测试集,有多少则为多少交叉验证法,下图所显示的就是
10
折交叉验证
10折交叉验证
10折交叉验证
自助法
自助法采用的就是可以实现减少样本规模没同时能实现较高的实验估计的方法,每次随机从
D
D
D当中挑选一个样本,将其拷贝放入数据集
d
d
d,然后放回样本,进行
m
m
m时候生成
m
m
m个样本的数据集
d
d
d
数据不被采集到的概率为
lim
m
→
+
∞
(
1
−
1
m
)
m
=
1
e
≈
0.368
\lim_{m\rightarrow +\infty} \left( 1-\frac{1}{m} \right) ^m=\frac{1}{e}\approx 0.368
m→+∞lim(1−m1)m=e1≈0.368
自助法常在数据集比较小的时候被使用到
调参
参数不同的设置往往会导致结果的不同,学到的模型性能往往有较大的差别,但是在参数多的情况下很难去保证同时取得的参数值是恰好符合模型的最优结果的,所以也会存在一些随机的方法去帮助调差,比如蒙特卡洛模拟
性能的度量
最常用方法就是均方误差
E
(
f
;
D
)
=
1
m
∑
i
=
1
m
(
f
(
x
i
)
−
y
i
)
2
E\left( f;D \right) =\frac{1}{m}\sum_{i=1}^m{\left( f\left( x_i \right) -y_i \right) ^2}
E(f;D)=m1i=1∑m(f(xi)−yi)2
查准率,查全率与 F 1 F1 F1
这里简单介绍一下
T
P
,
F
P
,
T
N
,
F
N
TP,FP,TN,FN
TP,FP,TN,FN之间的关系
查准率
P
P
P和查全率
R
R
R如下
P
=
T
P
T
P
+
F
P
R
=
T
P
T
P
+
F
N
P=\frac{TP}{TP+FP} \ R=\frac{TP}{TP+FN}
P=TP+FPTP R=TP+FNTP
大家应当尽可能去理解这两者之间的不同,
查准率也就是在乎在预测为正类的样本当中预测正确的比例,结合知乎李韶华的回答也就是宁可漏过坏人,也不能冤枉好人
查全率就是实际为正类的样本中预测正确的比例,可以理解为,宁愿错杀一千个好人,也不能漏过一个坏人
这两者是自相矛盾的所以模型评估的时候应当注重看一下模型评估的重点是在哪里
内容小结
剩下的一些部分大家可以自行观看书本,我在这里简单介绍了一下如何去判断一个模型的好坏的方法,以及如何去解释模型的优点和缺点相关的一些东西