在文章LDA(线性判别分析,Linear Discriminant Analysis)中,我们已经从贝叶斯理论的角度推导了LDA。现在我们来看LDA是如何应用于二分类问题的。


两个类别的对数几率

和逻辑回归一样,我们可以通过求两个类别的对数几率来判断当前数据属于哪个类别。
logP(Y=1X=x)P(Y=0X=x)=logP1(x)P0(x)+logπ1π0=logπ1π012(μ1+μ0)TΣ1(μ1μ0)+xTΣ1(μ1μ0)(1) \begin{aligned} log\frac{P(Y=1\mid X=x)}{P(Y=0\mid X=x)} &=log\frac{P_1(x)}{P_0(x)}+log\frac{\pi_1}{\pi_0}\\ &=log\frac{\pi_1}{\pi_0}-\frac{1}{2}(\mu_1+\mu_0)^T\Sigma^{-1}(\mu_1-\mu_0)+x^T\Sigma^{-1}(\mu_1-\mu_0) \qquad(1) \end{aligned}
若(1)>0, 则认为xx属于1类,否则属于0类。
我们通过将(1)中的xx剥离哦,获得我们需要的判别公式和对应阈值。
xTΣ1(μ1μ0)>SS=12(μ1+μ0)TΣ1(μ1μ0)logπ1π0 x^T\Sigma^{-1}(\mu_1-\mu_0)>S\\ S=\frac{1}{2}(\mu_1+\mu_0)^T\Sigma^{-1}(\mu_1-\mu_0)-log\frac{\pi_1}{\pi_0}
xTΣ1(μ1μ0)>Sx^T\Sigma^{-1}(\mu_1-\mu_0)>S,则判别为1类;
xTΣ1(μ1μ0)<Sx^T\Sigma^{-1}(\mu_1-\mu_0)<S,则判别为0类;
这里的SS我们是通过训练数据直接得到的。这种做法往往是不太好的。我们有一个强大的工具ROC曲线(Receiver Operating Characteristic curve)来描述不同SS下的表现。


ROC曲线

ROC曲线是根据一系列不同的二分类方式(分界值或决定阈),以真阳性率(灵敏度)为纵坐标,假阳性率(1-特异度)为横坐标绘制的曲线。传统的诊断试验评价方法有一个共同的特点,必须将试验结果分为两类,再进行统计分析。ROC曲线的评价方法与传统的评价方法不同,无须此限制,而是根据实际情况,允许有中间状态,可以把试验结果划分为多个有序分类,如正常、大致正常、可疑、大致异常和异常五个等级再进行统计分析。因此,ROC曲线评价方法适用的范围更为广泛。1

LDA续:LDA之于二分类,QDA

二分类混淆矩阵(Confusion matrix K=2)

在机器学习中,混淆矩阵是一种常用的用来评价算法性能的可视化方法。下面我们来看看二分类问题下的混下矩阵。

Positive 阳 Negtive 阴
True 真 TP 真阳例 FN 假阴例
False 假 FP 假阳例 TN 真阴例

从这张表,我们可以定义出几个常用而又容易混淆的率:
(Error rate)=FN+FPTP+FN+FP+TN(Accuracy)=TP+TNTP+FN+FP+TN(Precision)=TPTP+FP(Recall rate)=TPTP+FNTPR(True positive rate)=TPTP+FN(Sensitivity)FPR(Falsepositiverate)=FPFP+TN(1Specificity) \begin{aligned} 错误率(Error\ rate) &= \frac{FN+FP}{TP+FN+FP+TN}\\ \\ 准确率(Accuracy) &= \frac{TP+TN}{TP+FN+FP+TN}\\ \\ 查准率(Precision精确度)&=\frac{TP}{TP+FP}\\ \\ 查全率(Recall\ rate召回率)&=\frac{TP}{TP+FN}\\ \\ TPR(True\ positive\ rate) &=\frac{TP}{TP+FN}\qquad(Sensitivity)\\ \\ FPR(False positive rate)&=\frac{FP}{FP+TN}\qquad(1-Specificity) \end{aligned}
这样,我们再返回去看上面的ROC曲线。我们会发现,这张图中横轴从左到右是101\to0的,这是因为这张图将横轴的FPR改成了Specificity.


QDA(Quadratic Discriminant Analysis)

之前我们在推导LDA的过程中假设所有类别的协方差矩阵Σk=Σ\Sigma_k=\Sigma,而在QDA中,我们将单独计算Σk\Sigma_k
这样,我们需要改变一下判别函数:
δk(x)=logPk(x)+log(πk)=12(xμk)TΣk112logΣk+logπkC(x)=arg maxkδk(x) \begin{aligned} \delta_k(x)&=logP_k(x)+log(\pi_k)\\ &=-\frac{1}{2}(x-\mu_k)^T\Sigma_k^{-1}-\frac{1}{2}log|\Sigma_k|+log\pi_k\\ C(x)&=\underset{k}{\mathrm{arg\ max}} \delta_k(x) \end{aligned}
然后用极大似然估计μ^k,πk,Σ^k(or Sk=mkmk1Σ^k)\hat \mu_k,\pi_k,\hat \Sigma_k(or\ S_k=\frac{m_k}{m_k-1}\hat \Sigma_k)


Naive LDA和Naive QDA

在Naive的算法中,我们将协方差矩阵Σ\SigmaΣk\Sigma_k考虑成一个对角矩阵,也就是说各个变量之间相互独立(这种情况在现实应用中是很少见的)。


各个模型的参数个数

下面的式子中K代表样本的类别,n代表样本的维度。
LDA:Kn+n(n+1)2+K1QDA:Kn+Kn(n+1)2+K1Naive LDA:Kn+n+K1Naive QDA:2Kn+K1 \begin{aligned} LDA:Kn+\frac{n(n+1)}{2}+K-1\\\\ QDA:Kn+\frac{Kn(n+1)}{2}+K-1\\\\ Naive\ LDA:Kn+n+K-1\\\\ Naive\ QDA:2Kn+K-1\\\\ \end{aligned}


  1. ROC曲线(受试者工作特征曲线)分析详解 ↩︎

相关文章:

  • 2021-12-24
  • 2021-11-05
  • 2021-12-15
猜你喜欢
  • 2022-12-23
  • 2021-09-06
  • 2021-07-29
  • 2021-10-16
  • 2022-01-16
  • 2021-12-17
相关资源
相似解决方案