机器学习中的分类问题
本文选择 iris 数据集作为分类问题的案例,使用 ROC 曲线作为评判模型分类效果的指标。
常用的分类模型
逻辑回归
回归问题与分类问题的主要区别在于因变量的数据类型不同,分类问题的因变量不再是连续型的数值变量,而是离散型的。
当然使用线性回归处理分类问题是可以进行的,例如将某个值作为分类的阈值,将预测的因变量值划分到合适的类别之中,但仍然会造成以下几个问题:
-
因变量的预测值可能会出现负值等在现实情形中无法解释或没有实际意义的情况。
-
异常值(极端值)对于模型效果的影响很大。
-
对于多类别的分类问题,找到合适的分类阈值是困难的。
逻辑回归( logistic regression )是在线性回归的基础上加以改进的,它引入了 logistic 函数,从而将线性回归的结果映射到【0,1】区间,从而拟合样本属于某个特定类别的概率:
p ( Y = 1 ∣ X = x ) = 1 1 + e − w T x p(Y=1|X=x) = \dfrac{1}{1+e^{-w^Tx}} p(Y=1∣X=x)=1+e−wTx1
这里以二元分类为例(逻辑回归依旧不大适用于多分类问题),其中 Y Y Y 的取值可以为 0 0 0 或 1 1 1 ,分别代表两个不同类别,且记 p ( Y = 1 ∣ X = x ) = p 1 p(Y=1|X=x) = p_1 p(Y=1∣X=x)=p1 ,显然 Y Y Y 服从0-1分布,故可得其条件密度函数为 p ( Y = y ∣ X = x ) = p 1 y ( 1 − p 1 ) 1 − y p(Y=y|X=x) = p_1^y(1-p_1)^{1-y} p(Y=y∣X=x)=p1y(1−p1)1−y
依统计学的方法使用极大似然估计来获取模型参数 w w w ,即:
w ^ = arg max w log P ( Y ∣ X ) = arg max w log ∏ i = 1 N P ( y i ∣ x i ) = arg max w ∑ i = 1 N log P ( y i ∣ x i ) = arg max w ∑ i = 1 N ( y i l o g p 1 + ( 1 − y i ) l o g ( 1 − p 1 ) ) \begin{aligned} \hat{w} &= \argmax_w \log P(Y|X) = \argmax_w \log \prod_{i=1}^N P(y_i|x_i) \\ &= \argmax_w \sum\limits_{i=1}^{N} \log P(y_i|x_i) = \argmax_w \sum\limits_{i=1}^{N}(y_ilog\;p_1 + (1-y_i)log(1-p_1)) \\ \end{aligned} w^=wargmaxlogP(Y∣X)=wargmaxlogi=1∏NP(yi∣xi)=wargmaxi=1∑NlogP(yi∣xi)=wargmaxi=1∑N(yilogp1+(1−yi)log(1−p1))
记 L ( w ) = ∑ i = 1 N ( y i l o g p 1 + ( 1 − y i ) l o g ( 1 − p 1 ) ) L(w) = \sum\limits_{i=1}^{N}(y_ilog\;p_1 + (1-y_i)log(1-p_1)) L(w)=i=1∑N(yilogp1+(1−yi)log(1−p1)) ,可以看出极大似然估计和以交叉熵函数作为损失函数是等价的。
通过求其偏导,进一步求解 w w w 估计值可得:
∂ L ∂ w k = ∑ i = 1 N y i 1 p 1 ∂ p 1 ∂ z ∂ z ∂ w k + ( 1 − y i ) 1 1 − p 1 ( − ∂ p 1 ∂ z ∂ z ∂ w k ) = ∑ i = 1 N y i 1 σ ( z ) ( σ ( z i ) − σ ( z i ) 2 ) x i + ( 1 − y i ) 1 1 − σ ( z i ) [ − ( σ ( z i ) − σ ( z i ) 2 ) x i ] = ∑ i = 1 N [ ( y i − y i σ ( z i ) ) x i + ( 1 − y i ) ( − σ ( z i ) ) x i ] = ∑ i = 1 N y i x i − σ ( z i ) x i = ∑ i = 1 N ( y i − σ ( z i ) ) x i \dfrac{\partial L}{\partial w_k} = \sum\limits_{i=1}^{N} y_i\frac{1}{p_1}\frac{\partial p_1}{\partial z}\frac{\partial z}{\partial w_k} + (1-y_i)\frac{1}{1-p_1}(-\frac{\partial p_1}{\partial z}\frac{\partial z}{\partial w_k})\\ \;\;\;=\sum\limits_{i=1}^{N}y_i\frac{1}{\sigma(z)}(\sigma(z_i)-\sigma(z_i)^2)x_i + (1-y_i)\frac{1}{1-\sigma(z_i)}[-(\sigma(z_i)-\sigma(z_i)^2)x_i]\\ \;\;\; =\sum\limits_{i=1}^{N}[(y_i-y_i\sigma(z_i))x_i + (1-y_i)(-\sigma(z_i))x_i]\\ \;\;\; = \sum\limits_{i=1}^{N}y_ix_i-\sigma(z_i)x_i = \sum\limits_{i=1}^{N}(y_i-\sigma(z_i))x_i ∂wk∂L=i=1∑Nyip11∂z∂p1∂wk∂z+(1−yi)1−p11(−∂z∂p1∂wk∂z)=