机器学习-模型评估与选择

文章介绍了模型评估的重要性和不同方法,如留出法、交叉验证和自助法。针对回归和分类模型,提出了均方误差和错误率、精度等性能度量。此外,详细讨论了AUC、ROC曲线在评估二分类模型中的作用,以及偏差、方差和泛化误差的概念,强调了它们在理解模型性能中的意义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

为了判断模型的优劣以及是否过拟合,观察模型在测试集上的误差(泛化误差),需要尽可能使训练集和测试集中的额样本互斥,可以采用以下方法从数据集 D D D中产生训练集 S S S和测试集 T T T

评估方法

  • 留出法
    将数据集拆分为S,T, S ∩ T = ∅ ,   S ∪ T = D S \cap T=\varnothing,\ S\cup T=D ST=, ST=D
  • 交叉验证法
    将数据集 D D D拆分为 k k k份,每次选择其中1份作为测试集 T T T,其余为训练集 S S S,通过 k k k次训练取在 T T T上的平均值(回归),投票法(分类)
  • 自助法
    不改变数据集 D D D中的样本量 m m m,期望训练集 S S S中数据样本与 D D D一样。则从原始数据集 D D D中又放回的抽取 m m m个样本得到训练集 S S S,因此 T = D /   S T = D/\ S T=D/ S
    未被抽取的样本的概率为:
    l i m m → ∞ ( 1 − 1 m ) m = 1 e ≈ 0.368 lim_{m\to \infty}(1-\frac{1}{m})^{m}=\frac{1}{e}\approx 0.368 limm(1m1)m=e10.368
    未在训练集中出现样本用于测试也称为包外估计

性能度量

1. 回归模型

回归模型包括线性回归,多元线性回归以及非线性回归(径向基样条回归),常采用均方误差表示模型损失和优劣:
E ( y , y ^ ) = 1 N ∑ i = 1 N ∥ y − y ^ ∥ 2 E(y,\hat{y}) = \frac{1}{N}\sum_{i=1}^{N}\Vert y-\hat{y}\Vert^{2} E(y,y^)=N1i=1Nyy^2
其中, y y y表示真实值, y ^ \hat{y} y^表示预测值。

2. 分类模型

分类模型包括逻辑回归、决策树、支持向量机、KNN(K近邻)。

错误率与精度

E ( f ; D ) = 1 m ∑ i = 1 m I ( f ( x i ) ≠ y i ) E(f;D) = \frac{1}{m}\sum_{i=1}^{m}\mathbb{I}(f(x_{i})\ne y_{i}) E(f;D)=m1i=1mI(f(xi)=yi)
a c c ( f ; D ) = 1 m ∑ i = 1 m I ( f ( x i ) = y i ) = 1 − E ( f ; D ) acc(f;D) = \frac{1}{m}\sum_{i=1}^{m}\mathbb{I}(f(x_{i})=y_{i}) = 1-E(f;D) acc(f;D)=m1i=1mI(f(xi)=yi)=1E(f;D)
首先建立混淆矩阵(真为True,假为False,正例:Positive,反例:Negtive),即

真实值预测值
10
1TPFN
0FPTN

查准率(Precision),查全率(Recall),P-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,
其中,
y y y轴:查准率P 表示预测为1的有多少真实为1
x x x轴:查全率R 表示真实标签为1 的有多少被预测为1
查准率和查全率是一对矛盾的变量,当查准率高时,即只选择有把握的,那么查全率就偏低;当查全率较高时,计算情况是将所有样本均预测为真,R为1,但是查准率就较低了
根据学习器预测,将所有样本按照顺序排列,即预测为1的概率越高,样本就在越前面,然后逐个添加样本并将其作为正例进行预测,计算当前的P,R值,可建立P,R曲线
当一条曲线A包裹住另外一条曲线B,表面A对应学习器的效果更好,
当曲线A,B有交点时,采用“平衡点”(BEP)进行取值,即当P=R时,取具有较大值的曲线对应学习器。

  • F1
    F 1 = 2 1 P + 1 R F1=\frac{2}{\frac{1}{P}+\frac{1}{R}} F1=P1+R12
    即查准率和查全率的调和平均值

ROC

