清风数学建模笔记——分类模型

二分类(逻辑回归+fisher线性判别)与多分类模型

引例

例子

数据预处理

由于水果类别是文字信息,所以要将定性数据转化成0-1变量
SPSS操作:

转换
创建虚变量
删除多余的变量 只保留一组
修改变量名字-例子中为isapple

逻辑回归本质还是回归分析的一种,对于因变量为分类变量的情况,我们可以把y看成事件发生的概率, y ≥ 0.5 y\ge0.5 y0.5表示发生; y < 0.5 y\lt0.5 y<0.5表示不发生。

逻辑回归

线性概率模型

y i = β 0 + β 1 x 1 i + β 2 x 2 i + ⋯ + β k x k i + μ i y_{i}=\beta_{0}+\beta_{1} x_{1 i}+\beta_{2} x_{2 i}+\cdots+\beta_{k} x_{k i}+\mu_{i} yi=β0+β1x1i+β2x2i++βkxki+μi
写成向量乘积形式(简写一下):
y i = x i ′ β + u i ( i = 1 , 2 , ⋯   , n ) y_{i}=\boldsymbol{x}_{\boldsymbol{i}}^{\prime} \boldsymbol{\beta}+u_{i}(i=1,2, \cdots, n) yi=xiβ+ui(i=1,2,,n)

问题一:
内生性(看扰动项与自变量是否相关): y 0 y_{0} y0只能取1或者0

