分类模型 · 学习笔记一

文章目录

分类模型

以下内容是我对清风数学建模教程中的分类模型的学习笔记

  1. 对于二分类模型,将介绍逻辑回归(logistic regression)和Fisher线性判别分析两种分类算法;
    这种模型也被称为二元逻辑回归,特点是因变量Y是定类模型,并且只能使用两个数字去表示,即0和1
  2. 对于多分类模型,我们将简单介绍SPSS中的多分类线性判别分析和多分类逻辑回归的操作步骤

分类算法一:逻辑回归

一、直接采用线性概率模型是否可行?

分类模型 · 学习笔记一

采用线性概率模型将会产生两个问题:

  1. 内生性问题 由上述分析可知,显然其扰动项和自变量相关。u i u_i u i ​的表达式里显然还有了自变量x i x_i x i ​,会造成严重的 内生性问题,而内生性就会造成回归系数估计出来不一致并且有偏。
  2. 逻辑问题 规定的预测值y ^ \hat{y}y ^​按理来说只能去0或者1,但是通过线性概率模型估计出来的y ^ \hat{y}y ^​则不一定是0或者1,而是有可能出现y ^ > 1 \hat{y}>1 y ^​>1和y ^ < 1 \hat{y}的情况

; 二、模型的构建

1. 两点分布(伯努利分布)

分类模型 · 学习笔记一

注意表达式F ( x , β ) = F ( x i ′ β ) F(\pmb{x,\beta}) = F(\pmb{x_i’\beta})F (x ,βx ,β)=F (x i ′​βx i ′​β)的含义,其实意思是F F F是对x i ′ β x_i’\beta x i ′​β这个多项式操作的函数,如可以采用多元一次多项式的形式x i ′ β = β 0 + β 1 x 1 + ⋯ + β n x n x_i’\beta = \beta_0+\beta_1x_1+\dots+\beta_nx_n x i ′​β=β0 ​+β1 ​x 1 ​+⋯+βn ​x n ​当然还可以有其他的形式,并入在多项式添加二次、三次乃至高次项的元,但是我们统一将这些多项式形式表达为x i ′ β \pmb{x_i’\beta}x i ′​βx i ′​β

; 2. 那么连接函数 F ( x , β ) F(x,\beta)F (x ,β) 这个值域为[0,1]的函数,形式究竟是什么呢?

现在提供两个函数:

  • 标准正态分布的累计密度函数Φ ( x ) = ∫ − ∞ x 1 2 π e − t 2 2 d t \Phi(x) = \int_{-\infty}^x\frac{1}{\sqrt{2\pi}}e^{-\frac{t^2}{2}}dt Φ(x )=∫−∞x ​2 π​1 ​e −2 t 2 ​d t
  • S i g m o i d Sigmoid S i g m o i d函数S ( x ) = e x 1 + e x S(x) = \frac{e^x}{1+e^x}S (x )=1 +e x e x ​

分类模型 · 学习笔记一

那么得到的连接函数的形式如下

3. Logitist回归和probit回归

分类模型 · 学习笔记一

强调:由于probit回归没有解析表达式,而logistic回归有解析表达式(是积分的形式),因此logistic回归更为方便
但我们确定了 连接函数后,下一个问题就是进行参数估计,对β \pmb{\beta}ββ向量进行估计

; 4. 参数估计

对于线性函数我们一般可以采用 最小二乘法来对参数进行估计,但是对于非线性模型,我们可以采用 最大似然估计法(我理解为条件概率最大)

分类模型 · 学习笔记一

对似然函数进行分析,当l n L ( β ∣ y , x ) lnL(\beta|y,x)l n L (β∣y ,x )最大时,求出β \beta β的估计值

(1)梯度下降法复习
  1. 梯度下降法的原理:
    对于问题:
    分类模型 · 学习笔记一
  2. 从θ 0 , θ 1 \theta_0,\theta_1 θ0 ​,θ1 ​开始
  3. 持续改变θ 0 , θ 1 \theta_0,\theta_1 θ0 ​,θ1 ​的值,使得代价函数$$
    分类模型 · 学习笔记一
  4. 梯度下降法的步骤:
  5. 确定损失函数的形式。在案例中,即是最大似然函数(虽然我们要确定他最大而不是最小,这只是一个负号的问题)
  6. 初始化参数(选择合适的初始值,即选择合适的β 1 , β 2 , … , β n \beta_1,\beta_2,\dots,\beta_n β1 ​,β2 ​,…,βn ​)
  7. 推导出递推公式,知道损失函数达到局部最优解。 具体步骤可以参考这篇文章:https://www.cnblogs.com/bonelee/p/7253508.html
    最后得到的迭代公式是:θ j ( i + 1 ) = θ j ( i ) + α ( y ( i ) − h θ ( x ( i ) ) ) x j ( i ) \theta_j^{(i+1)} = \theta_j^{(i)} + \alpha(y^{(i)}-h_{\theta}({x^{(i)}}))x_j^{(i)}θj (i +1 )​=θj (i )​+α(y (i )−h θ​(x (i )))x j (i )​其中x j ( i ) x_j^{(i)}x j (i )​表示第i次迭代第j列的数,与θ j ( i ) \theta_j^{(i)}θj (i )​相对应。而h θ ( x ( i ) ) h_{\theta}({x^{(i)}})h θ​(x (i ))的解释为:h θ ( x ) = 1 1 + e − θ T x h_{\theta}(x) = \frac{1}{1+e^{-\theta^Tx}}h θ​(x )=1 +e −θT x 1 ​

