Logistic Regression
三种常用的分类方法
- Logistic Regression
- Linear Discriminant Analysis
- K-NN Negihbor
为什么不用Linear Regression建模分类模型?
-
若使用Linear Regression来建模
P(x)=β0+β1xP(x) = \beta_0 + \beta_1xP(x)=β0+β1x
-
上述模型存在两个问题
- 概率可能为负
- 概率可能超过1
Logistic Regression建模
P(x)=eβ0+β1x1+eβ0+β1xP(x) = \frac{e^{\beta_0 + \beta_1x}}{1 + e^{\beta_0 + \beta_1x}}P(x)=1+eβ0+β1xeβ0+β1x
-
上述的模型是一根曲线,且范围在(0, 1)(0, ~ 1)(0, 1)
-
此外,可以得到
P(x)1−P(x)=eβ0+β1x\frac{P(x)}{1-P(x)} = e^{\beta_0 + \beta_1x}1−P(x)P(x)=eβ0+β1x
-
由此可以推出
log(P(x)1−P(x))=β0+β1xlog(\frac{P(x)}{1-P(x)}) = \beta_0 + \beta_1xlog(1−P(x)P(x))=β0+β1x
-
在上面的式子中,logitlogitlogit关于xxx是线性的;若是xxx增加1−unit1-unit1−unit,那么logitlogitlogit平均增加β1x\beta_1xβ1x。但是P(x)P(x)P(x)和xxx不是线性关系的,若是xxx增加1−unit1-unit1−unit,P(x)P(x)P(x)改变的值根据当前值决定。若是忽略xxx的值,只要β1\beta_1β1为正数,那么增加xxx值会增加P(x)P(x)P(x)的概率。
Estimating the Regression Coefficients
-
可用最大似然的方法估计β0,β1\beta_0,\beta_1β0,β1的值
-
如何验证相关系数的有效性
z−statistic=β1SE(β1^)z-statistic = \frac{\beta_1}{SE(\hat{\beta_1})}z−statistic=SE(β1^)β1
z−statisticz-statisticz−statistic的值越大,说明SE(β1^)SE(\hat{\beta_1})SE(β1^)的值越小;这将成为拒绝H0H_0H0的主要原因。
Confounding现象
- 在估计拖欠率的时候,只有studentstudentstudent作为predictorpredictorpredictor。此时,若身份是学生,那么拖欠率会降低
- 但,增加了balance,incomebalance, incomebalance,income这两个predictorpredictorpredictor后,此时若身份是一个学生,那么拖欠率会变高。为什么呢?这是因为balancebalancebalance和studentstudentstudent之间存在相关性。balancebalancebalance越大,会导致身份为studentstudentstudent的拖欠率会升高。就像Linear RegressionLinear ~ RegressionLinear Regression中,一旦predictorpredictorpredictor间存在了相关性,YYY的增长不仅会和一个predictorpredictorpredictor增长一个1−unit1-unit1−unit相关。
2. Linear Discriminant Analysis
Logistic RegressionLogistic ~ RegressionLogistic Regression建立了Response YResponse ~ YResponse Y的条件分布;而在给定predictorpredictorpredictor的时候,LDALDALDA根据不同的类别,对predictorpredictorpredictor的分布进行建模。
为什么有了Logistic Regression,还需要LDA?
- 当各类之间的边缘明确时,LDALDALDA比Logistic RegressionLogistic ~ RegressionLogistic Regression更加的稳定
- 当nnn较小时,xxx基本成正态分布,此时LDALDALDA更为稳定
- 当分类类别在222类之上时,LDALDALDA更加流行。
分类中的贝叶斯理论
-
定义符号
- πk\pi_kπk:随机选中一个样本属于第kkk类别的先验概率
- fk(x)≡Pr(X=x∣Y=k)f_k(x) \equiv Pr(X=x|Y=k)fk(x)≡Pr(X=x∣Y=k):类别kkk下样本分布的概率密度函数
-
贝叶斯理论
pk(x)=Pr(Y=k∣X=x)=πkfk(x)∑l=1kπlfl(x)p_k(x) = Pr(Y=k|X=x) = \frac{\pi_kf_k(x)}{\sum_{l=1}^k\pi_lf_l(x)}pk(x)=Pr(Y=k∣X=x)=∑l=1kπlfl(x)πkfk(x)
- 可用缩写pk(x)p_k(x)pk(x)代表当X=xX=xX=x时,Y=kY=kY=k的概率
- 根据公式,若要估计pk(x)p_k(x)pk(x),可以先估计πk,fk(x)\pi_k,f_k(x)πk,fk(x)再带入贝叶斯公式
- πk\pi_kπk比较容易估计,可以通过计算训练集中各类别数据的占比;但fk(x)f_k(x)fk(x)的计算比较有挑战性。
-
pk(x)p_k(x)pk(x)被称之为X=xX=xX=x属于第kkk个类别的后验概率;如果能找一种方法估计pk(x)p_k(x)pk(x),就可以得到一个近似贝叶斯分类器的分类器。
Linear Discriminant Analysis for p=1
-
假设此时只有一个predictorpredictorpredictor,p=1p=1p=1;我们需要获得fk(x)f_k(x)fk(x)的估计,来计算pk(x)p_k(x)pk(x)。那么对于一个样本而言,pk(x)p_k(x)pk(x)最大的那个kkk就是它所属的类别。
-
为了估计fk(x)f_k(x)fk(x),需要做一些假设
-
假设fk(x)f_k(x)fk(x)服从正态分布,一维正太分布的概率密度函数如下:
fk(x)=12σke−12σk2(x−μk)2f_k(x) = \frac{1}{\sqrt2\sigma_k}e^{-\frac{1}{2\sigma_k^2}(x-\mu_k)^2}fk(x)=2σk1e−2σk21(x−μk)2
其中,μk,σk\mu_k,\sigma_kμk,σk是第kkk个类别的均值和方差
-
此外,假设所有kkk个类别共享相同的方差,统称为σ2\sigma^2σ2
-
-
将fk(x)f_k(x)fk(x)代入pk(x)p_k(x)pk(x)中,得到如下式子:
pk(x)=πk12σke−12σk2(x−μk)2∑l=1kπl12σle−12σl2(x−μl)2 公式(1)p_k(x) = \frac{\pi_k\frac{1}{\sqrt2\sigma_k}e^{-\frac{1}{2\sigma_k^2}(x-\mu_k)^2}}{\sum_{l=1}^k\pi_l\frac{1}{\sqrt2\sigma_l}e^{-\frac{1}{2\sigma_l^2}(x-\mu_l)^2}} ~~~~~~~~ 公式(1) pk(x)=∑l=1kπl2σl1e−2σl21(x−μl)2πk2σk1e−2σk21(x−μk)2 公式(1)
其中,πk\pi_kπk声明了一个样本属于第kkk个类别的先验概率
-
若是对公式(1)公式(1)公式(1)取log()log()log(),可以得到以下式子:
δk(x)=xμkσ2−μk22σ2+log(πk) 公式(2)\delta_k(x) = x\frac{\mu_k}{\sigma^2} - \frac{\mu_k^2}{2\sigma^2} + log(\pi_k) ~~~~~~~~ 公式(2)δk(x)=xσ2μk−2σ2μk2+log(πk) 公式(2)
-
对于公式222,当k=2,π1=π2k=2, \pi_1=\pi_2k=2,π1=π2时,计算如下式子:
δ1(x)−δ2(x)>0⇒xσ2(μ1−μ2)−12σ2(μ12−μ22)>0⇒2x(μ1−μ2)>μ12−μ22\delta_1(x) - \delta_2(x) > 0 \\ \Rightarrow \frac{x}{\sigma^2}(\mu_1-\mu_2) - \frac{1}{2\sigma^2}(\mu_1^2 - \mu_2^2) > 0 \\ \Rightarrow 2x(\mu_1 - \mu_2) > \mu_1^2 - \mu_2^2δ1(x)−δ2(x)>0⇒σ2x(μ1−μ2)−2σ21(μ12−μ22)>0⇒2x(μ1−μ2)>μ12−μ22
此时可以得到得到一个决策边界,如下:
x=μ12−μ222(μ1−μ2)=μ1+μ22 公式(3)x = \frac{\mu_1^2-\mu_2^2}{2(\mu_1-\mu_2)} = \frac{\mu_1+\mu_2}{2} ~~~~~~~~ 公式(3)x=2(μ1−μ2)μ12−μ22=2μ1+μ2 公式(3)
-
在上面的例子中,我们假设xxx来自正态分布,所以我们知道fk(x)f_k(x)fk(x),但需要估计μ,σ\mu,\sigmaμ,σ;此外,我们还假设了π1=π2\pi_1=\pi_2π1=π2。那在实践中,我们依然假设每个类别中的xxx来自正态分布,但需要估计μ1,μ2,...,μk\mu_1,\mu_2,...,\mu_kμ1,μ2,...,μk,以及π1,π2,...,πk\pi_1,\pi_2,...,\pi_kπ1,π2,...,πk和σ2\sigma^2σ2。
-
LDALDALDA通过估计πk,μk,σ2\pi_k,\mu_k,\sigma^2πk,μk,σ2来近似贝叶斯分类器。在实践中,当p=1p=1p=1时,可以估计出
{μk^=1nk∑i:yi=kxiσ^2=1n−k∑k=1k∑i:yi=k(xi−μ^k)2\begin{cases} \hat{\mu_k} = \frac{1}{n_k}\sum_{i:y_i=k}x_i \\ \hat{\sigma}^2 = \frac{1}{n-k}\sum_{k=1}^k\sum_{i:y_i=k}(x_i - \hat{\mu}_k)^2 \end{cases}{μk^=nk1∑i:yi=kxiσ^2=n−k1∑k=1k∑i:yi=k(xi−μ^k)2
其中,nnn为训练样本总量;nkn_knk为类别kkk的样本总量;可以看出
- μ^\hat{\mu}μ^仅仅是第kkk个类别中所有样本的均值
- σ^2\hat{\sigma}^2σ^2是每kkk个类别样本方差的加权平均
-
如何计算πk\pi_kπk?
-
有的时候该项已知,直接用
-
当缺少πk\pi_kπk时,LDALDALDA使用训练集中某类样本占总样本量的比例来估计πk\pi_kπk
π^k=nkn\hat{\pi}_k = \frac{n_k}{n}π^k=nnk
-
最终可以判别X=xX=xX=x属于不同类别的概率,式子如下
δ^k(x)=xμ^kσ^2−μ^k22σ^2+log(π^k) 公式(4)\hat{\delta}_k(x) = x\frac{\hat{\mu}_k}{\hat{\sigma}^2} - \frac{\hat{\mu}_k^2}{2\hat{\sigma}^2} + log(\hat{\pi}_k) ~~~~~~~~ 公式(4)δ^k(x)=xσ^2μ^k−2σ^2μ^k2+log(π^k) 公式(4)
-
LDA中的"Linear"就源于判别方法δ^k\hat{\delta}_kδ^k是x的线性方法。
-
最后,重申以下:当p=1p=1p=1时,LDALDALDA假设每个类别都来自正态分布,均值不同,但共享同一个方差;估计π,μ,σ\pi,\mu,\sigmaπ,μ,σ后,带入到贝叶斯分类器中即可。
本文为作者原创,转载需注明出处!