u i = { 1 − x i ′ β , y i = 1 − x i ′ β , y i = 0 u_{i}=\left\{\begin{array}{cc} 1-\boldsymbol{x}_{\boldsymbol{i}}^{\prime} \boldsymbol{\beta} & , y_{i}=1 \\ -\boldsymbol{x}_{\boldsymbol{i}}^{\prime} \boldsymbol{\beta} & , y_{i}=0 \end{array}\right. ui={1xiβxiβ,yi=1,yi=0
显然 cov ⁡ ( x i , u i ) ≠ 0 \operatorname{cov}(x_{i}, u_{i}) \neq 0 cov(xi,ui)=0,因此会有内生性问题,就会导致回归系数估计出来不一致且有偏。

问题二:
由于把y看成事件发生的概率,但 y i ^ = β 0 ^ + β 1 ^ x 1 i + β 2 ^ x 2 i + ⋯ + β k ^ x k i \widehat{y_{i}}=\widehat{\beta_{0}}+\widehat{\beta_{1}} x_{1 i}+\widehat{\beta_{2}} x_{2 i}+\cdots+\widehat{\beta_{k}} x_{k i} yi =β0 +β1 x1i+β2 x2i++βk xki,预测值可能出现 y i ^ > 1 \widehat{y_{i}}\gt1 yi >1 y i ^ < 0 \widehat{y_{i}}\lt0 yi <0的不现实情况

解决方法

由于二分类,因此可以看成是伯努利分布。

事件10
概率p1-p

在给定 x \boldsymbol{x} x的情况下,考虑y的情况如下:
{ P ( y = 1 ∣ x ) = F ( x , β ) P ( y = 0 ∣ x ) = 1 − F ( x , β ) \left\{\begin{array}{l} P(y=1 \mid \boldsymbol{x})=F(\boldsymbol{x}, \boldsymbol{\beta}) \\ P(y=0 \mid \boldsymbol{x})=1-F(\boldsymbol{x}, \boldsymbol{\beta}) \end{array}\right. {P(y=1x)=F(x,β)P(y=0x)=1F(x,β)
(一般 F ( x , β ) = F ( x i ′ β ) F(\boldsymbol{x}, \boldsymbol{\beta})=F(\boldsymbol{x}_{\boldsymbol{i}}^{\prime} \boldsymbol{\beta}) F(x,β)=F(xiβ))

F ( x , β ) F(\boldsymbol{x}, \boldsymbol{\beta}) F(x,β)被称为连接函数,只需要保证 F ( x , β ) F(\boldsymbol{x}, \boldsymbol{\beta}) F(x,β) 是定义在 [ 0 , 1 ] [0,1] [0,1] 上的函数(注意这里的 [ 0 , 1 ] [0,1] [0,1]是值域),就能保证 0 ≤ y ^ ≤ 1 0 \leq \hat{y} \leq 1 0y^1
计算 E ( y ∣ x ) E(y \mid \boldsymbol{x}) E(yx)可知其等于 P ( y = 1 ∣ x ) P(y=1 \mid \boldsymbol{x}) P(y=1x),因此可以用 y i ^ \widehat{y_{i}} yi 来作为分类的依据。

连接函数的取法
1.正态分布(probit回归)
2.Sigmoid函数(logistic回归)

一般用logistic回归,因为Sigmoid函数表示形式简单一点,有解析表达式,便于后续操作。
F ( x , β ) = S ( x i ′ β ) = exp ⁡ ( x i ′ β ) 1 + exp ⁡ ( x i ′ β ) F(\boldsymbol{x}, \boldsymbol{\beta})=S\left(\boldsymbol{x}_{\boldsymbol{i}}^{\prime} \boldsymbol{\beta}\right)=\frac{\exp \left(\boldsymbol{x}_{\boldsymbol{i}}^{\prime} \boldsymbol{\beta}\right)}{1+\exp \left(\boldsymbol{x}_{\boldsymbol{i}}^{\prime} \boldsymbol{\beta}\right)} F(x,β)=S(xiβ)=1+exp(xiβ)exp(xiβ)

操作说明

y i ^ = P ( y i = 1 ∣ x ) = S ( x i ′ β ^ ) = exp ⁡ ( x i ′ β ^ ) 1 + exp ⁡ ( x i ′ β ^ ) = e β 0 ^ + β ^ 1 x 1 i + β ^ 2 x 2 i + ⋯ + β ^ k x k i 1 + e β ^ 0 + β ^ 1 x 1 i + β ^ 2 x 2 i + ⋯ + β ^ k x k i \widehat{y_{i}}=P\left(y_{i}=1 \mid \boldsymbol{x}\right)=S\left(\boldsymbol{x}_{\boldsymbol{i}}^{\prime} \hat{\boldsymbol{\beta}}\right)=\frac{\exp \left(\boldsymbol{x}_{\boldsymbol{i}}^{\prime} \hat{\boldsymbol{\beta}}\right)}{1+\exp \left(\boldsymbol{x}_{\boldsymbol{i}}^{\prime} \hat{\boldsymbol{\beta}}\right)}=\frac{e^{\widehat{\beta_{0}}+\widehat{\beta}_{1} x_{1 i}+\widehat{\beta}_{2} x_{2 i}+\cdots+\widehat{\beta}_{k} x_{ki}}}{1+e^{\widehat{\beta}_{0}+\widehat{\beta}_{1} x_{1 i}+\widehat{\beta}_{2} x_{2 i}+\cdots+\widehat{\beta}_{k} x_{ki}}} yi =P(yi=1x)=S(xiβ^)=1+exp(xiβ^)exp(xiβ^)=1+eβ 0+β 1x1i+β 2x2i++β kxkieβ0 +β 1x1i+β 2x2i++β kxki

非线性模型,使用极大似然估计(MLE)进行估计,求出 y i ^ \widehat{y_{i}} yi
实际上相较于线性概率模型多了一个限制,使得值域能控制在 [ 0 , 1 ] [0,1] [0,1]内。

SPSS求预测值的操作:

分析
回归
二元logistic回归
因变量放入刚刚处理好的分类
自变量放入其他指标
分类:将定量变量转化为定性变量
保存:勾选概率和组成员
逐步回归可以在方法里面设置

结果分析:
仅有四个指标的预测成功率如下:
预测成功率
由显著性可以看出,回归的效果还是很好的,变量之间相关性小。
逻辑系数回归表

预测成功率不高怎么办:可在模型中加入平方项、交互项等
SPSS操作:转换-计算变量

但是容易发生过拟合现象:容易发现显著性变得很差。
导致对于样本数据的预测非常好,但是对于样本外的数据的预测效果可能会很差。

如何确定合适的模型

把数据分为训练组和测试组,用训练组的数据来估计出模型,再用测试组的数据来进行测试。(训练组和测试组的比例一般设置为80%和20%)

已知分类结果的水果ID为1‐38,前19个为苹果,后19个为橙子。
每类水果中随机抽出3个ID作为测试组,剩下的16个ID作为训练组。(比如:17‐19、36‐38这六个样本作为测试组)
比较设置不同的自变量后的模型对于测试组的预测效果。

(注意:为了消除偶然性的影响,可以对上述步骤多重复几次,最终对每个模型求一个平均的准确率,这个步骤称为交叉验证。)

Fisher线性判别分析

基本理论

寻找一个超平面分割所有的样例,所以核心问题就转化成了,寻找线性系数 ω \omega ω

在这里插入图片描述

SPSS操作说明

分析
分类
判别式
分组变量:y 定义范围最小值:0 最大值:1
统计:勾选费希尔和为标准化
分类:勾选摘要表
保存:勾选预测组成员和组成员概率

得到的效果与成功率差不多,会得到一个分类函数系数表,即贝叶斯判别函数系数表,将样品的各参数带入2个贝叶斯判别函数,比较得出的函数值,哪个函数值较大就将该样品归于哪一类。
论文里要放线性系数向量、成功率和结果

多分类

fisher

参考链接
SPSS:分组变量那边设置最小值:1 最大值:n(n表示n类别)

Logistic

将连接函数:Sigmoid函数 推广为 Softmax函数
参考链接
当成功率过于高的时候,要注意过拟合问题。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值