1. LDA for p > 1
假设X=(x1,x2,...,xp)X=(x_1, x_2, ..., x_p)X=(x1,x2,...,xp)来自多元高斯分布,关于K类有着不同的均值,但协方差矩阵相同。
多元高斯分布的一些直观概念
- 假设每个predictorpredictorpredictor符合一维高斯分布,每对predictorpredictorpredictor中存在相关性。
- 当p=2p=2p=2时,表面积的高度代表了(x1,x2)(x_1, x_2)(x1,x2)那边附近的概率;若言这x1x_1x1轴或者x2x_2x2轴切开,那得到的截面都是一维高斯分布的形状
- 当p=2p=2p=2时,若Var(x1)=Var(x2)Var(x_1) = Var(x_2)Var(x1)=Var(x2),Cor(x1,x2)=0Cor(x_1, x_2)=0Cor(x1,x2)=0,那么表面积将会是钟型。若x1,x2x_1,x_2x1,x2存在相关性,或者协方差矩阵不相等时,那么表面积的形状就是椭圆了。
多元高斯分布的相关定义
-
一个p维的多元高斯分布的随机变量表示为X∼N(μ,Σ)X\sim N(\mu, \Sigma)X∼N(μ,Σ)
-
其中E(x)=μE(x)=\muE(x)=μ是XXX的均值,一个1×p1\times p1×p维的向量
-
Cov(X)=ΣCov(X) = \SigmaCov(X)=Σ是XXX的p×pp\times pp×p维的协方差矩阵
-
多元高斯分布的密度函数定义为:
f(x)=1(2π)p2∣Σ∣12e−12(x−μ)TΣ−1(x−μ)f(x) = \frac{1}{(2\pi)^{\frac{p}{2}}\mid \Sigma\mid^{\frac{1}{2}}}e^{-\frac{1}{2}(x-\mu)^T\Sigma^{-1}(x-\mu)}f(x)=(2π)2p∣Σ∣211e−21(x−μ)TΣ−1(x−μ)
-
-
当p>1p>1p>1时,LDALDALDA的分类器第kkk个类别中的观测对象服从多元高斯分布N(μk,Σ)N(\mu_k, \Sigma)N(μk,Σ),有着不同的均值μk\mu_kμk,相同的协方差矩阵Σ\SigmaΣ。将第kkk个类别的fk(X=x)f_k(X=x)fk(X=x)带入贝叶斯公式中,经代数变换后,对于X=xX=xX=x得到如下式子:
δk(x)=xTΣ−1μk−12μkTΣ−1μk+logπk)\delta_k(x) = x^T\Sigma^{-1}\mu_k - \frac{1}{2}\mu_k^T\Sigma^{-1}\mu_k + log\pi_k)δk(x)=xTΣ−1μk−21μkTΣ−1μk+logπk)
最大的δk(x)\delta_k(x)δk(x)所对应的类别kkk即为X=xX=xX=x所属的类别。
-
假设现在有3个类别,μk\mu_kμk不同,但Σ\SigmaΣ相同。那么将会有3条线充当贝叶斯的决策边界,**因为3个类对应了3对类别:1和2,1和3,2和3。**为了得到δk\delta_kδk,就需要去估计未知参数μ1,μ2,...,μk\mu_1, \mu_2, ..., \mu_kμ1,μ2,...,μk;π1,π2,...,πk\pi_1, \pi_2, ..., \pi_kπ1,π2,...,πk;以及Σ\SigmaΣ。其公式和p=1p=1p=1时的十分类似,同样δk(x)\delta_k(x)δk(x)是xxx的线性函数,这说明LDALDALDA依赖于其元素的线性组合。
LDA应用于Default数据集
-
当LDALDALDA应用于DefaultDefaultDefault数据集的时候,可以发现LDALDALDA拟合10000条训练数据的训练误差为2.75%2.75\%2.75%。这听起来很低,但需要注意两点:
- 训练误差往往低于测试误差。话句话说,当其用于预测一批新的个体是否会defaultdefaultdefault的时候,将会表现的很糟糕。这是因为我们调整了模型的参数使得其在训练集上表现更好,但测试集和训练集的分布还是有差距的。
- 由于训练集中,仅有3.33%3.33\%3.33%的个体defaultdefaultdefault了,在不考虑balancebalancebalance和student statusstudent ~ statusstudent status的情况下,一个简单的分类器总会倾向于预测一个个体将不会defaultdefaultdefault。换句话说,一个没有任何参数的分类器预测所有样本为正样本,它的错误率也仅比LDALDALDA高一点而已。
-
混肴矩阵
在使用LDALDALDA的过程中,LDALDALDA可能误把正样本当成负样本;把负样本当成正样本。使用混肴矩阵可以明确的表示这些指标。
- 对于defaultdefaultdefault数据来说,9667人中仅有23人被标记错误会defaultdefaultdefault,错误率很低。但是,333个人会defaultdefaultdefault的人,仅仅检测出了81个人,错误率高达(333−81)/333=75.7%(333 - 81)/333 = 75.7\%(333−81)/333=75.7%。
- 一般用sensitivitysensitivitysensitivity和specificityspecificityspecificity来描述医护和生物方面的分类指标。在defaultdefaultdefault数据集中,sensitivitysensitivitysensitivity是被检测到真正会defaultdefaultdefault的人,只有(1−75.7%)=24.3%(1 - 75.7\%) = 24.3\%(1−75.7%)=24.3%;而specificityspecificityspecificity是被检测到不会defaultdefaultdefault的人,高达(1−239667)×100%=99.8%(1-\frac{23}{9667}) \times 100\% = 99.8\%(1−966723)×100%=99.8%
-
为什么LDALDALDA在辨别defaultdefaultdefault人员时表现的如此差劲?如何去避免这个问题呢?
- LDALDALDA尝试去近似贝叶斯分类器,在所有类别中取得较低的整体错误率。为此,贝叶斯分类器为产生尽可能少的错误,再者正负样本不平衡,那么分类器倾向于预测测试样本为正样本。
- 降低置信度,如Pr(default=Yes∣X=x)>0.2Pr(default=Yes\mid X=x) > 0.2Pr(default=Yes∣X=x)>0.2,那么更多的人将会被预测为default=Yesdefault=Yesdefault=Yes。对于银行来说,预测错几个正样本没问题,但遗漏了负样本将会是致命的问题。
ROC曲线
- ROC曲线的横坐标是False Positive RateFalse ~ Positive ~ RateFalse Positive Rate,纵坐标是True Positive RateTrue ~ Positive ~ RateTrue Positive Rate。
- ROC曲线下的面积AUCAUCAUC反映了当前分类器的好坏。若AUCAUCAUC越大,说明该分类器越好。**ROC曲线各对用的FP,TPFP,TPFP,TP**值都是调节置信度得到的,但置信度并没有反应在曲线图中。
- 若是predictorspredictorspredictors和预测的ResponseResponseResponse无关,那么ROCROCROC曲线应该在y=xy=xy=x下面。
2. Quadratic Discriminant Analysis
Quadratic Discriminant Analysis(二次型判别分析)
LDALDALDA假设样本来自多元高斯分布,均值向量不同,但kkk个类别的协方差矩阵相同。QDAQDAQDA和LDALDALDA类似,但QDAQDAQDA假设每个类别都有不同的协方差矩阵,即来自第kkk类的样本服从:
X∼N(μk,Σk)X \sim N(\mu_k, \Sigma_k)X∼N(μk,Σk)
在这个假设下,贝叶斯分类器可简化为:
δk(x)=−12(x−μk)TΣk−1(x−μk)−12log∣Σk∣+logπk=−12xTΣk−1x+xTΣk−1μk−12μkTΣk−1μk−12log∣Σk∣+logπk\delta_k(x) = -\frac{1}{2}(x-\mu_k)^T\Sigma_k^{-1}(x-\mu_k) - \frac{1}{2}log\mid\Sigma_k\mid + log\pi_k \\ = -\frac{1}{2}x^T\Sigma_k^{-1}x + x^T\Sigma_k^{-1}\mu_k - \frac{1}{2}\mu_k^T\Sigma_k^{-1}\mu_k -\frac{1}{2}log\mid\Sigma_k\mid + log\pi_kδk(x)=−21(x−μk)TΣk−1(x−μk)−21log∣Σk∣+logπk=−21xTΣk−1x+xTΣk−1μk−21μkTΣk−1μk−21log∣Σk∣+logπk
所以,QDAQDAQDA需要估计Σk,μk,πk\Sigma_k,\mu_k,\pi_kΣk,μk,πk,然后将X=xX=xX=x代入δk(x)\delta_k(x)δk(x),最大的那一项所对应的kkk即为X=xX=xX=x所属的类别。由于xxx在上式中是二次函数,故QDAQDAQDA由此得名。
QDA和LDA,用哪个更好?
为什么要假设XXX是否共享同一协方差矩阵呢?或者LDALDALDA,QDAQDAQDA,用哪个更好?回答在于,bias-variance trade-off。
- 若现在有ppp个predictorspredictorspredictors,为每一类别估计一个协方差矩阵总共需要p(p+1)2\frac{p(p+1)}{2}2p(p+1)个参数,QDAQDAQDA为每个类别都估计了Σ\SigmaΣ,那么就需要kp(p+1)2k\frac{p(p+1)}{2}k2p(p+1)个参数。若有50个predictorspredictorspredictors,那么就接近127512751275个参数,参数较LDALDALDA多了很多。所以LDALDALDA的灵活度没有QDAQDAQDA高。但反过来讲,LDALDALDA的variancevariancevariance更低,可能提高模型的能力。但需要注意的是,一旦LDALDALDA关于kkk个类共享同一个协方差矩阵的假设是错误的,那LDALDALDA就会受到高偏差的影响。
- 一般来说,若训练样本较少,LDALDALDA比QDAQDAQDA更加适合,因为减少variancevariancevariance很重要。相反,若是训练集很大,分类器的variancevariancevariance不是主要考虑的问题,或者说kkk类共享同一个协方差矩阵的假设站不住脚的,这时候就推荐使用QDAQDAQDA了。当贝叶斯的决策边界接近于非线性的时候,QDAQDAQDA是明显优于LDALDALDA的。
3. A comparison of Classification Methods
主要比较:Logistic RegressionLogistic ~ RegressionLogistic Regression,LDALDALDA,QDAQDAQDA,KNNKNNKNN。
-
首先比较Logistic RegressionLogistic ~ RegressionLogistic Regression和LDALDALDA
-
LDALDALDA:δk(x)=xμkσ2−μk22σ2+log(πk)\delta_k(x) = x\frac{\mu_k}{\sigma^2} - \frac{\mu_k^2}{2\sigma^2} + log(\pi_k)δk(x)=xσ2μk−2σ2μk2+log(πk)
对于二分类问题,且p=1p=1p=1时,{P1(x)P2(x)=1−P1(x)\begin{cases} P_1(x) \\ P_2(x)=1-P_1(x) \end{cases}{P1(x)P2(x)=1−P1(x),可以推出:
log(P1(x)1−P2(x))=log(P1(x)P2(x))=c0+c1x 公式(1)log(\frac{P_1(x)}{1-P_2(x)}) = log(\frac{P_1(x)}{P_2(x)}) = c_0 + c_1x ~~~~~~~~ 公式(1)log(1−P2(x)P1(x))=log(P2(x)P1(x))=c0+c1x 公式(1)
这里的c0c_0c0,c1c_1c1都是μ1,μ2,σ2\mu_1, \mu_2, \sigma^2μ1,μ2,σ2的方法。
-
在Logistic RegressionLogistic ~ RegressionLogistic Regression中,
log(P11−P1)=β0+β1x 公式(2)log(\frac{P_1}{1-P_1}) = \beta_0 + \beta_1x ~~~~~~~~ 公式(2)log(1−P1P1)=β0+β1x 公式(2)
-
公式(1)和公式(2)都是xxx的线性方法,因此Logistic RegressionLogistic ~ RegressionLogistic Regression和LDALDALDA都产生了线性决策边界。两个方法唯一不同的是,Logistic RegressionLogistic ~ RegressionLogistic Regression和LDALDALDA只在拟合的过程中不同,大多数人可能认为它俩结果类似,虽然如此但也并不一直如此。那么它们分别在什么时候用呢?
- LDALDALDA假设样本来自高斯分布,且每个类别的方差相同。当该假设被满足时,LDALDALDA优于Logistic RegressionLogistic ~ RegressionLogistic Regression。
- 当高斯分布的假设未被满足时,Logistic RegressionLogistic ~ RegressionLogistic Regression优于LDALDALDA。
-
-
再谈谈KNNKNNKNN
- 当预测X=xX=xX=x的类别时,KNNKNNKNN使用离xxx最近的kkk个样本中,出现此处最多的类别作为xxx的类别。
- 由于KNNKNNKNN是完全没有参数的方法,即对于决策边界的形状没有任何的约束,当真实决策边界为非线性时,使用KNNKNNKNN将会超越LDALDALDA和Logistic RegressionLogistic ~ RegressionLogistic Regression。
-
然后谈谈QDAQDAQDA
- QDAQDAQDA是无参数KNNKNNKNN,线性LDALDALDA,Logistic RegressionLogistic ~ RegressionLogistic Regression三个方法折衷的一个版本。由于QDAQDAQDA假设了决策边界为二次型,比起线性模型,能解决更广的问题。虽然没有KNNKNNKNN灵活,当训练样本数量有限的时候,QDAQDAQDA能产生较好的效果,因为它确实对决策边界做了假设。
-
最后总结一下各个方法应用的场景
- 当真实的决策边界为线性时,LDALDALDA,Logistic RegressionLogistic ~ RegressionLogistic Regression都会产生比较好的效果。
- 当真实的决策边界为非线性时,QDAQDAQDA表现更加出色
- 当真实的决策边界更为复杂时,KNNKNNKNN能够表现的更好,但需合理的控制KKK值。
本文为作者原创,转载需注明出处!