b站网课的学习笔记
https://www.bilibili.com/video/BV17J411C7zZ?p=34&spm_id_from=pageDriver
文章目录
1 模型验证方法
1.1 保留法(留出法)
划分为训练集和测试集两个集合(7:3)
1.2 蒙特卡洛交叉验证
重复二次采样验证,可看作多次保留法
1.3 k折交叉验证
随机划分为k个大小相等的子集,每次选取一个子集作为测试集,其余为训练集。
用k轮检验结果作为平均值作为评价标准,最常用的是10折交叉验证
1.4 自助法
以自助采样法为基础,有一部分样本会多次出现,另一部分样本不出现,大约有1/e的样本用来测试,其余用来训练。
这种方法产生的数据集会改变初始数据集的分布,会引入估计偏差。
验证集
用于评估测试的数据集。(客观评估)
通过验证集进行参数的迭代优化,得到最佳的参数,然后再根据测试集进行测试。
2 模型性能度量
真实 | 预正 | 预反 |
---|---|---|
正 | TP(真正例) | FN(假反例) |
反 | FP(假正例) | TN(真反例) |
准确率accuracy:分类模型正确分类样本数/样本总数
a
c
c
u
r
a
c
y
=
T
P
+
T
N
T
P
+
T
N
+
F
P
+
F
N
accuracy=\frac{TP+TN}{TP+TN+FP+FN}
accuracy=TP+TN+FP+FNTP+TN
精确率(查准率)precision:
p
r
e
c
i
s
i
o
n
=
T
P
T
P
+
F
P
precision=\frac{TP}{TP+FP}
precision=TP+FPTP
召回率(查全率)recall:分类正确的正例样本数/(分类正确的正例+负例样本数)
r
e
c
a
l
l
=
T
P
T
P
+
F
N
recall=\frac{TP}{TP+FN}
recall=TP+FNTP
2.1 混淆矩阵
TN(1) FP(2)
FN(3) TP(4)
precision=(4)/[(4)+(2)]
recall=(4)/[(4)+(3)]
2.2 阈值threshold-PR图像
2.3 最优阈值确定
- 使用平衡点Break-Even-Point【BEP】(R=P时的值)
- F1度量
- Fbeta
F值为精确率和召回率的调和平均数
F
=
(
α
2
+
1
)
∗
a
c
c
u
r
a
c
y
∗
r
e
c
a
l
l
α
2
(
a
c
c
u
r
a
c
y
+
r
e
c
a
l
l
)
F=\frac{(\alpha^2+1)*accuracy*recall}{\alpha^2(accuracy+recall)}
F=α2(accuracy+recall)(α2+1)∗accuracy∗recall
其中α为调和参数值,α为常取1:
F
1
=
2
∗
a
c
c
u
r
a
c
y
∗
r
e
c
a
l
l
a
c
c
u
r
a
c
y
+
r
e
c
a
l
l
F_1=\frac{2*accuracy*recall}{accuracy+recall}
F1=accuracy+recall2∗accuracy∗recall
2.4 n个二分类实现多分类问题
2.5 一种训练集下 多种算法的选择
- P-R曲线
- 比较P-R曲线面积大小,不过不好估算
- F1
- Fbeta
- ROC与AUC(Area under Curve)
ROC曲线越光滑,AUC越大,过拟合现象越轻
x轴:False Positive Rate
F
P
R
=
F
P
T
N
+
F
P
FPR=\frac{FP}{TN+FP}
FPR=TN+FPFP
y轴:True Positive Rate
T
P
R
=
T
P
T
P
+
F
N
TPR=\frac{TP}{TP+FN}
TPR=TP+FNTP
2.6 代价敏感错误率和代价曲线(多种训练集一种算法)
之前的性能度量都是建立在均等代价的前提之上,并没有考虑不同错误带来的后果之间的差异,我们希望不再是简单的最小化错误次数,而是最小化总体代价(代价敏感错误率)
代价曲线
目的:找到代价最小的阈值,把模型确定下来。
横坐标:归一化后的p*cost
使用p*cost目的是为了将代价曲线绘制成直线
纵坐标:归一化后的加权代价期望
归一化的目的是统一横纵坐标的量纲
2.7 多个测试集一种算法
对多个测试集的错误率求均值和方差,然后对均值和方差进行假设检验
- 离散型随机变量的函数分布
- 卡方分布
- t分布(用的较多)
- 正态分布转成t分布
2.8 多个测试集两种算法
交叉验证t检验
2.9 一个测试集两种算法
McNemar检验
2.10 多个测试集多种算法
Friedman检验与Nemenyi后续检验