; 5. 分类方法

分类模型 · 学习笔记一

因此在论文中的书写流程是

  • 写出选择的连接函数类型(sigmoid函数)
  • 将y ^ 理解成’ \hat{y}理解成’y ^​理解成’y = 1 发生的概率’ 发生的概率’发生的概率’,写出其表达式
  • 进行参数估计,估计出合适的β \beta β值

三、 SPSS使用

这两个表格来自于SPSS”方法 = 输入模块”下的结果

1. 模型预测成功率

对于苹果和橙子的二元问题,我们可以可以看到SPSS的预测成功率(假设概率阈值为0.5)

分类模型 · 学习笔记一

其中预测为橙子(因变量为0)的成功率为78.3%,预测为苹果(因变量为1)的成功率为73.7%

; 2. β 0 \beta_0 β0 ​ 的参数估计

分类模型 · 学习笔记一
  1. 根据图中我们可以知道对于 mass,width,height和color_score四元变量而言(也就是所谓的x i x_i x i ​),其对应的系数就是图中的B列。
  2. 对于显著性水平而言,如果取α = 0.05 \alpha = 0.05 α=0.05那么明显宽度和高度是符合的,在α = 0.1 \alpha = 0.1 α=0.1情况下,颜色是可以通过显著性检验的。但是明显质量是无法通过显著性检验,实验结果还是可以的。

3. 使用模型进行预测

将需要预测的四元数值带入我们的模型中,也就是下面图片中的式子(我们默认x i ′ β = β 0 + β 1 x 1 + b e t a n x n + ⋯ + β n x n x_i’\beta = \beta_0+\beta_1x_1+beta_nx_n+\dots+\beta_nx_n x i ′​β=β0 ​+β1 ​x 1 ​+b e t a n ​x n ​+⋯+βn ​x n ​)

分类模型 · 学习笔记一

我们可以查询输出图表中的最后两列来观察预测的概率,也就是y ^ \hat{y}y ^​

分类模型 · 学习笔记一

; 四、 问题解析

1. 如果存在分类变量(即定性变量)应该怎么办

创建虚拟变量,然后删除任意一列以排除多重共线性的影响

2. 如何在 x i ′ β x_i’\beta x i ′​β 中添加交互项

在自变量中多添加一列,比如添加mass的平方项。点转换中的 计算变量即可。
采用这种方法可以改变我们所关心的两个指标,即正确率和显著性。

但是加入过多的自变量,会造成过拟合的问题,导致虽然正确率很高,但是不够显著

分类模型 · 学习笔记一

过拟合所造成的问题是:对于样本数据的预测会非常好,但是对样本外数据的预测可能会很差。如图中由蓝线到绿线就是一个过拟合。原本篮线可以在有一定误差的情况下,完成对数据的分类;现在变成过拟合的绿线,虽然对样本来说分类的正确率100%,但是对于新的数据而言他的效果很差

; 3. 确定合适的模型

从上面对过拟合的分析可以知道,添加平方项可以改善模型,但也可能过拟合。因此我们应该如何确定合适的模型?我们可以采用如下方法(交叉验证):

分类模型 · 学习笔记一

分类算法二:Fisher线性判别分析

一、算法思想

LDA(Linear Discriminant Analysis)是一种经典的线性判别方法,又称为Fishser判别分析。其思想如下: 给定训练集样例(即图片中的两类数据’+’号和’-‘号) ,希望找出一个超平面能够分隔’+’号和’-‘号。
那么如何寻找呢?我们需要利用超平面的法向量,设法将样例投影到一维的直线上(这个直线是任意,我们任取一条直线做分析,找到最优直线) ,使得同类样例的投影点尽可能的接近和密集(观察图中’+’号的投影都集中在右上方的区域,’-‘号的投影都集中在右下方的区域) ,异类投影点尽可能地远离(’+’号和’-‘号两类样本的距离是非常远的)

分类模型 · 学习笔记一

可以定义 类内距离类间距离来进行分析
超平面定义为y = w T x y = \pmb{w^Tx}y =w T x w T x,因此但我们完成了w \pmb{w}w w的参数估计时,就可以将新的样本数x \pmb{x}x x代入公式y = w T x y = \pmb{w^Tx}y =w T x w T x进行计算,得到的y如果大于0,则分到’+’号;小于0,分到’-‘号

; 二、SPSS操作

