Statistic Learning 2

本文深入解析Logistic Regression、Linear Discriminant Analysis与K-Nearest Neighbor三种常见分类算法,阐述其原理与应用,对比分析Logistic Regression与Linear Regression的区别,探讨LDA在多分类问题上的优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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}1P(x)P(x)=eβ0+β1x

  • 由此可以推出

    log(P(x)1−P(x))=β0+β1xlog(\frac{P(x)}{1-P(x)}) = \beta_0 + \beta_1xlog(1P(x)P(x))=β0+β1x

  • 在上面的式子中,logitlogitlogit关于xxx是线性的;若是xxx增加1−unit1-unit1unit,那么logitlogitlogit平均增加β1x\beta_1xβ1x。但是P(x)P(x)P(x)xxx不是线性关系的,若是xxx增加1−unit1-unit1unitP(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})}zstatistic=SE(β1^)β1

    z−statisticz-statisticzstatistic的值越大,说明SE(β1^)SE(\hat{\beta_1})SE(β1^)的值越小;这将成为拒绝H0H_0H0的主要原因。

Confounding现象

  • 在估计拖欠率的时候,只有studentstudentstudent作为predictorpredictorpredictor。此时,若身份是学生,那么拖欠率会降低
  • 但,增加了balance,incomebalance, incomebalance,income这两个predictorpredictorpredictor后,此时若身份是一个学生,那么拖欠率会变高。为什么呢?这是因为balancebalancebalancestudentstudentstudent之间存在相关性。balancebalancebalance越大,会导致身份为studentstudentstudent的拖欠率会升高。就像Linear RegressionLinear ~ RegressionLinear Regression中,一旦predictorpredictorpredictor间存在了相关性,YYY的增长不仅会和一个predictorpredictorpredictor增长一个1−unit1-unit1unit相关。

2. Linear Discriminant Analysis

Logistic RegressionLogistic ~ RegressionLogistic Regression建立了Response YResponse ~ YResponse Y的条件分布;而在给定predictorpredictorpredictor的时候,LDALDALDA根据不同的类别,对predictorpredictorpredictor的分布进行建模。

为什么有了Logistic Regression,还需要LDA?

  • 当各类之间的边缘明确时,LDALDALDALogistic 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=xY=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=kX=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

  • 假设此时只有一个predictorpredictorpredictorp=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σk1e2σ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σl1e2σl21(xμl)2πk2σk1e2σ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μk2σ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)>02x(μ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^=nk1i:yi=kxiσ^2=nk1k=1ki: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μ^k2σ^2μ^k2+log(π^k)        (4)

    • LDA中的"Linear"就源于判别方法δ^k\hat{\delta}_kδ^k是x的线性方法。

最后,重申以下:当p=1p=1p=1时,LDALDALDA假设每个类别都来自正态分布,均值不同,但共享同一个方差;估计π,μ,σ\pi,\mu,\sigmaπ,μ,σ后,带入到贝叶斯分类器中即可。

本文为作者原创,转载需注明出处!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值