深度学习第二章:机器学习基础(4)【笔记】

2.14 线性判别分析(LDA)

2.14.1 LDA思想总结

​ 线性判别分析(Linear Discriminant Analysis,LDA)是一种经典的降维方法。和主成分分析PCA不考虑样本类别输出的无监督降维技术不同,LDA是一种监督学习的降维技术,数据集的每个样本有类别输出。

LDA分类思想简单总结如下:

  1. 多维空间中,数据处理分类问题较为复杂,LDA算法将多维空间中的数据投影到一条直线上,将d维数据转化成1维数据进行处理。
  2. 对于训练数据,设法将多维数据投影到一条直线上,同类数据的投影点尽可能接近,异类数据点尽可能远离。
  3. 对数据进行分类时,将其投影到同样的这条直线上,再根据投影点的位置来确定样本的类别。

如果用一句话概括LDA思想,即“投影后类内方差最小,类间方差最大”。

2.14.2 图解LDA核心思想

​ 假设有红、蓝两类数据,这些数据特征均为二维,如下图所示。我们的目标是将这些数据投影到一维,让每一类相近的数据的投影点尽可能接近,不同类别数据尽可能远,即图中红色和蓝色数据中心之间的距离尽可能大。

左图和右图是两种不同的投影方式。

​ 左图思路:让不同类别的平均点距离最远的投影方式。

​ 右图思路:让同类别的数据挨得最近的投影方式。

​ 从上图直观看出,右图红色数据和蓝色数据在各自的区域来说相对集中,根据数据分布直方图也可看出,所以右图的投影效果好于左图,左图中间直方图部分有明显交集。

​ 以上例子是基于数据是二维的,分类后的投影是一条直线。如果原始数据是多维的,则投影后的分类面是一低维的超平面。

2.14.3 二类LDA算法原理

​ 输入:数据集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x m , y m ) } ​ D=\{(\boldsymbol x_1,\boldsymbol y_1),(\boldsymbol x_2,\boldsymbol y_2),...,(\boldsymbol x_m,\boldsymbol y_m)\}​ D={(x1,y1),(x2,y2),...,(xm,ym)},其中样本 x i ​ \boldsymbol x_i ​ xi 是n维向量, y i ϵ { 0 , 1 } ​ \boldsymbol y_i \epsilon \{0, 1\}​ yiϵ{0,1},降维后的目标维度 d ​ d​ d。定义

N j ( j = 0 , 1 ) N_j(j=0,1) Nj(j=0,1) 为第 j j j 类样本个数;

X j ( j = 0 , 1 ) X_j(j=0,1) Xj(j=0,1) 为第 j j j 类样本的集合;

u j ( j = 0 , 1 ) ​ u_j(j=0,1)​ uj(j=0,1) 为第 j ​ j​ j 类样本的均值向量;

∑ j ( j = 0 , 1 ) \sum_j(j=0,1) j(j=0,1) 为第 j j j 类样本的协方差矩阵。

​ 其中
u j = 1 N j ∑ x ϵ X j x ( j = 0 , 1 ) , ∑ j = ∑ x ϵ X j ( x − u j ) ( x − u j ) T ( j = 0 , 1 ) u_j = \frac{1}{N_j} \sum_{\boldsymbol x\epsilon X_j}\boldsymbol x(j=0,1), \sum_j = \sum_{\boldsymbol x\epsilon X_j}(\boldsymbol x-u_j)(\boldsymbol x-u_j)^T(j=0,1) uj=Nj1xϵXjx(j=0,1)j=xϵXj(xuj)(xuj)T(j=0,1)
​ 假设投影直线是向量 w \boldsymbol w w,对任意样本 x i \boldsymbol x_i xi,它在直线 w w w上的投影为 w T x i \boldsymbol w^Tx_i wTxi,两个类别的中心点 u 0 u_0 u0, $u_1 $在直线 w w w 的投影分别为 w T u 0 \boldsymbol w^Tu_0 wTu0 w T u 1 \boldsymbol w^Tu_1 wTu1

​ LDA的目标是让两类别的数据中心间的距离 ∥ w T u 0 − w T u 1 ∥ 2 2 \| \boldsymbol w^Tu_0 - \boldsymbol w^Tu_1 \|^2_2 wTu0wTu122 尽量大,与此同时,希望同类样本投影点的协方差 w T ∑ 0 w \boldsymbol w^T \sum_0 \boldsymbol w wT0w w T ∑ 1 w \boldsymbol w^T \sum_1 \boldsymbol w wT1w 尽量小,最小化 w T ∑ 0 w + w T ∑ 1 w ​ \boldsymbol w^T \sum_0 \boldsymbol w + \boldsymbol w^T \sum_1 \boldsymbol w​ wT0w+wT1w
​ 定义
​ 类内散度矩阵
S w = ∑ 0 + ∑ 1 = ∑ x ϵ X 0 ( x − u 0 ) ( x − u 0 ) T + ∑ x ϵ X 1 ( x − u 1 ) ( x − u 1 ) T S_w = \sum_0 + \sum_1 = \sum_{\boldsymbol x\epsilon X_0}(\boldsymbol x-u_0)(\boldsymbol x-u_0)^T + \sum_{\boldsymbol x\epsilon X_1}(\boldsymbol x-u_1)(\boldsymbol x-u_1)^T Sw=0+1=xϵX0(xu0)(xu0)T+xϵX1(xu1)(xu1)T
​ 类间散度矩阵 S b = ( u 0 − u 1 ) ( u 0 − u 1 ) T S_b = (u_0 - u_1)(u_0 - u_1)^T Sb=(u0u1)(u0u1)T

