监督学习 D = { ( x i , y i ) } i = 1 n D = \{(x_i,y_i)\}^n_{i=1} D={(xi,yi)}i=1n
回归与分类问题的区别主要在标签的取值范围
回归问题:最小化平方损失学习预测函数
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))
给定数据集,求解优化问题,学习预测函数
平均绝对值误差:
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(FP)
: 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
改变阈值 δ δ δ 的值,可以得到不同的混淆矩阵, 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)
曲线。
- 从数据集 D = { ( x i , y i ) } i = 1 n D = \{(x_i , y_i)\}^n_{i=1} D={(xi,yi)}i=1n 中学习得到的预测函数 f ( x ; w ^ ) f(x; \hat w) f(x;w^) 的性能如何评估?
- 计算预测函数 f ( x ; w ^ ) f(x; \hat w) f(x;w^) 在训练数据集 D = { ( x i , y i ) } i = 1 n D = \{(x_i , y_i)\}^n_{i=1} D={(xi,yi)}i=1n 的评价指标
- 训练误差不是合适的评估算法性能!
- 需要基于一个测试集 D ′ = { ( x n + i , y n + i ) } i = 1 m D' = \{(x_{n+i} , y_{n+i})\}^m_{i=1} D′={(xn+i,yn+i)}i=1m 来估 计算法的性能
- 测试数据集与训练数据集是不同的
- 在一个测试集上的误差称为测试误差。
- 测试集与训练集来自相同分布,并且是相互独立的。
- 如何构造测试数据集?
- 留出法
- 交叉验证法
- 自助法
留出法 (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
k-fold cross validation
)。 k k k 值常取为 5 或者 10Leave-one-out: LOO
)。自助采样法 (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
( 0.368 ) k ≈ 0 \begin{aligned}(0.368)^k\approx0\end{aligned} (0.368)k≈0