-
文中提到,在机器学习的过程中,过拟合总是无法彻底避免的。其中,关于P与NP的论述,个人理解为:对于一个有效的算法,它一定要在多项式时间内运行完成。此时,算法可以恰当程度地学习到所需要的知识,也就是说既不会欠拟合,也不会过拟合,此时学习得到的模型是最优的。但是通常而言,机器学习问题是NP-Hard,甚至更难的问题,倘若多项式时间的算法可以解决NP-Hard问题。也就是说,我们创造性地证明了 P = N P P=NP P=NP,这个计算机理论难题。然而,当前我们一般认为NP-Hard问题多项式时间内不可解。也就是说,过拟合总是存在。
-
设计算法得出模型,为了对模型进行评估,有许多评估方法,具体包括:留出法、交叉验证法、自助法。使用这些评估方法,具体地度量指标包括:均方误差、错误率、准确率、查全率、查准率、ROC、AUC、
-
我们可以以查全率为横坐标、查准率为纵坐标得到P-R曲线。如果一个学习器的P-R曲线被另一个学习器完全包住,则后者更优。在两者有交叉时,采用平衡点(break-even point)来进行度量。平衡点定义为P==R的点。平衡点值大的点拥有更优的性能。
-
ROC(Receiver Operating Characteristic, 受试者工作特征),是以假正例率为横坐标,真正例率为纵坐标画出的曲线。这里:
F P R = F P F P + T N , T P R = T P T P + F N FPR=\frac{FP}{FP+TN},\ \ \ \ \ \ TPR=\frac{TP}{TP+FN} FPR=FP+TNFP, TPR=TP+FNTP
与P-R曲线类似,若一个学习器的ROC被另一个学习器所包含,则后者拥有更优的性能。在两者出现交叉时,则需要使用AUC度量,即该图形的面积。用梯形累成的规则:
A
U
C
=
1
2
∑
i
=
1
m
(
x
i
+
1
−
x
i
)
(
y
i
+
1
+
y
i
)
\mathtt{AUC}=\frac{1}{2}\sum_{i=1}^m(x_{i+1}-x_i)(y_{i+1}+y_i)
AUC=21i=1∑m(xi+1−xi)(yi+1+yi)
记:
l
r
a
n
k
=
1
m
+
m
−
∑
x
+
∈
D
+
∑
x
−
∈
D
−
(
I
(
f
(
x
+
)
<
f
(
x
−
)
+
1
2
I
(
f
(
x
+
)
=
f
(
x
−
)
)
)
l_{rank} = \frac{1}{m^+m^-}\sum_{x^+\in D^+}\sum_{x^-\in D^-}(\mathbb{I}(f(x^+)<f(x^-)+\frac{1}{2}\mathbb{I}(f(x^+)=f(x^-)))
lrank=m+m−1x+∈D+∑x−∈D−∑(I(f(x+)<f(x−)+21I(f(x+)=f(x−)))
则有,
A
U
C
=
1
−
l
r
a
n
k
\mathtt{AUC}=1-l_{rank}
AUC=1−lrank.
习题
2.1 按照评估方法中留出法的规则,我们应当尽量保证数据分布的一致性。在不考虑分层抽样的前提下,对于每个差异个人进行划分,这样,在得到的训练/测试集中,应当是700个训练样本,其中正例、反例各350个。则,认为划分方式共有: C 500 350 × C 500 350 C_{500}^{350} \times C_{500}^{350} C500350×C500350.
2.2
采用十折交叉验证法:
数据集分为十份,每份包含十个样本,正例、反例各五个。此时,得到模型进行预测,由于正反例个数相同,则模型进行随机猜测,错误率为 1 2 \frac{1}{2} 21。
采用留一法:
每次留下一份作为测试集,其余样本作为训练集中的样本。可知,当作为测试集的样例是正例,则它必然被预测为反例,同理,若他为反例,则必然被 预测为正例。可知:
E
(
f
∣
D
)
=
1
m
∑
m
I
(
f
(
x
)
≠
y
i
)
=
1
E(f|D)=\frac{1}{m}\sum_m \mathbb{I}(f(x)\ne y_i)=1
E(f∣D)=m1m∑I(f(x)=yi)=1
2.3 举个例子!很好的答案。
2.4
真实情况 | 预测结果 | |
正例 | 反例 | |
正例 | TP(真正例) | FN(假反例) |
反例 | FP(假正例) | TN(真反例) |
KaTeX parse error: No such environment: split at position 8: \begin{̲s̲p̲l̲i̲t̲}̲ &\mathtt{TPR}=…
由公式可知: R = T P R \mathtt{R}=\mathtt{TPR} R=TPR.
2.5 A U C = 1 = l r a n k \mathtt{AUC}=1=l_{rank} AUC=1=lrank
Proof:
l
r
a
n
k
=
1
m
+
m
−
∑
x
+
∈
D
+
∑
x
−
∈
D
−
(
I
(
f
(
x
+
)
<
f
(
x
−
)
)
+
1
2
I
(
f
(
x
+
)
=
f
(
x
−
)
)
)
l_{rank}=\frac{1}{m^+ m^-}\sum_{x^+ \in D^+}\sum_{x^- \in D^-}(\mathbb{I}(f(x^+)<f(x^-))+ \frac{1}{2}\mathbb{I}(f(x^+)=f(x^-)))
lrank=m+m−1x+∈D+∑x−∈D−∑(I(f(x+)<f(x−))+21I(f(x+)=f(x−)))
在
l
r
a
n
k
l_{rank}
lrank的计算过程中,我们发现,它与
A
U
C
\mathtt{AUC}
AUC的计算规则正好相反。首先我们来回顾一下
A
U
C
\mathtt{AUC}
AUC的计算规则:
1) 将学习器对于测试集的预测结果,按照成为正例的预测值大小排序(由大到小)
2) 由第一个样例开始,对于每一个样例,将其预测为正例,计算当前的假正例率、真正例率。
按照计算规则,排序之后,我们一次选定阈值,将大于阈值的的样例判定为正,如果存在多个样例学习器计算出的值相等,首先预测模型会将这些样例都判断为正,那么我们考虑 a) 若这些样例均为真正例,那么对应图形中的线应该是往上(真正例率增加),若均为假正例则往右(假正例率增加),若既有真正例又有假正例则往斜上方。
故而,可以发现, A U C \mathtt{AUC} AUC与样本预测的排序质量有关,若样本的正例预测值总是高于样本反例预测值时,应有 A U C = 1 \mathtt{AUC}=1 AUC=1成立。但是,若出现样本反例预测值高于样本正例预测值,那么就出现图中向右或斜上方移动的情况。即,计算出反例预测值高于正例的个数,即可得到图形中上方空缺出来的面积,也就是说 A U C = 1 − l r a n k \mathtt{AUC}=1 - l_{rank} AUC=1−lrank。
2.6 先来看定义,首先是错误率:
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=1∑mI(f(xi)=yi)
对于ROC曲线,他的横坐标是假正例率,总坐标是真正例率。对于一个学习器,我们选定阈值之后,错误率应该与假正例率相等。
2.7 由代价曲线画法,可得。
2.8 Min−max 规范化方法简单,而且保证规范化后所有元素都是正的,每当有新的元素进来,只有在该元素大于最大值或者小于最小值时才要重新计算全部元素。但是若存在一个极大(小)的元素,会导致其他元素变的非常小(大)。
z−score 标准化对个别极端元素不敏感,且把所有元素分布在00的周围,一般情况下元素越多,00周围区间会分布大部分的元素,每当有新的元素进来,都要重新计算方差与均值。