​ 据上分析,优化目标为
KaTeX parse error: Got function '\boldsymbol' with no arguments as subscript at position 20: …thop{\arg\max}_\̲b̲o̲l̲d̲s̲y̲m̲b̲o̲l̲ ̲w J(\boldsymbol…
​ 根据广义瑞利商的性质,矩阵 S w − 1 S b S^{-1}_{w} S_b Sw1Sb 的最大特征值为 J ( w ) J(\boldsymbol w) J(w) 的最大值,矩阵 S w − 1 S b S^{-1}_{w} S_b Sw1Sb 的最大特征值对应的特征向量即为 w \boldsymbol w w

2.14.4 LDA算法流程总结

LDA算法降维流程如下:

​ 输入:数据集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x m , y m ) } D = \{ (x_1,y_1),(x_2,y_2), ... ,(x_m,y_m) \} D={(x1,y1),(x2,y2),...,(xm,ym)},其中样本 $x_i $ 是n维向量, y i ϵ { C 1 , C 2 , . . . , C k } y_i \epsilon \{C_1, C_2, ..., C_k\} yiϵ{C1,C2,...,Ck},降维后的目标维度 d d d

​ 输出:降维后的数据集 D ‾ \overline{D} D

步骤:

  1. 计算类内散度矩阵 S w S_w Sw
  2. 计算类间散度矩阵 S b ​ S_b​ Sb
  3. 计算矩阵 S w − 1 S b ​ S^{-1}_wS_b​ Sw1Sb
  4. 计算矩阵 S w − 1 S b S^{-1}_wS_b Sw1Sb 的最大的 d 个特征值。
  5. 计算 d 个特征值对应的 d 个特征向量,记投影矩阵为 W 。
  6. 转化样本集的每个样本,得到新样本 P i = W T x i ​ P_i = W^Tx_i​ Pi=WTxi
  7. 输出新样本集 D ‾ = { ( p 1 , y 1 ) , ( p 2 , y 2 ) , . . . , ( p m , y m ) } ​ \overline{D} = \{ (p_1,y_1),(p_2,y_2),...,(p_m,y_m) \}​ D={(p1,y1),(p2,y2),...,(pm,ym)}

2.14.5 LDA和PCA区别

异同点LDAPCA
相同点1. 两者均可以对数据进行降维;
2. 两者在降维时均使用了矩阵特征分解的思想;
3. 两者都假设数据符合高斯分布;
不同点有监督的降维方法;无监督的降维方法;
降维最多降到k-1维;降维多少没有限制;
可以用于降维,还可以用于分类;只用于降维;
选择分类性能最好的投影方向;选择样本点投影具有最大方差的方向;
更明确,更能反映样本间差异;目的较为模糊;

2.14.6 LDA优缺点

优缺点简要说明
优点1. 可以使用类别的先验知识;
2. 以标签、类别衡量差异性的有监督降维方式,相对于PCA的模糊性,其目的更明确,更能反映样本间的差异;
缺点1. LDA不适合对非高斯分布样本进行降维;
2. LDA降维最多降到分类数k-1维;
3. LDA在样本分类信息依赖方差而不是均值时,降维效果不好;
4. LDA可能过度拟合数据。

2.15 主成分分析(PCA)

2.15.1 主成分分析(PCA)思想总结

  1. PCA就是将高维的数据通过线性变换投影到低维空间上去。
  2. 投影思想:找出最能够代表原始数据的投影方法。被PCA降掉的那些维度只能是那些噪声或是冗余的数据。
  3. 去冗余:去除可以被其他向量代表的线性相关向量,这部分信息量是多余的。
  4. 去噪声,去除较小特征值对应的特征向量,特征值的大小反映了变换后在特征向量方向上变换的幅度,幅度越大,说明这个方向上的元素差异也越大,要保留。
  5. 对角化矩阵,寻找极大线性无关组,保留较大的特征值,去除较小特征值,组成一个投影矩阵,对原始样本矩阵进行投影,得到降维后的新样本矩阵。
  6. 完成PCA的关键是——协方差矩阵。协方差矩阵,能同时表现不同维度间的相关性以及各个维度上的方差。协方差矩阵度量的是维度与维度之间的关系,而非样本与样本之间。
  7. 之所以对角化,因为对角化之后非对角上的元素都是0,达到去噪声的目的。对角化后的协方差矩阵,对角线上较小的新方差对应的就是那些该去掉的维度。所以我们只取那些含有较大能量(特征值)的维度,其余的就舍掉,即去冗余。

2.15.2 图解PCA核心思想

​ PCA可解决训练数据中存在数据特征过多或特征累赘的问题。核心思想是将m维特征映射到n维(n < m),这n维形成主元,是重构出来最能代表原始数据的正交特征。

​ 假设数据集是m个n维, ( x ( 1 ) , x ( 2 ) , ⋯   , x ( m ) ) (\boldsymbol x^{(1)}, \boldsymbol x^{(2)}, \cdots, \boldsymbol x^{(m)}) (x(1),x(2),,x(m))。如果 n = 2 n=2 n=2,需要降维到 n ′ = 1 n'=1 n=1,现在想找到某一维度方向代表这两个维度的数据。下图有 u 1 , u 2 u_1, u_2 u1,u2两个向量方向,但是哪个向量才是我们所想要的,可以更好代表原始数据集的呢?

从图可看出, u 1 u_1 u1 u 2 u_2 u2好,为什么呢?有以下两个主要评价指标:

  1. 样本点到这个直线的距离足够近。
  2. 样本点在这个直线上的投影能尽可能的分开。

如果我们需要降维的目标维数是其他任意维,则:

  1. 样本点到这个超平面的距离足够近。
  2. 样本点在这个超平面上的投影能尽可能的分开。

2.15.3 PCA算法推理

下面以基于最小投影距离为评价指标推理:

​ 假设数据集是m个n维, ( x ( 1 ) , x ( 2 ) , . . . , x ( m ) ) (x^{(1)}, x^{(2)},...,x^{(m)}) (x(1),x(2),...,x(m)),且数据进行了中心化。经过投影变换得到新坐标为 w 1 , w 2 , . . . , w n {w_1,w_2,...,w_n} w1,w2,...,wn,其中 w w w 是标准正交基,即 ∥ w ∥ 2 = 1 \| w \|_2 = 1 w2=1 w i T w j = 0 w^T_iw_j = 0 wiTwj=0

