文章目录
第二章 监督式学习算法
监督学习框架
( x , y ) ∼ P (x,y) \sim \Rho (x,y)∼P ( P \Rho P 是未知的); X ∼ D , y ∼ D x ; y = f ( x ) X \sim D,y \sim D_x;y = f(x) X∼D,y∼Dx;y=f(x)
对于数据
D
=
{
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
⋯
,
(
x
m
,
y
m
)
}
D = \{ (x_1, y_1),(x_2, y_2),\cdots,(x_m, y_m) \}
D={(x1,y1),(x2,y2),⋯,(xm,ym)},从中学习一个函数
g
:
x
→
y
g:x\to y
g:x→y
g
=
L
e
a
r
n
i
n
g
A
l
g
o
r
i
t
h
m
(
D
)
g = Learning~Algorithm(D)
g=Learning Algorithm(D)
- g ∈ H g \in \mathcal H g∈H 称为假设空间或函数空间;
- 函数空间类型包括线性函数空间、多项式函数空间、 核函数、神经网络等。
基本假设
- 数据特征不是无规律出现的,它们服从一定的概率分布!
- 数据的标签也不是无规律生成的,而是服从由数 据特征决定的概率分布!
期望损失
评价 g g g 的效果:损失函数 L : Y × Y → R L:Y×Y \to R L:Y×Y→R
L ( y , g ( x ) ) = { ( y − g ( x ) ) 2 ∏ ( y ≠ g ( x ) ) L(y,g(x))=\begin{cases} (y-g(x))^2 \\ \prod(y \neq g(x)) \end{cases} L(y,g(x))={(y−g(x))2∏(y=g(x))
∀ h ∈ H , ∀ ( x , y ) ∈ P , L ( y , h ( x ) ) \forall h \in H, \forall(x,y)\in \Rho, L(y,h(x)) ∀h∈H,∀(x,y)∈P,L(y,h(x))
h ∗ = a r g m i n R ( h ) h ∈ H h^* = argminR(h) ~~~ h \in H h∗=argminR(h) h∈H
给定样本空间
x
x
x,特征分布
D
D
D,标签分布
D
x
D_\mathrm{x}
Dx 以及损失函数
ℓ
\ell
ℓ。对任意模型 h,定义:
R
(
h
)
=
E
x
∼
D
,
y
∼
D
x
[
ℓ
(
y
,
h
(
x
)
)
]
R(h)=\mathbb{E}_{\mathbf{x}\sim\mathcal{D},\mathbf{y}\sim\mathcal{D}_x}[\ell(\mathbf{y},h(\mathbf{x}))]
R(h)=Ex∼D,y∼Dx[ℓ(y,h(x))]
为模型 h 的期望损失或者风险 (risk)。通过最小化风险来学习一个最优的预测函数:
h
⋆
=
arg
min
R
(
h
)
:
=
E
x
∼
D
,
y
∼
D
x
)
∼
P
[
ℓ
(
y
,
h
(
x
)
)
]
h^{\star}=\arg\min R(h):=\mathbb{E}_{\mathbf{x}\sim\mathcal{D},y\sim\mathcal{D}_{x})\sim\mathcal{P}}[\ell(y,h(\mathbf{x}))]
h⋆=argminR(h):=Ex∼D,y∼Dx)∼P[ℓ(y,h(x))]
贝叶斯风险:
R ⋆ = R ( h ⋆ ) R^{\star}=R(h^{\star}) R⋆=R(h⋆)
但是分布 P P P 是未知的,上述最优化问题是无法 求解的。
经验风险最小化
经验风险最小化 (ERM: Emperical Risk Minimization) 是一种一般性的算法结构:
- 给定一个包含 n 个独立同分布的样本的训练数据集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯ , ( x n , y n ) } \mathcal{D}=\{(\mathbf{x_1},y_1),(\mathbf{x_2},y_2),\cdots,(\mathbf{x_n},y_n)\} D={(x1,y1),(x2,y2),⋯,(xn,yn)}。在数据集中所有数据的平均损失称为 f 的经验损失,记为
R n ( f ) = 1 n ∑ i = 1 n ℓ ( y i , f ( x i ) ) R_n(f)=\frac1n\sum_{i=1}^n\ell(y_i,f(\mathbf{x_i})) Rn(f)=n1i=1∑nℓ(yi,f(xi))
- 经验风险最小化通过最小化 R n ( t ) R_n(t) Rn(t) 来学习一个预测函数:
f n ∈ arg min f ∈ F R n ( f ) f_n\in\arg\min_{f\in\mathcal{F}}R_n(f) fn∈argf∈FminRn(f)
即用 D D D 的经验分布替代 P \Rho P 可计算出经验风险最小化 E R M ERM ERM
h m i n = a r g m i n R n ( h ) h_{min} = argminR_n(h) hmin=argminRn(h)
Hoeffding 不等式
经验损失与期望损失是有区别的。但是当训练数据规模足够大时,Hoeffding 不等式保证了经验损 失能够良好的近似期望损失。
定理
令 X 1 , X 2 , ⋯ , X n X_1,X_2,\cdots,X_n X1,X2,⋯,Xn 为服从独立同分布的随机变量,来自于对称伯努利分布。
即
P
(
X
i
=
+
1
)
=
P
(
X
i
=
−
1
)
=
1
/
2
P(X_i=+1)=P(X_i=-1)=1/2
P(Xi=+1)=P(Xi=−1)=1/2。则有:
P
(
1
n
∑
i
=
1
n
X
i
≥
ϵ
)
≤
e
−
n
ϵ
2
2
\mathbb{P}(\frac1n\sum_{i=1}^nX_i\geq\epsilon)\leq e^{-\frac{n\epsilon^2}2}
P(n1i=1∑nXi≥ϵ)≤e−2nϵ2
证明
根据 Markov 不等式,我们有
P
(
1
n
∑
i
=
1
n
X
i
≥
ϵ
)
=
P
(
e
λ
∑
i
=
1
n
X
i
≥
e
n
λ
ϵ
)
≤
E
[
e
λ
∑
i
=
1
n
X
i
]
e
n
λ
ϵ
=
e
−
n
λ
ϵ
(
Π
i
=
1
n
E
[
e
λ
X
i
]
)
=
e
−
n
λ
ϵ
+
n
Ψ
(
λ
)
\begin{aligned} \mathbb{P}({\frac{1}{n}}\sum_{i=1}^{n}X_{i}\geq\epsilon)& =\mathbb{P}(e^{\lambda\sum_{i=1}^nX_i}\geq e^{n\lambda\epsilon})\leq\frac{\mathbb{E}[e^{\lambda\sum_{i=1}^nX_i}]}{e^{n\lambda\epsilon}} \\ &=e^{-n\lambda\epsilon}(\Pi_{i=1}^n\mathbb{E}[e^{\lambda X_i}])=e^{-n\lambda\epsilon+n\Psi(\lambda)} \end{aligned}
P(n1i=1∑nXi≥ϵ)=P(eλ∑i=1nXi≥enλϵ)≤enλϵE[eλ∑i=1nXi]=e−nλϵ(Πi=1nE[eλXi])=e−nλϵ+nΨ(λ)
其中
Ψ
(
λ
)
=
log
E
[
e
λ
X
]
=
log
(
e
λ
+
e
−
λ
2
)
≤
λ
2
2
\Psi(\lambda)=\log\mathbb{E}[e^{\lambda X}]=\log(\frac{e^\lambda+e^{-\lambda}}2)\leq\frac{\lambda^2}2
Ψ(λ)=logE[eλX]=log(2eλ+e−λ)≤2λ2 因此,有
P ( 1 n ∑ i = 1 n X i ≥ ϵ ) ≤ inf λ > 0 e − n λ ϵ + n Ψ ( λ ) = inf λ > 0 e − n ( λ ϵ − λ 2 / 2 ) = e − n ϵ 2 / 2 \mathbb{P}(\frac1n\sum_{i=1}^nX_i\geq\epsilon)\leq\inf_{\lambda>0}\mathrm{e}^{-n\lambda\epsilon+n\Psi(\lambda)}=\inf_{\lambda>0}\mathrm{e}^{-n(\lambda\epsilon-\lambda^2/2)}=\mathrm{e}^{-n\epsilon^2/2} P(n1i=1∑nXi≥ϵ)≤λ>0infe−nλϵ+nΨ(λ)=λ>0infe−n(λϵ−λ2/2)=e−nϵ2/2
泛化性
- 泛化性指的是模型在面对未见过的数据时的表现能力。一个具有良好泛化性的模型能够对新数据做出准确的预测或者良好的分类。
- 泛化性是评价一个模型的重要指标,因为我们通常希望模型能够适用于多样化的数据,而不仅仅是在训练时所使用的数据集上表现良好。
经验损失 | 测试损失 | 模型效果 |
---|---|---|
较小 | 较小 | 好 |
较小 | 较大 | 过拟合 |
较大 | 较大 | 欠拟合 |
欠拟合
通常出现在以下情况下:
- 模型复杂度过低:如果模型过于简单,无法捕获数据中的复杂关系和模式,就会导致欠拟合。例如,使用线性模型拟合非线性数据。
- 训练数据量不足:当训练数据过少时,模型可能无法学习到数据的真实分布,从而导致欠拟合。这通常发生在数据集规模较小或数据样本不够代表性的情况下。
- 特征选择不当:如果选择的特征不足以描述数据中的变化和关系,也会导致欠拟合。这可能是由于特征提取不充分或特征选择不合适导致的。
解决欠拟合问题的方法包括:
- 增加模型复杂度:使用更复杂的模型,如增加神经网络的层数或节点数,以提高模型的表达能力。
- 增加特征:添加更多的特征,或者对现有特征进行变换、组合,以提供更多的信息给模型。
- 减小正则化:如果使用了正则化项来缓解过拟合,可以考虑减小正则化的程度,以提高模型的拟合能力。
- 增加训练数据:提供更多的训练数据可以帮助模型更好地学习数据的分布和模式。
- 改进特征工程:仔细选择和设计特征,确保特征能够充分描述数据的变化和关系。
过拟合
- 过拟合是指模型在训练时过于关注训练数据的细节和噪声,从而导致在未见过的数据上表现不佳的现象。换句话说,过拟合的模型在训练数据上表现很好,但在新数据上表现较差。
- 过拟合通常是由于模型复杂度过高或训练数据量不足所导致的。过于复杂的模型可以记住训练数据中的噪声和特殊情况,而不是学习到一般性的模式。
为了提高模型的泛化能力并避免过拟合,研究者会采取多种策略,如:
- 数据增强:通过扩大训练数据集,增加数据的多样性,使模型能够学习到更普遍的特征。
- 交叉验证:使用不同的数据子集来训练和验证模型,以评估模型在不同数据集上的表现。
- 正则化:向模型中添加惩罚项,以减少模型复杂度,防止模型学习数据中的噪声。
- 简化模型:选择更简单的模型或减少模型参数的数量,以避免模型过度复杂化
- 早停法(Early Stopping):在训练过程中,一旦发现验证误差开始增加,就停止训练,以防止模型在训练数据上过度拟合。
奥卡姆剃刀原则
(奥卡姆剃刀:如无必要,勿增实体)
“奥卡姆剃刀” (Occam’s razor)是一种常用的、自然科学研究中最基本的原则,即 “若有多个假设与观察一致,则选最简单的那个”。如果采用这个原则,并且假设我们认为“更平滑”意味着“更简单”。
注意:奥卡姆剃刀并非唯一可行的原则。退一步说,即便假定我们是奥卡姆 剃刀的铁杆拥龛,也需注意到,奥卡姆剃刀本身存在不同的诠释,使用奥卡姆剃刀原则并不平凡。
正则化方法
考虑一个参数模型
g
=
g
(
w
;
x
)
g = g(\mathbf w; \mathbf x)
g=g(w;x)
min
w
∈
R
p
1
n
∑
i
=
1
n
ℓ
(
y
i
,
g
(
w
,
x
i
)
)
+
λ
∥
w
∥
2
2
L2 正则化
\begin{aligned}\min_{\mathbf{w}\in\mathbb{R}^p}\frac1n\sum_{i=1}^n\ell(y_i,\mathbf{g}(\mathbf{w},\mathbf{x_i}))+\lambda\Vert\mathbf{w}\Vert_2^2&&\text{L2 正则化}\end{aligned}
w∈Rpminn1i=1∑nℓ(yi,g(w,xi))+λ∥w∥22L2 正则化
min w ∈ R p 1 n ∑ i = 1 n ℓ ( y i , g ( w , x i ) ) + λ ∥ w ∥ 1 L1 正则化 \begin{aligned}\min_{\mathbf{w}\in\mathbb{R}^p}\frac1n\sum_{i=1}^n\ell(y_i,\mathbf{g}(\mathbf{w},\mathbf{x_i}))+\lambda\Vert\mathbf{w}\Vert_1&&\text{L1 正则化}\end{aligned} w∈Rpminn1i=1∑nℓ(yi,g(w,xi))+λ∥w∥1L1 正则化
模型评估的标准
-
预测性能指标:分为训练集的预测性能和测试集的预测性能
-
回归算法评价指标:决定系数 ( R 2 ) R^2) R2)、均方误差、平均绝对误差等。
-
分类算法评价指标:准确率、召回率、F-1 得分、 ROC 曲线、AUC 等
-
-
时间复杂度:模型求解所需要的时间。和数据规模、特征维度、模型、优化算法、容忍误差、代码等有关
-
空间复杂度:数据、参数、中间变量所需要的存
储空间规模。
回归与分类
-
监督学习 D = { ( x i , y i ) } i = 1 n D = \{(x_i,y_i)\}^n_{i=1} D={(xi,yi)}i=1n
- x i = ( x i 1 , ⋯ , x i p ) x_i = (x_{i1},\cdots,x_{ip}) xi=(xi1,⋯,xip) 表示第 i i i 个样本的特征向量,相对容易获得
- y y y 表示第 i i i 个样本的标签值,相对难获得,需要根据特征来预测
-
回归与分类问题的区别主要在标签的取值范围
-
回归问题:最小化平方损失学习预测函数
m i n 1 n ∑ i = 1 n ( y i − f ( x i ; w ) ) 2 min\frac{1}{n}\sum^n_{i=1}(y_i-f(x_i;w))^2 minn1i=1∑n(yi−f(xi;w))2
-
分类问题:最小化交叉熵损失
m i n 1 n ∑ i = 1 n − ( y i l o g ( p i ) + ( 1 − y i ) l o g ( 1 − p i ) ) min\frac{1}{n}\sum^n_{i=1}−(y_i log(p_i) + (1 − y_i)log(1 − p_i)) minn1i=1∑n−(yilog(pi)+(1−yi)log(1−pi))
-
-
给定数据集,求解优化问题,学习预测函数
- 回归问题: y ^ = f ( x ; w ^ ) \hat y = f(x; \hat w) y^=f(x;w^)
- 分类问题: p ^ = σ ( g ( x ; w ^ ) \hat p = σ(g(x; \hat w) p^=σ(g(x;w^)
回归算法评价指标
绝对误差
-
平均绝对值误差:
M A E ( y , y ^ ) = 1 n ∑ i = 1 n ( ∣ y i − y ^ i ∣ ) MAE(y, \hat y) = \frac{1}{n}\sum^n_{i=1} (|y_i − \hat y_i |) MAE(y,y^)=n1i=1∑n(∣yi−y^i∣)
-
均方误差:
M S E ( y , y ^ ) = 1 n ∑ i = 1 n ( y i − y ^ i ) 2 MSE(y, \hat y) = \frac{1}{n}\sum^n_{i=1}(y_i − \hat y_i)^2 MSE(y,y^)=n1i=1∑n(yi−y^i)2
-
均方根误差:
R M S E ( y , y ^ ) = 1 n ∑ i = 1 n ( y i − y ^ i ) 2 RMSE(y, \hat y) = \sqrt{\frac{1}{n}\sum^n_{i=1}(y^i − \hat y_i)^2} RMSE(y,y^)=n1i=1∑n(yi−y^i)2
相对误差
-
平均绝对百分比误差:
M A P E ( y , y ^ ) = 1 n ∑ i = 1 n ( ∣ y i − y ^ i ∣ ) m a x ( ϵ , ∣ y i ∣ ) MAPE(y, \hat y) = \frac{1}{n}\sum^n_{i=1}\frac{(|y_i − \hat y_i |)}{max(\epsilon, |y_i|)} MAPE(y,y^)=n1i=1∑nmax(ϵ,∣yi∣)(∣yi−y^i∣)
-
可解释变异: 越大越好
E V ( y , y ^ ) = 1 − V a r ( y − y ^ ) V a r ( y ) = 1 − ∑ [ ( y i − y ^ i ) − 1 n ∑ ( y i − y ^ i ) ] 2 ∑ ( y i − y ˉ i ) 2 = 1 − ∑ ( e i − e ˉ i ) 2 ∑ ( y i − y ˉ i ) 2 = 1 − ∑ e i 2 ∑ ( y i − y ˉ i ) 2 = R 2 ( y , y ^ ) \begin{aligned} EV(y, \hat y) & = 1 − \frac{Var(y − \hat y)} {Var(y)} \\ & = 1 - \frac{\sum[(y_i − \hat y_i)-\frac{1}{n}\sum(y_i-\hat y_i)]^2} {\sum(y_i-\bar y_i)^2} \\ & = 1 - \frac{\sum(e_i − \bar e_i)^2}{\sum(y_i-\bar y_i)^2} \\ & = 1 - \frac{\sum e_i^2}{\sum(y_i-\bar y_i)^2} \\ & = R^2(y,\hat y) \end{aligned} EV(y,y^)=1−Var(y)Var(y−y^)=1−∑(yi−yˉi)2∑[(yi−y^i)−n1∑(yi−y^i)]2=1−∑(yi−yˉi)2∑(ei−eˉi)2=1−∑(yi−yˉi)2∑ei2=R2(y,y^)
-
决定系数: 越大越好
R 2 ( y , y ^ ) = 1 − ∑ i = 1 n ( y i − y ^ i ) 2 ∑ i = 1 n ( y i − y ˉ i ) 2 R^2 (y, \hat y) = 1 − \frac{\sum^n_{i=1}(y_i − \hat y_i)^2} {\sum^n_{i=1}(y_i − \bar y_i)^2} R2(y,y^)=1−∑i=1n(yi−yˉi)2∑i=1n(yi−y^i)2
相应的回归模型预测误差可以写成:
S
S
T
=
∑
i
=
1
n
(
y
i
−
y
ˉ
)
2
SST = ∑^n_{i=1} (y_i − \bar y)^2
SST=i=1∑n(yi−yˉ)2
S S T = ∑ i = 1 n ( y i − y ^ i + y ^ i − y ˉ ) 2 = ∑ i = 1 n [ ( y i − y ^ i ) 2 + 2 ( y i − y ^ i ) ( y ^ i − y ˉ ) + ( y ^ i − y ˉ ) 2 ] = ∑ i = 1 n ( y i − y ^ i ) 2 + ∑ i = 1 n ( y ^ i − y ˉ ) 2 + 2 ∑ i = 1 n ( y i − y ^ i ) ( y ^ i − y ˉ ) = ∑ i = 1 n ( y i − y ^ i ) 2 + ∑ i = 1 n ( y ^ i − y ˉ ) 2 = S S E + S S R \begin{aligned} SST & = {\sum^n_{i=1}}(y_i − \hat y_i + \hat y_i − \bar y)^2 \\ & = {\sum^n_{i=1}}[(y_i − \hat y_i)^2 + 2(y_i − \hat y_i)(\hat y_i − \bar y) + (\hat y_i − \bar y)^2 ] \\ & = {\sum^n_{i=1}} (y_i − \hat y_i)^2 + {\sum^n_{i=1}} (\hat y_i − \bar y)^2 + 2{\sum^n_{i=1}}(y_i − \hat y_i)(\hat y_i − \bar y) \\ & = {\sum^n_{i=1}} (y_i − \hat y_i)^2 + {\sum^n_{i=1}} (\hat y_i − \bar y)^2 \\ & = SSE + SSR \end{aligned} SST=i=1∑n(yi−y^i+y^i−yˉ)2=i=1∑n[(yi−y^i)2+2(yi−y^i)(y^i−yˉ)+(y^i−yˉ)2]=i=1∑n(yi−y^i)2+i=1∑n(y^i−yˉ)2+2i=1∑n(yi−y^i)(y^i−yˉ)=i=1∑n(yi−y^i)2+i=1∑n(y^i−yˉ)2=SSE+SSR
计算 ∑ i = 1 n ( y i − y ^ i ) ( y ^ i − y ˉ ) {\sum^n_{i=1}} (y_i − \hat y_i)(\hat y_i − \bar y) ∑i=1n(yi−y^i)(y^i−yˉ)
∑ i = 1 n ( y i − y ^ i ) ( y ^ i − y ˉ ) = ∑ i = 1 n ( y i − y ^ i ) y ^ − ∑ i = 1 n ( y i − y ^ i ) y ˉ = ∑ i = 1 n ( y i − y ^ i ) y ^ = ( y 1 − y ^ 1 ⋯ y n − y ^ n ) ( y ^ 1 ⋮ y ^ 2 ) = ( y − y ^ ) T y ^ \begin{aligned} & ~~~~~{\sum^n_{i=1}} (y_i − \hat y_i)(\hat y_i − \bar y) \\ & = {\sum^n_{i=1}} (y_i − \hat y_i)\hat y - {\sum^n_{i=1}} (y_i − \hat y_i) \bar y \\ & = {\sum^n_{i=1}} (y_i − \hat y_i)\hat y \\ & = \begin{pmatrix} y_1-\hat y_1 & \cdots & y_n-\hat y_n \end{pmatrix} \begin{pmatrix} \hat y_1 \\ \vdots \\ \hat y_2 \\ \end{pmatrix} \\ & = (y-\hat y)^T \hat y \end{aligned} i=1∑n(yi−y^i)(y^i−yˉ)=i=1∑n(yi−y^i)y^−i=1∑n(yi−y^i)yˉ=i=1∑n(yi−y^i)y^=(y1−y^1⋯yn−y^n) y^1⋮y^2 =(y−y^)Ty^
替换
y
^
=
H
y
\hat y = Hy
y^=Hy,
H
H
H为帽子矩阵
=
(
y
−
H
y
)
T
H
y
=
y
T
(
E
−
H
)
T
H
y
= (y-Hy)^THy = y^T(E-H)^THy
=(y−Hy)THy=yT(E−H)THy
分类算法评价指标
True Positive(TP)
:
y
=
1
,
y
^
=
1
y = 1, \hat y = 1
y=1,y^=1
False Negative(FN)
:
y
=
1
,
y
^
=
0
y = 1, \hat y = 0
y=1,y^=0
False Positive(FP)
:
y
=
0
,
y
^
=
1
y = 0, \hat y = 1
y=0,y^=1
True Negative(TN)
:
y
=
0
,
y
^
=
0
y = 0, \hat y = 0
y=0,y^=0
混淆矩阵 (Confusion matrix
):
T P + F N = P , F P + T N = N TP + FN = P, FP + TN = N TP+FN=P,FP+TN=N
y ^ = 1 \hat y=1 y^=1 | y ^ = 0 \hat y=0 y^=0 | ||
---|---|---|---|
y = 1 y=1 y=1 | T P = 4 TP=4 TP=4 | F N = 1 FN=1 FN=1 | P = 5 P=5 P=5 |
y = 0 y=0 y=0 | F P = 2 FP=2 FP=2 | T N = 3 TN=3 TN=3 | N = 5 N=5 N=5 |
T P R = T P T P + F N , T N R = T N T N + F P TPR = {\Large \frac{TP}{TP + FN}}, TNR = {\Large \frac{TN} {TN + FP}} TPR=TP+FNTP,TNR=TN+FPTN
y ^ = 1 \hat y=1 y^=1 | y ^ = 0 \hat y=0 y^=0 | ||
---|---|---|---|
y = 1 y=1 y=1 | T P R = 4 5 TPR=\large \frac{4}{5} TPR=54 | F N R = 1 5 FNR=\large \frac{1}{5} FNR=51 | P = 5 P=5 P=5 |
y = 0 y=0 y=0 | F P R = 2 5 FPR=\large \frac{2}{5} FPR=52 | T N R = 3 5 TNR=\large \frac{3}{5} TNR=53 | N = 5 N=5 N=5 |
准确率 (Accuracy
):
A c c u r a c y = T P + T N T P + F N + F P + T N = T P + T N N + P Accuracy = \frac{TP + TN} {TP + FN + FP + TN} = \frac{TP + TN} {N + P} Accuracy=TP+FN+FP+TNTP+TN=N+PTP+TN
分类错误率 (Classification error
):
C l a s s i f i c a t i o n e r r o r = 1 − A c c u r a c y = F N + F P P + N \begin{aligned} Classification error & = 1 − Accuracy \\\\ & = \frac{FN + FP} {P + N} \end{aligned} Classificationerror=1−Accuracy=P+NFN+FP
召回率 (Recall
)
也称为查全率或真阳性率 (True Positive Rate
),
R
e
c
a
l
l
=
T
P
R
=
T
P
T
P
+
F
N
Recall = TPR = \frac{TP} {TP + FN}
Recall=TPR=TP+FNTP
精确率 (Precision
)
也称为查准率
P
r
e
c
i
s
i
o
n
=
T
P
T
P
+
F
P
Precision = \frac{TP} {TP + FP}
Precision=TP+FPTP
ROC 曲线
ROC 曲线提供了一个直观的方式来比较不同分类模型的性能。曲线越靠近左上角,说明模型的分类性能越好。
改变阈值
δ
δ
δ 的值,可以得到不同的混淆矩阵,
F
P
R
FPR
FPR 和
T
P
R
TPR
TPR 也会随之变化:
阈值
FPR
TPR
0.1
1
1
0.2
4
/
5
1
0.3
3
/
5
1
0.4
3
/
5
4
/
5
0.5
2
/
5
4
/
5
0.6
2
/
5
3
/
5
0.7
1
/
5
3
/
5
0.8
0
2
/
5
0.9
0
1
/
5
1.0
0
0
\begin{array}{|c|c|c|} \hline \text { 阈值 } & \text { FPR } & \text { TPR } \\ \hline 0.1 & 1 & 1 \\ \hline 0.2 & 4 / 5 & 1 \\ \hline 0.3 & 3 / 5 & 1 \\ \hline 0.4 & 3 / 5 & 4 / 5 \\ \hline 0.5 & 2 / 5 & 4 / 5 \\ \hline 0.6 & 2 / 5 & 3 / 5 \\ \hline 0.7 & 1 / 5 & 3 / 5 \\ \hline 0.8 & 0 & 2 / 5 \\ \hline 0.9 & 0 & 1 / 5 \\ \hline 1.0 & 0 & 0 \\ \hline \end{array}
阈值 0.10.20.30.40.50.60.70.80.91.0 FPR 14/53/53/52/52/51/5000 TPR 1114/54/53/53/52/51/50
以
F
P
R
FPR
FPR 为横坐标,
T
P
R
TPR
TPR 为纵坐标画出来的曲线, 即为 ROC(Receive Operating Characteristic)
曲线。
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/4f7d75c06b16fb42bd2971ac770de174.png)
AUC
AUC(Area Under the Curve)是 ROC 曲线下的面积,它是评估二元分类模型性能的一个重要指标。AUC 提供了一个介于 0 和 1 之间的数值,用于量化模型区分正类和负类的能力。AUC 的值越接近 1,模型的分类性能越好;AUC 为 0.5 时,表示模型的分类能力与随机猜测相当。
数据集拆分
留出法
留出法 (Hold-out
) 直接将数据集
D
D
D 划分成 3 个互斥的集合,其中一个用作训练集
S
S
S,一个作为验证集
V
V
V,一个作为测试集
T
\mathrm{T}
T 。适合于样本规模较大的情形。
-
各数据集解释
-
训练集 (
training set
):用来训练拟合一个模型 (预先设定超参数值); -
验证集 (
validation set
):不是必须的,可以用来帮助选择超参数等; -
测试集 (
test set
):评估最终所选择的模型的测试误差。
-
-
注意事项:
-
训练/验证/测试集的划分需要尽可能的保持数据分布的一致性;
-
由于数据集划分的随机性,使得单次使用留出法得到的估计结果往往不够可靠稳定,在具体应用时,需要进行多次随机划分,多次重复进行试验评估后取平均值作为留出法的评估结果
-
常见的做法是使用 2 3 ∼ 4 5 \frac{2}{3} \sim \frac{4}{5} 32∼54 的样本作为训练集,其他样本作为测试集。
-
交叉验证法
交叉验证法 (cross validation
) 是指随机的将整个数据集随机均匀的划分成
k
\mathrm{k}
k 个互斥的子集。
D
=
D
1
∪
D
2
∪
D
3
∪
⋯
∪
D
k
D=D_1 \cup D_2 \cup D_3 \cup \cdots \cup D_k
D=D1∪D2∪D3∪⋯∪Dk
- 每次选择 1 个子集作为测试集,其余 k − 1 k-1 k−1 个子集作为训练集,训练机器学习模型 f i f_i fi
- 将在训练集上得到的模型在测试集上测试,得到评估结果 E i E_i Ei 重复上述步骤 k \mathrm{k} k 次, k \mathrm{k} k 轮的性能指标的均值 E = 1 k ∑ i = 1 k E i E=\frac{1}{k} \sum_{i=1}^k E_i E=k1∑i=1kEi 作为最终的评价结果
- 称为
k
k
k 折交叉验证 (
k-fold cross validation
)。 k k k 值常取为 5 或者 10 - k k k 折交叉验证法通常要随机使用不同的划分重复 p p p 次。称为 p p p 次 k k k 折交叉验证。
留一法
- 假定原数据集 D 中包含
n
\mathrm{n}
n 个样本,令
k
=
n
k=n
k=n 得到的
n
n
n 折交叉验证法即为留一法 (
Leave-one-out: LOO
)。 - 留一法不受随机样本划分方式的影响,因而不需要重复多次。
- 留一法的缺陷在于,当数据集比较大时,训练 n n n个模型的计算开销也更大。
自助法
自助采样法 (bootstrap sampling
) 来得到训练子集。
-
在给定包含 m \mathrm m m 个样本的数据集,我们随机选择一个样本放入采样集中,再把该样本放回初始数据集,使得下次采样时该样本能有机会被抽中 (即有放回的抽样)。
-
重复上述过程 m \mathrm m m 次,得到一个包含 m \mathrm m m 个样本的子集,有一部分原始样本出现在改子集中,有一部分未出现
一个样本在 m \mathrm m m 次抽样中始终未被抽中的概率为
lim m → ∞ ( 1 − 1 m ) m = 1 e ≈ 0.368 \lim_{m\to\infty}(1-\frac{1}{m})^m=\frac{1}{e}\approx0.368 m→∞lim(1−m1)m=e1≈0.368
- 假设生成了 k \mathrm k k 个子集,一个样本同时不出现在这 k \mathrm k k 个子集中的概率为:
( 0.368 ) k ≈ 0 \begin{aligned}(0.368)^k\approx0\end{aligned} (0.368)k≈0