1. 操作

  1. 具体操作:分析-分类-判别式
  2. 分组变量就是因变量(即需要判断的变量)
  3. 定于分组变量的取值范围(对于二分类问题,就是0~1)
  4. 勾选统计-系数中的费舍尔和未标准两个选项
  5. 勾选显示-摘要表
  6. 勾选保存-预测组成员与预测概率(预测组成员表示二分类问题中究竟归属于哪个组)

2. 结果分析

分类模型 · 学习笔记一
  1. 典型判别函数系数:获得超平面
  2. 分类函数系数:这应该是基于贝叶斯准则的判别方式,其表格返回的是线性多项式的系数,我们带入预测数据就可以得到贝叶斯判别的越策结果。

; 三、多分类问题

1. Fisher线性判别分析用于多分类模型

在SPSS操作上是非常简单的,只需要修改分组变量(也就是因变量)的范围即可。其原理目前我大概理解上是跟二元的原理相同,就可能是这样,如果三元分类问题,那我们就需要找到三条直线,来使得两两元之间的类内距离很小,类间距离很大。
最后的分类结果:

分类模型 · 学习笔记一

同样的,在左图中我们可以查看其预测结果(分类组别)和预测概率,在右图我们可以查看其预测的准确率

; 2.logistic回复用于解决多分类问题

将连接函数由sigmoid函数推广为softmax函数,引用清风老师的提供的资料https://www.cnblogs.com/bonelee/p/8127411.html

(1) Softmax函数的具体理解:

对于这个函数,我是这样理解的。首先确定训练集{ ( x ( 1 ) , y ( 1 ) ) , … , ( x ( m ) , y ( m ) ) } { (x^{(1)},y^{(1)}),\dots,(x^{(m)},y^{(m)}) }{(x (1 ),y (1 )),…,(x (m ),y (m ))},其中y有k个取值,即y ( i ) ∈ { 1 , 2 , … , k } y^{(i)} \in { 1,2,\dots,k }y (i )∈{1 ,2 ,…,k }

我理解上x ( i ) x^{(i)}x (i )不一定只是一个树,如果有n个自变量,那他就是n维的

对于给定的输入x x x,我们可以针对每一个类别j j j估算出其概率值p = ( y = j ∣ x ) p = (y = j|x)p =(y =j ∣x ),因此,对于每一个类别,都应该存在一个 连接函数去估算概率,都存在一次 参数估计求得最优的参数。我们假设函数如下:h θ ( x ( i ) ) = [ p ( y ( i ) = 1 ∣ x ( i ) ; θ ) p ( y ( i ) = 2 ∣ x ( i ) ; θ ) ⋮ p ( y ( i ) = k ∣ x ( i ) ; θ ) ] = 1 ∑ j = 1 k e θ j T x ( i ) [ e θ 1 T x ( i ) e θ 2 T x ( i ) ⋮ e θ k T x ( i ) ] h_{\theta}(x^{(i)}) = \begin{bmatrix} p(y^{(i)}=1|x^{(i)};\theta)\ p(y^{(i)}=2|x^{(i)};\theta)\ \vdots\ p(y^{(i)}=k|x^{(i)};\theta)\ \end{bmatrix} = \frac{1}{\sum_{j=1}^{k}e^{\theta_j^Tx^{(i)}}} \begin{bmatrix} e^{\theta_1^Tx^{(i)}}\ e^{\theta_2^Tx^{(i)}}\ \vdots\ e^{\theta_k^Tx^{(i)}} \end{bmatrix}h θ​(x (i ))=⎣⎡​p (y (i )=1∣x (i );θ)p (y (i )=2∣x (i );θ)⋮p (y (i )=k ∣x (i );θ)​⎦⎤​=∑j =1 k ​e θj T ​x (i )1 ​⎣⎡​e θ1 T ​x (i )e θ2 T ​x (i )⋮e θk T ​x (i )​⎦⎤​

其中θ j \theta_j θj ​就是我们需要估计的参数,他是一个向量。多少维需要看我们有多少个因变量
这个表达式我们有对向量进行加粗,是向量的量是:x ( i ) , θ 2 T x^{(i)},\theta_2^T x (i ),θ2 T ​。如果x ( i ) x^{(i)}x (i )是n维向量,他们组成的多项式可以是:θ 1 x 1 ( i ) + θ 2 x 2 ( i ) + ⋯ + θ n x n ( i ) \theta_1x_1^{(i)}+\theta_2x_2^{(i)}+\dots+\theta_nx_n^{(i)}θ1 ​x 1 (i )​+θ2 ​x 2 (i )​+⋯+θn ​x n (i )​其中,i i i取值范围为1 , 2 , … , k 1,2,\dots,k 1 ,2 ,…,k

(2)SPSS软件的操作

  1. 点击保存-勾选估计相应概率和预测类别
  2. 点击统计,上面会有许多统计量的分析,比如拟合优度等等。这项可选可不选

(3)对于多元逻辑回归同样可能存在过拟合的问题。解决方法与前文的二元逻辑回归提到的方法相同,就是交叉验证。

Original: https://blog.csdn.net/weixin_53195427/article/details/126818875
Author: 明·煜
Title: 分类模型 · 学习笔记一

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/667265/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球