​ 经过降维后,新坐标为 { w 1 , w 2 , . . . , w n } \{ w_1,w_2,...,w_n \} {w1,w2,...,wn},其中 n ′ n' n 是降维后的目标维数。样本点 x ( i ) x^{(i)} x(i) 在新坐标系下的投影为 z ( i ) = ( z 1 ( i ) , z 2 ( i ) , . . . , z n ′ ( i ) ) z^{(i)} = \left(z^{(i)}_1, z^{(i)}_2, ..., z^{(i)}_{n'} \right) z(i)=(z1(i),z2(i),...,zn(i)),其中 z j ( i ) = w j T x ( i ) z^{(i)}_j = w^T_j x^{(i)} zj(i)=wjTx(i) x ( i ) ​ x^{(i)} ​ x(i) 在低维坐标系里第 j 维的坐标。

​ 如果用 $z^{(i)} $ 去恢复 x ( i ) x^{(i)} x(i) ,则得到的恢复数据为 x ^ ( i ) = ∑ j = 1 n ′ x j ( i ) w j = W z ( i ) \widehat{x}^{(i)} = \sum^{n'}_{j=1} x^{(i)}_j w_j = Wz^{(i)} x (i)=j=1nxj(i)wj=Wz(i),其中 W W W为标准正交基组成的矩阵。

​ 考虑到整个样本集,样本点到这个超平面的距离足够近,目标变为最小化 ∑ i = 1 m ∥ x ^ ( i ) − x ( i ) ∥ 2 2 \sum^m_{i=1} \| \hat{x}^{(i)} - x^{(i)} \|^2_2 i=1mx^(i)x(i)22 。对此式进行推理,可得:
∑ i = 1 m ∥ x ^ ( i ) − x ( i ) ∥ 2 2 = ∑ i = 1 m ∥ W z ( i ) − x ( i ) ∥ 2 2 = ∑ i = 1 m ( W z ( i ) ) T ( W z ( i ) ) − 2 ∑ i = 1 m ( W z ( i ) ) T x ( i ) + ∑ i = 1 m ( x ( i ) ) T x ( i ) = ∑ i = 1 m ( z ( i ) ) T ( z ( i ) ) − 2 ∑ i = 1 m ( z ( i ) ) T x ( i ) + ∑ i = 1 m ( x ( i ) ) T x ( i ) = − ∑ i = 1 m ( z ( i ) ) T ( z ( i ) ) + ∑ i = 1 m ( x ( i ) ) T x ( i ) = − t r ( W T ( ∑ i = 1 m x ( i ) ( x ( i ) ) T ) W ) + ∑ i = 1 m ( x ( i ) ) T x ( i ) = − t r ( W T X X T W ) + ∑ i = 1 m ( x ( i ) ) T x ( i ) \sum^m_{i=1} \| \hat{x}^{(i)} - x^{(i)} \|^2_2 = \sum^m_{i=1} \| Wz^{(i)} - x^{(i)} \|^2_2 \\ = \sum^m_{i=1} \left( Wz^{(i)} \right)^T \left( Wz^{(i)} \right) - 2\sum^m_{i=1} \left( Wz^{(i)} \right)^T x^{(i)} + \sum^m_{i=1} \left( x^{(i)} \right)^T x^{(i)} \\ = \sum^m_{i=1} \left( z^{(i)} \right)^T \left( z^{(i)} \right) - 2\sum^m_{i=1} \left( z^{(i)} \right)^T x^{(i)} + \sum^m_{i=1} \left( x^{(i)} \right)^T x^{(i)} \\ = - \sum^m_{i=1} \left( z^{(i)} \right)^T \left( z^{(i)} \right) + \sum^m_{i=1} \left( x^{(i)} \right)^T x^{(i)} \\ = -tr \left( W^T \left( \sum^m_{i=1} x^{(i)} \left( x^{(i)} \right)^T \right)W \right) + \sum^m_{i=1} \left( x^{(i)} \right)^T x^{(i)} \\ = -tr \left( W^TXX^TW \right) + \sum^m_{i=1} \left( x^{(i)} \right)^T x^{(i)} i=1mx^(i)x(i)22=i=1mWz(i)x(i)22=i=1m(Wz(i))T(Wz(i))2i=1m(Wz(i))Tx(i)+i=1m(x(i))Tx(i)=i=1m(z(i))T(z(i))2i=1m(z(i))Tx(i)+i=1m(x(i))Tx(i)=i=1m(z(i))T(z(i))+i=1m(x(i))Tx(i)=tr(WT(i=1mx(i)(x(i))T)W)+i=1m(x(i))Tx(i)=tr(WTXXTW)+i=1m(x(i))Tx(i)

​ 在推导过程中,分别用到了 x ‾ ( i ) = W z ( i ) \overline{x}^{(i)} = Wz^{(i)} x(i)=Wz(i) ,矩阵转置公式 ( A B ) T = B T A T (AB)^T = B^TA^T (AB)T=BTAT W T W = I W^TW = I WTW=I z ( i ) = W T x ( i ) z^{(i)} = W^Tx^{(i)} z(i)=WTx(i) 以及矩阵的迹,最后两步是将代数和转为矩阵形式。
​ 由于 W W W 的每一个向量 w j w_j wj 是标准正交基, ∑ i = 1 m x ( i ) ( x ( i ) ) T \sum^m_{i=1} x^{(i)} \left( x^{(i)} \right)^T i=1mx(i)(x(i))T 是数据集的协方差矩阵,$\sum^m_{i=1} \left( x^{(i)} \right)^T x^{(i)} $ 是一个常量。最小化 ∑ i = 1 m ∥ x ^ ( i ) − x ( i ) ∥ 2 2 \sum^m_{i=1} \| \hat{x}^{(i)} - x^{(i)} \|^2_2 i=1mx^(i)x(i)22 又可等价于
arg ⁡ min ⁡ ⏟ W − t r ( W T X X T W ) s . t . W T W = I \underbrace{\arg \min}_W - tr \left( W^TXX^TW \right) s.t.W^TW = I W argmintr(WTXXTW)s.t.WTW=I
利用拉格朗日函数可得到
J ( W ) = − t r ( W T X X T W ) + λ ( W T W − I ) J(W) = -tr(W^TXX^TW) + \lambda(W^TW - I) J(W)=tr(WTXXTW)+λ(WTWI)
​ 对 W W W 求导,可得 − X X T W + λ W = 0 -XX^TW + \lambda W = 0 XXTW+λW=0 ,也即 X X T W = λ W XX^TW = \lambda W XXTW=λW X X T XX^T XXT n ′ n' n 个特征向量组成的矩阵, λ \lambda λ X X T XX^T XXT 的特征值。 W W W 即为我们想要的矩阵。
​ 对于原始数据,只需要 z ( i ) = W T X ( i ) z^{(i)} = W^TX^{(i)} z(i)=WTX(i) ,就可把原始数据集降维到最小投影距离的 n ′ n' n 维数据集。

​ 基于最大投影方差的推导,这里就不再赘述,有兴趣的同仁可自行查阅资料。

2.15.4 PCA算法流程总结

输入: n ​ n​ n 维样本集 D = ( x ( 1 ) , x ( 2 ) , . . . , x ( m ) ) ​ D = \left( x^{(1)},x^{(2)},...,x^{(m)} \right)​ D=(x(1),x(2),...,x(m)) ,目标降维的维数 n ′ ​ n'​ n

输出:降维后的新样本集 D ′ = ( z ( 1 ) , z ( 2 ) , . . . , z ( m ) ) D' = \left( z^{(1)},z^{(2)},...,z^{(m)} \right) D=(z(1),z(2),...,z(m))

主要步骤如下:

  1. 对所有的样本进行中心化, x ( i ) = x ( i ) − 1 m ∑ j = 1 m x ( j ) x^{(i)} = x^{(i)} - \frac{1}{m} \sum^m_{j=1} x^{(j)} x(i)=x(i)m1j=1mx(j)
  2. 计算样本的协方差矩阵 X X T ​ XX^T​ XXT
  3. 对协方差矩阵 X X T XX^T XXT 进行特征值分解。
  4. 取出最大的 n ′ n' n 个特征值对应的特征向量 { w 1 , w 2 , . . . , w n ′ } \{ w_1,w_2,...,w_{n'} \} {w1,w2,...,wn}
  5. 标准化特征向量,得到特征向量矩阵 W W W
  6. 转化样本集中的每个样本 z ( i ) = W T x ( i ) z^{(i)} = W^T x^{(i)} z(i)=WTx(i)
  7. 得到输出矩阵 D ′ = ( z ( 1 ) , z ( 2 ) , . . . , z ( n ) ) ​ D' = \left( z^{(1)},z^{(2)},...,z^{(n)} \right)​ D=(z(1),z(2),...,z(n))
    :在降维时,有时不明确目标维数,而是指定降维到的主成分比重阈值 k ( k ϵ ( 0 , 1 ] ) ​ k(k \epsilon(0,1])​ k(kϵ(0,1]) 。假设 n ​ n​ n 个特征值为 λ 1 ⩾ λ 2 ⩾ . . . ⩾ λ n ​ \lambda_1 \geqslant \lambda_2 \geqslant ... \geqslant \lambda_n​ λ1λ2...λn ,则 n ′ ​ n'​ n 可从 ∑ i = 1 n ′ λ i ⩾ k × ∑ i = 1 n λ i ​ \sum^{n'}_{i=1} \lambda_i \geqslant k \times \sum^n_{i=1} \lambda_i ​ i=1nλik×i=1nλi 得到。