y y y轴:真正例率 T P R TPR TPR(true positive rate):实际为正样本预测成正样本的概率
T P R = T P T P + F N = T P P TPR = \frac{TP}{TP+FN}=\frac{TP}{P} TPR=TP+FNTP=PTP
x x x轴:假正例率 F P R FPR FPR(false positive rate)实际为负样本预测成正样本的概率
F P R = F P F P + T N = F P N FPR = \frac{FP}{FP+TN}=\frac{FP}{N} FPR=FP+TNFP=NFP
其中, P , N P,N P,N分别表示真实的正样本个数和真实的负样本个数
ROC曲线的实现:根据学习器预测对所有样本进行预测,并排序,预测为真的概率越大越靠近前面,然后将每个样本作为正例进行预测,逐步计算当前点的 T P R ,   F P R TPR,\ FPR TPR, FPR,将所有点按顺序连接起来则得到ROC曲线
可以发现:

  • 真正率和假正率这两个指标跟正负样本的比例是无关的
  • 所以当样本比例失衡的情况下,准确率不如真正率、假正率这两个指标好用
  • 当测试集中的正负样本分布发生变化了,ROC曲线可以保持不变

ROC,AUC和P-R曲线的区别:
当出现类别不均衡现象,即正负样本的分布发生变化时,ROC曲线的形状能够基本保持不变,而P-R曲线的形状一般会发生较剧烈的变化。

AUC

AUC值即为ROC曲线与坐标轴的面积,这个面积的数值不会大于1。
又由于ROC曲线一般都处于y=x这条直线的上方,所以AUC的取值范围在0.5和1之间。

AUC就是:随机抽出一对样本 ( 正样本 i , 负样本 j ) ,然后用训练得到的分类器来对这两个样本进行预测,预测得到正样本概率 p r e d i pred_{i} predi>大于负样本概率 p r e d j pred_{j} predj的概率,即正例排在负例前面的概率

使用AUC值作为评价标准是因为很多时候ROC曲线并不能清晰的说明哪个分类器的效果更好,而作为一个数值,对应AUC更大的分类器效果更好。AUC越大,说明分类器越可能把真正的正样本排在前面,分类性能越好。

  • 代价敏感错误率
    当预测错误所造成的代价不同时,需要赋予错误预测不同的代价
    E ( f ; D ; c o s t ) = 1 m ( ∑ x i ∈ D + I ( f ( x i ) ≠ y i ) c o s t 10 + ∑ x i ∈ D − I ( f ( x i ) ≠ y i ) c o s t 01 ) E(f;D;cost) = \frac{1}{m}(\sum_{x_{i}\in D^{+}}\mathbb{I}(f(x_{i})\ne y_{i})cost_{10}+\sum_{x_{i}\in D^{-}}\mathbb{I}(f(x_{i})\ne y_{i})cost_{01}) E(f;D;cost)=m1(xiD+I(f(xi)=yi)cost10+xiDI(f(xi)=yi)cost01)

更多关于AUC,ROC可见: ROC曲线、 AUC值(ROC曲线下的面积)【只能用于二分类模型的评价】【不受类别数量不平衡的影响;不受阈值取值的影响】

偏差与方差

泛化误差
E ( f ; D ) = b i a s 2 ( x ) + v a r ( x ) + ε 2 E(f;D)=bias^{2}(x)+var(x)+\varepsilon^{2} E(f;D)=bias2(x)+var(x)+ε2
其中, f ( x ; D ) f(x;D) f(x;D)为训练集上学的模型 f f f在测试集 x x x上的预测输出。
期望为 f ˉ ( x ) = E D [ f ( x ; D ) ] \bar{f}(x)=\mathbb{E}_{D}[f(x;D)] fˉ(x)=ED[f(x;D)],
偏差: b i a s 2 = ( f ˉ ( x ) − y ) bias^{2} = (\bar{f}(x) - y) bias2=(fˉ(x)y),即预测值与真实值之间的误差
方差: v a r ( x ) = E D [ ( f ( x ; D ) − f ˉ ( x ) ) 2 ] var(x) = \mathbb{E}_{D}[(f(x;D)-\bar{f}(x))^{2}] var(x)=ED[(f(x;D)fˉ(x))2]
噪声: ε 2 = E D [ ( y D − y ) 2 ] \varepsilon^{2}=\mathbb{E}_{D}[(y_{D}-y)^{2}] ε2=ED[(yDy)2],即真实数据与数据集上的噪声之间的均方误差

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值