2.15.5 PCA算法主要优缺点

优缺点简要说明
优点1. 仅仅需要以方差衡量信息量,不受数据集以外的因素影响。 2.各主成分之间正交,可消除原始数据成分间的相互影响的因素。3. 计算方法简单,主要运算是特征值分解,易于实现。
缺点1.主成分各个特征维度的含义具有一定的模糊性,不如原始样本特征的解释性强。2. 方差小的非主成分也可能含有对样本差异的重要信息,因降维丢弃可能对后续数据处理有影响。

2.15.6 降维的必要性及目的

降维的必要性

  1. 多重共线性和预测变量之间相互关联。多重共线性会导致解空间的不稳定,从而可能导致结果的不连贯。
  2. 高维空间本身具有稀疏性。一维正态分布有68%的值落于正负标准差之间,而在十维空间上只有2%。
  3. 过多的变量,对查找规律造成冗余麻烦。
  4. 仅在变量层面上分析可能会忽略变量之间的潜在联系。例如几个预测变量可能落入仅反映数据某一方面特征的一个组内。

降维的目的

  1. 减少预测变量的个数。
  2. 确保这些变量是相互独立的。
  3. 提供一个框架来解释结果。相关特征,特别是重要特征更能在数据中明确的显示出来;如果只有两维或者三维的话,更便于可视化展示。
  4. 数据在低维下更容易处理、更容易使用。
  5. 去除数据噪声。
  6. 降低算法运算开销。

2.15.7 KPCA与PCA的区别

​ 应用PCA算法前提是假设存在一个线性超平面,进而投影。那如果数据不是线性的呢?该怎么办?这时候就需要KPCA,数据集从 n n n 维映射到线性可分的高维 N > n N >n N>n,然后再从 N N N 维降维到一个低维度 n ′ ( n ′ < n < N ) n'(n'<n<N) n(n<n<N)

​ KPCA用到了核函数思想,使用了核函数的主成分分析一般称为核主成分分析(Kernelized PCA, 简称KPCA)。

假设高维空间数据由 n ​ n​ n 维空间的数据通过映射 ϕ ​ \phi​ ϕ 产生。

n n n 维空间的特征分解为:
∑ i = 1 m x ( i ) ( x ( i ) ) T W = λ W \sum^m_{i=1} x^{(i)} \left( x^{(i)} \right)^T W = \lambda W i=1mx(i)(x(i))TW=λW

​ 其映射为
∑ i = 1 m ϕ ( x ( i ) ) ϕ ( x ( i ) ) T W = λ W \sum^m_{i=1} \phi \left( x^{(i)} \right) \phi \left( x^{(i)} \right)^T W = \lambda W i=1mϕ(x(i))ϕ(x(i))TW=λW

​ 通过在高维空间进行协方差矩阵的特征值分解,然后用和PCA一样的方法进行降维。由于KPCA需要核函数的运算,因此它的计算量要比PCA大很多。

2.16 模型评估

2.16.1 模型评估常用方法?

​ 一般情况来说,单一评分标准无法完全评估一个机器学习模型。只用good和bad偏离真实场景去评估某个模型,都是一种欠妥的评估方式。下面介绍常用的分类模型和回归模型评估方法。

分类模型常用评估方法:

指标描述
Accuracy准确率
Precision精准度/查准率
Recall召回率/查全率
P-R曲线查准率为纵轴,查全率为横轴,作图
F1F1值
Confusion Matrix混淆矩阵
ROCROC曲线
AUCROC曲线下的面积

回归模型常用评估方法:

指标描述
Mean Square Error (MSE, RMSE)平均方差
Absolute Error (MAE, RAE)绝对误差
R-SquaredR平方值

2.16.2 误差、偏差和方差有什么区别和联系

在机器学习中,Bias(偏差),Error(误差),和Variance(方差)存在以下区别和联系:

**对于Error **:

  • 误差(error):一般地,我们把学习器的实际预测输出与样本的真是输出之间的差异称为“误差”。

  • Error = Bias + Variance + Noise,Error反映的是整个模型的准确度。

对于Noise:

噪声:描述了在当前任务上任何学习算法所能达到的期望泛化误差的下界,即刻画了学习问题本身的难度。

对于Bias:

  • Bias衡量模型拟合训练数据的能力(训练数据不一定是整个 training dataset,而是只用于训练它的那一部分数据,例如:mini-batch),Bias反映的是模型在样本上的输出与真实值之间的误差,即模型本身的精准度。
  • Bias 越小,拟合能力越高(可能产生overfitting);反之,拟合能力越低(可能产生underfitting)。
  • 偏差越大,越偏离真实数据,如下图第二行所示。

对于Variance:

  • 方差公式: S N 2 = 1 N ∑ i = 1 N ( x i − x ˉ ) 2 S_{N}^{2}=\frac{1}{N}\sum_{i=1}^{N}(x_{i}-\bar{x})^{2} SN2=N1i=1N(xixˉ)2

  • Variance描述的是预测值的变化范围,离散程度,也就是离其期望值的距离。方差越大,数据的分布越分散,模型的稳定程度越差。

  • Variance反映的是模型每一次输出结果与模型输出期望之间的误差,即模型的稳定性。

  • Variance越小,模型的泛化的能力越高;反之,模型的泛化的能力越低。

  • 如果模型在训练集上拟合效果比较优秀,但是在测试集上拟合效果比较差劣,则方差较大,说明模型的稳定程度较差,出现这种现象可能是由于模型对训练集过拟合造成的。 如下图右列所示。

2.16.3 经验误差与泛化误差

经验误差(empirical error):也叫训练误差(training error),模型在训练集上的误差。

泛化误差(generalization error):模型在新样本集(测试集)上的误差称为“泛化误差”。

2.16.4 图解欠拟合、过拟合

根据不同的坐标方式,欠拟合与过拟合图解不同。

  1. 横轴为训练样本数量,纵轴为误差

如上图所示,我们可以直观看出欠拟合和过拟合的区别:

​ 模型欠拟合:在训练集以及测试集上同时具有较高的误差,此时模型的偏差较大;

​ 模型过拟合:在训练集上具有较低的误差,在测试集上具有较高的误差,此时模型的方差较大。

​ 模型正常:在训练集以及测试集上,同时具有相对较低的偏差以及方差。

  1. 横轴为模型复杂程度,纵轴为误差

​ 红线为测试集上的Error,蓝线为训练集上的Error

​ 模型欠拟合:模型在点A处,在训练集以及测试集上同时具有较高的误差,此时模型的偏差较大。

​ 模型过拟合:模型在点C处,在训练集上具有较低的误差,在测试集上具有较高的误差,此时模型的方差较大。

​ 模型正常:模型复杂程度控制在点B处为最优。

  1. 横轴为正则项系数,纵轴为误差

​ 红线为测试集上的Error,蓝线为训练集上的Error

​ 模型欠拟合:模型在点C处,在训练集以及测试集上同时具有较高的误差,此时模型的偏差较大。

​ 模型过拟合:模型在点A处,在训练集上具有较低的误差,在测试集上具有较高的误差,此时模型的方差较大。 它通常发生在模型过于复杂的情况下,如参数过多等,会使得模型的预测性能变弱,并且增加数据的波动性。虽然模型在训练时的效果可以表现的很完美,基本上记住了数据的全部特点,但这种模型在未知数据的表现能力会大减折扣,因为简单的模型泛化能力通常都是很弱的。

​ 模型正常:模型复杂程度控制在点B处为最优。

2.16.5 如何解决过拟合与欠拟合

如何解决欠拟合:

  1. 添加其他特征项。组合、泛化、相关性、上下文特征、平台特征等特征是特征添加的重要手段,有时候特征项不够会导致模型欠拟合。
  2. 添加多项式特征。例如将线性模型添加二次项或三次项使模型泛化能力更强。例如,FM(Factorization Machine)模型、FFM(Field-aware Factorization Machine)模型,其实就是线性模型,增加了二阶多项式,保证了模型一定的拟合程度。
  3. 可以增加模型的复杂程度。
  4. 减小正则化系数。正则化的目的是用来防止过拟合的,但是现在模型出现了欠拟合,则需要减少正则化参数。

如何解决过拟合:

  1. 重新清洗数据,数据不纯会导致过拟合,此类情况需要重新清洗数据。
  2. 增加训练样本数量。
  3. 降低模型复杂程度。
  4. 增大正则项系数。
  5. 采用dropout方法,dropout方法,通俗的讲就是在训练的时候让神经元以一定的概率不工作。
  6. early stopping。
  7. 减少迭代次数。
  8. 增大学习率。
  9. 添加噪声数据。
  10. 树结构中,可以对树进行剪枝。
  11. 减少特征项。

欠拟合和过拟合这些方法,需要根据实际问题,实际模型,进行选择。

2.16.6 交叉验证的主要作用

​ 为了得到更为稳健可靠的模型,对模型的泛化误差进行评估,得到模型泛化误差的近似值。当有多个模型可以选择时,我们通常选择“泛化误差”最小的模型。

​ 交叉验证的方法有许多种,但是最常用的是:留一交叉验证、k折交叉验证。

2.16.7 理解k折交叉验证

  1. 将含有N个样本的数据集,分成K份,每份含有N/K个样本。选择其中1份作为测试集,另外K-1份作为训练集,测试集就有K种情况。
  2. 在每种情况中,用训练集训练模型,用测试集测试模型,计算模型的泛化误差。
  3. 交叉验证重复K次,每份验证一次,平均K次的结果或者使用其它结合方式,最终得到一个单一估测,得到模型最终的泛化误差。
  4. 将K种情况下,模型的泛化误差取均值,得到模型最终的泛化误差。
  5. 一般 2 ⩽ K ⩽ 10 2\leqslant K \leqslant10 2K10。 k折交叉验证的优势在于,同时重复运用随机产生的子样本进行训练和验证,每次的结果验证一次,10折交叉验证是最常用的。
  6. 训练集中样本数量要足够多,一般至少大于总样本数的50%。
  7. 训练集和测试集必须从完整的数据集中均匀取样。均匀取样的目的是希望减少训练集、测试集与原数据集之间的偏差。当样本数量足够多时,通过随机取样,便可以实现均匀取样的效果。

2.16.8 混淆矩阵

第一种混淆矩阵:

真实情况T or F预测为正例1,P预测为负例0,N
本来label标记为1,预测结果真为T、假为FTP(预测为1,实际为1)FN(预测为0,实际为1)
本来label标记为0,预测结果真为T、假为FFP(预测为1,实际为0)TN(预测为0,实际也为0)

第二种混淆矩阵:

预测情况P or N实际label为1,预测对了为T实际label为0,预测对了为T
预测为正例1,PTP(预测为1,实际为1)FP(预测为1,实际为0)
预测为负例0,NFN(预测为0,实际为1)TN(预测为0,实际也为0)

2.16.9 错误率及精度

  1. 错误率(Error Rate):分类错误的样本数占样本总数的比例。
  2. 精度(accuracy):分类正确的样本数占样本总数的比例。

2.16.10 查准率与查全率

将算法预测的结果分成四种情况:

  1. 正确肯定(True Positive,TP):预测为真,实际为真
  2. 正确否定(True Negative,TN):预测为假,实际为假
  3. 错误肯定(False Positive,FP):预测为真,实际为假
  4. 错误否定(False Negative,FN):预测为假,实际为真

则:

查准率(Precision)=TP/(TP+FP)

理解:预测出为阳性的样本中,正确的有多少。区别准确率(正确预测出的样本,包括正确预测为阳性、阴性,占总样本比例)。
例,在所有我们预测有恶性肿瘤的病人中,实际上有恶性肿瘤的病人的百分比,越高越好。

查全率(Recall)=TP/(TP+FN)

理解:正确预测为阳性的数量占总样本中阳性数量的比例。
例,在所有实际上有恶性肿瘤的病人中,成功预测有恶性肿瘤的病人的百分比,越高越好。

2.16.11 ROC与AUC

​ ROC全称是“受试者工作特征”(Receiver Operating Characteristic)。

​ ROC曲线的面积就是AUC(Area Under Curve)。

​ AUC用于衡量“二分类问题”机器学习算法性能(泛化能力)。

​ ROC曲线,通过将连续变量设定出多个不同的临界值,从而计算出一系列真正率和假正率,再以假正率为横坐标、真正率为纵坐标绘制成曲线,曲线下面积越大,推断准确性越高。在ROC曲线上,最靠近坐标图左上方的点为假正率和真正率均较高的临界值。

​ 对于分类器,或者说分类算法,评价指标主要有Precision,Recall,F-score。下图是一个ROC曲线的示例。

ROC曲线的横坐标为False Positive Rate(FPR),纵坐标为True Positive Rate(TPR)。其中
T P R = T P T P + F N , F P R = F P F P + T N TPR = \frac{TP}{TP+FN} ,FPR = \frac{FP}{FP+TN} TPR=TP+FNTP,FPR=FP+TNFP

​ 下面着重介绍ROC曲线图中的四个点和一条线。
​ 第一个点(0,1),即FPR=0, TPR=1,这意味着FN(False Negative)=0,并且FP(False Positive)=0。意味着这是一个完美的分类器,它将所有的样本都正确分类。
​ 第二个点(1,0),即FPR=1,TPR=0,意味着这是一个最糟糕的分类器,因为它成功避开了所有的正确答案。
​ 第三个点(0,0),即FPR=TPR=0,即FP(False Positive)=TP(True Positive)=0,可以发现该分类器预测所有的样本都为负样本(Negative)。
​ 第四个点(1,1),即FPR=TPR=1,分类器实际上预测所有的样本都为正样本。
​ 经过以上分析,ROC曲线越接近左上角,该分类器的性能越好。

​ ROC曲线所覆盖的面积称为AUC(Area Under Curve),可以更直观的判断学习器的性能,AUC越大则性能越好。

2.16.12 如何画ROC曲线

​ 下图是一个示例,图中共有20个测试样本,“Class”一栏表示每个测试样本真正的标签(p表示正样本,n表示负样本),“Score”表示每个测试样本属于正样本的概率。

步骤:
1、假设已经得出一系列样本被划分为正类的概率,按照大小排序。
2、从高到低,依次将“Score”值作为阈值threshold,当测试样本属于正样本的概率大于或等于这个threshold时,我们认为它为正样本,否则为负样本。举例来说,对于图中的第4个样本,其“Score”值为0.6,那么样本1,2,3,4都被认为是正样本,因为它们的“Score”值都大于等于0.6,而其他样本则都认为是负样本。
3、每次选取一个不同的threshold,得到一组FPR和TPR,即ROC曲线上的一点。以此共得到20组FPR和TPR的值。
4、根据3、中的每个坐标点,画图。

2.16.13 如何计算TPR,FPR

1、分析数据
y_true = [0, 0, 1, 1];scores = [0.1, 0.4, 0.35, 0.8];
2、列表

样本预测属于P的概率(score)真实类别
y[0]0.1N
y[1]0.4N
y[2]0.35P
y[3]0.8P

3、将截断点依次取为score值,计算TPR和FPR。
当截断点为0.1时:
说明只要score>=0.1,它的预测类别就是正例。 因为4个样本的score都大于等于0.1,所以,所有样本的预测类别都为P。
scores = [0.1, 0.4, 0.35, 0.8];y_true = [0, 0, 1, 1];y_pred = [1, 1, 1, 1];
正例与反例信息如下:

正例反例
正例TP=2FN=0
反例FP=2TN=0

由此可得:
TPR = TP/(TP+FN) = 1; FPR = FP/(TN+FP) = 1;

当截断点为0.35时:
scores = [0.1, 0.4, 0.35, 0.8];y_true = [0, 0, 1, 1];y_pred = [0, 1, 1, 1];
正例与反例信息如下:

正例反例
正例TP=2FN=0
反例FP=1TN=1

由此可得:
TPR = TP/(TP+FN) = 1; FPR = FP/(TN+FP) = 0.5;

当截断点为0.4时:
scores = [0.1, 0.4, 0.35, 0.8];y_true = [0, 0, 1, 1];y_pred = [0, 1, 0, 1];
正例与反例信息如下:

正例反例
正例TP=1FN=1
反例FP=1TN=1

由此可得:
TPR = TP/(TP+FN) = 0.5; FPR = FP/(TN+FP) = 0.5;

当截断点为0.8时:
scores = [0.1, 0.4, 0.35, 0.8];y_true = [0, 0, 1, 1];y_pred = [0, 0, 0, 1];

正例与反例信息如下:

正例反例
正例TP=1FN=1
反例FP=0TN=2

由此可得:
TPR = TP/(TP+FN) = 0.5; FPR = FP/(TN+FP) = 0;

4、根据TPR、FPR值,以FPR为横轴,TPR为纵轴画图。

2.16.14 如何计算AUC

  • 将坐标点按照横坐标FPR排序 。
  • 计算第 i i i个坐标点和第 i + 1 i+1 i+1个坐标点的间距 d x dx dx
  • 获取第 i i i或者 i + 1 i+1 i+1个坐标点的纵坐标y。
  • 计算面积微元 d s = y d x ds=ydx ds=ydx
  • 对面积微元进行累加,得到AUC。

2.16.15 为什么使用Roc和Auc评价分类器

​ 模型有很多评估方法,为什么还要使用ROC和AUC呢?
​ 因为ROC曲线有个很好的特性:当测试集中的正负样本的分布变换的时候,ROC曲线能够保持不变。在实际的数据集中经常会出现样本类不平衡,即正负样本比例差距较大,而且测试数据中的正负样本也可能随着时间变化。

2.16.16 直观理解AUC

​ 下图展现了三种AUC的值:

​ AUC是衡量二分类模型优劣的一种评价指标,表示正例排在负例前面的概率。其他评价指标有精确度、准确率、召回率,而AUC比这三者更为常用。
​ 一般在分类模型中,预测结果都是以概率的形式表现,如果要计算准确率,通常都会手动设置一个阈值来将对应的概率转化成类别,这个阈值也就很大程度上影响了模型准确率的计算。
​ 举例:
​ 现在假设有一个训练好的二分类器对10个正负样本(正例5个,负例5个)预测,得分按高到低排序得到的最好预测结果为[1, 1, 1, 1, 1, 0, 0, 0, 0, 0],即5个正例均排在5个负例前面,正例排在负例前面的概率为100%。然后绘制其ROC曲线,由于是10个样本,除去原点我们需要描10个点,如下:

​ 描点方式按照样本预测结果的得分高低从左至右开始遍历。从原点开始,每遇到1便向y轴正方向移动y轴最小步长1个单位,这里是1/5=0.2;每遇到0则向x轴正方向移动x轴最小步长1个单位,这里也是0.2。不难看出,上图的AUC等于1,印证了正例排在负例前面的概率的确为100%。

​ 假设预测结果序列为[1, 1, 1, 1, 0, 1, 0, 0, 0, 0]。

​ 计算上图的AUC为0.96与计算正例与排在负例前面的概率0.8 × 1 + 0.2 × 0.8 = 0.96相等,而左上角阴影部分的面积则是负例排在正例前面的概率0.2 × 0.2 = 0.04。

​ 假设预测结果序列为[1, 1, 1, 0, 1, 0, 1, 0, 0, 0]。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

​ 计算上图的AUC为0.88与计算正例与排在负例前面的概率0.6 × 1 + 0.2 × 0.8 + 0.2 × 0.6 = 0.88相等,左上角阴影部分的面积是负例排在正例前面的概率0.2 × 0.2 × 3 = 0.12。

2.16.17 代价敏感错误率与代价曲线

不同的错误会产生不同代价。以二分法为例,设置代价矩阵如下:

当判断正确的时候,值为0,不正确的时候,分别为 C o s t 01 ​ Cost_{01}​ Cost01 C o s t 10 ​ Cost_{10}​ Cost10

C o s t 10 Cost_{10} Cost10:表示实际为反例但预测成正例的代价。

C o s t 01 Cost_{01} Cost01:表示实际为正例但是预测为反例的代价。

代价敏感错误率=样本中由模型得到的错误值与代价乘积之和 / 总样本。
其数学表达式为:
E ( f ; D ; c o s t ) = 1 m ( ∑ x i ∈ D + ( f ( x i ) ≠ y i ) × C o s t 01 + ∑ x i ∈ D − ( f ( x i ) ≠ y i ) × C o s t 10 ) E(f;D;cost)=\frac{1}{m}\left( \sum_{x_{i} \in D^{+}}({f(x_i)\neq y_i})\times Cost_{01}+ \sum_{x_{i} \in D^{-}}({f(x_i)\neq y_i})\times Cost_{10}\right) E(f;D;cost)=m1(xiD+(f(xi)=yi)×Cost01+xiD(f(xi)=yi)×Cost10)
D + 、 D − ​ D^{+}、D^{-}​ D+D分别代表样例集的正例子集和反例子集,x是预测值,y是真实值。

代价曲线
在均等代价时,ROC曲线不能直接反应出模型的期望总体代价,而代价曲线可以。
代价曲线横轴为[0,1]的正例函数代价:
P ( + ) C o s t = p ∗ C o s t 01 p ∗ C o s t 01 + ( 1 − p ) ∗ C o s t 10 P(+)Cost=\frac{p*Cost_{01}}{p*Cost_{01}+(1-p)*Cost_{10}} P(+)Cost=pCost01+(1p)Cost10pCost01
其中p是样本为正例的概率。

代价曲线纵轴维[0,1]的归一化代价:
C o s t n o r m = F N R ∗ p ∗ C o s t 01 + F N R ∗ ( 1 − p ) ∗ C o s t 10 p ∗ C o s t 01 + ( 1 − p ) ∗ C o s t 10 Cost_{norm}=\frac{FNR*p*Cost_{01}+FNR*(1-p)*Cost_{10}}{p*Cost_{01}+(1-p)*Cost_{10}} Costnorm=pCost01+(1p)Cost10FNRpCost01+FNR(1p)Cost10

其中FPR为假阳率,FNR=1-TPR为假阴率。

注:ROC每个点,对应代价平面上一条线。

例如,ROC上(TPR,FPR),计算出FNR=1-TPR,在代价平面上绘制一条从(0,FPR)到(1,FNR)的线段,面积则为该条件下期望的总体代价。所有线段下界面积,所有条件下学习器的期望总体代价。

2.16.18 模型有哪些比较检验方法

正确性分析:模型稳定性分析,稳健性分析,收敛性分析,变化趋势分析,极值分析等。
有效性分析:误差分析,参数敏感性分析,模型对比检验等。
有用性分析:关键数据求解,极值点,拐点,变化趋势分析,用数据验证动态模拟等。
高效性分析:时空复杂度分析与现有进行比较等。

2.16.19 为什么使用标准差

方差公式为: S N 2 = 1 N ∑ i = 1 N ( x i − x ˉ ) 2 ​ S^2_{N}=\frac{1}{N}\sum_{i=1}^{N}(x_{i}-\bar{x})^{2}​ SN2=N1i=1N(xixˉ)2

标准差公式为: S N = 1 N ∑ i = 1 N ( x i − x ˉ ) 2 ​ S_{N}=\sqrt{\frac{1}{N}\sum_{i=1}^{N}(x_{i}-\bar{x})^{2}}​ SN=N1i=1N(xixˉ)2

样本标准差公式为: S N = 1 N − 1 ∑ i = 1 N ( x i − x ˉ ) 2 ​ S_{N}=\sqrt{\frac{1}{N-1}\sum_{i=1}^{N}(x_{i}-\bar{x})^{2}}​ SN=N11i=1N(xixˉ)2

与方差相比,使用标准差来表示数据点的离散程度有3个好处:
1、表示离散程度的数字与样本数据点的数量级一致,更适合对数据样本形成感性认知。

2、表示离散程度的数字单位与样本数据的单位一致,更方便做后续的分析运算。

3、在样本数据大致符合正态分布的情况下,标准差具有方便估算的特性:68%的数据点落在平均值前后1个标准差的范围内、95%的数据点落在平均值前后2个标准差的范围内,而99%的数据点将会落在平均值前后3个标准差的范围内。

2.16.20 类别不平衡产生原因

​ 类别不平衡(class-imbalance)是指分类任务中不同类别的训练样例数目差别很大的情况。

产生原因:

​ 分类学习算法通常都会假设不同类别的训练样例数目基本相同。如果不同类别的训练样例数目差别很大,则会影响学习结果,测试结果变差。例如二分类问题中有998个反例,正例有2个,那学习方法只需返回一个永远将新样本预测为反例的分类器,就能达到99.8%的精度;然而这样的分类器没有价值。

2.16.21 常见的类别不平衡问题解决方法

防止类别不平衡对学习造成的影响,在构建分类模型之前,需要对分类不平衡性问题进行处理。主要解决方法有:

1、扩大数据集

​ 增加包含小类样本数据的数据,更多的数据能得到更多的分布信息。

2、对大类数据欠采样

​ 减少大类数据样本个数,使与小样本个数接近。
​ 缺点:欠采样操作时若随机丢弃大类样本,可能会丢失重要信息。
​ 代表算法:EasyEnsemble。其思想是利用集成学习机制,将大类划分为若干个集合供不同的学习器使用。相当于对每个学习器都进行欠采样,但对于全局则不会丢失重要信息。

3、对小类数据过采样

​ 过采样:对小类的数据样本进行采样来增加小类的数据样本个数。

​ 代表算法:SMOTE和ADASYN。

​ SMOTE:通过对训练集中的小类数据进行插值来产生额外的小类样本数据。

​ 新的少数类样本产生的策略:对每个少数类样本a,在a的最近邻中随机选一个样本b,然后在a、b之间的连线上随机选一点作为新合成的少数类样本。
​ ADASYN:根据学习难度的不同,对不同的少数类别的样本使用加权分布,对于难以学习的少数类的样本,产生更多的综合数据。 通过减少类不平衡引入的偏差和将分类决策边界自适应地转移到困难的样本两种手段,改善了数据分布。

4、使用新评价指标

​ 如果当前评价指标不适用,则应寻找其他具有说服力的评价指标。比如准确度这个评价指标在类别不均衡的分类任务中并不适用,甚至进行误导。因此在类别不均衡分类任务中,需要使用更有说服力的评价指标来对分类器进行评价。

5、选择新算法

​ 不同的算法适用于不同的任务与数据,应该使用不同的算法进行比较。

6、数据代价加权

​ 例如当分类任务是识别小类,那么可以对分类器的小类样本数据增加权值,降低大类样本的权值,从而使得分类器将重点集中在小类样本身上。

7、转化问题思考角度

​ 例如在分类问题时,把小类的样本作为异常点,将问题转化为异常点检测或变化趋势检测问题。 异常点检测即是对那些罕见事件进行识别。变化趋势检测区别于异常点检测在于其通过检测不寻常的变化趋势来识别。

8、将问题细化分析

​ 对问题进行分析与挖掘,将问题划分成多个更小的问题,看这些小问题是否更容易解决。

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值