- 分类模型
- 二分类模型
- 逻辑回归(logistic regression)
- Fisher线性判别分析
- 多分类模型
- Spss中的多分类线性判别分析
- 多分类逻辑回归
- 二分类模型
一、数据预处理:生成虚拟变量
- 处理定性变量
- 留一个虚拟变量就行
- 修改apple_2为isapple,增加可读性
- 数据处理好后,记得保存
二、逻辑回归logistic regression
- 对于因变量为分类变量的情况,可以使用逻辑回归进行处理。把y看成事件发生的概率,y>0.5表示发生;y<0.5表示不发生
2.1 线性概率模型(Linear Probability Model,简记LPM)
- 直接用原来的回归模型进行回归
- 存在的问题
-
①内生性问题yi只能去0或1(回归系数估计出来不一致且有偏)
-
② 由
可见,预测值可能出现,但
是概率值∈ [0,1],故存在此不现实的问题。
-
2.2 两点分布(伯努利分布)
- 在原来基础上加入连接函数(且连接函数为Sigmoid函数),使得预测值保证分布[0,1]之间
连续函数的取法
-
由于有解析表达式(而标准正态分布的cdf没有),所以计算logistic模型比probit模型更为方便
-
两者函数图像对比:
% probit_logistic_figure.m 文件
f1=@(x) normcdf(x); % 标准正态分布的累积分布函数
fplot(f1, [-4,4]); % 在-4到4上画出匿名函数的图形
hold on;
grid on;
f2=@(x) exp(x)/(1+exp(x));
fplot(f2, [-4,4]);
legend('标准正态分布的cdf','sigmoid函数','location','SouthEast')
求解β^
- 线性模型求解→最小二乘法
- 非线性模型(即如上的logistic模型)求解→极大似然估计方法
- 求解β^:
- 逻辑回归的推导
- 极大似然估计:可参考概率论与数理统计的教材,或搜索相应视频学习
β^怎么用于分类
论文中说明语句
- 通过极大似然估计能估计得β^
- 通过β^ 计算得 y^,进而进行分类预测
2.3 Spss求解逻辑回归
-
数据预处理后
- 分类功能介绍(自变量有分类变量时的处理)
-
方法①(较麻烦不推荐×):先创建虚拟变量,然后删除任意一列以排除完全多重共线性的影响;
- 如果没有生成虚拟变量这个选项,则说明SPSS没有安装到默认位置
- 如果没有生成虚拟变量这个选项,则说明SPSS没有安装到默认位置
-
方法②(推荐√):直接点击分类,然后定义分类协变量,Spss会自动帮我们生成(如下图)
-
- 保存功能介绍
- 概率:y=1发生的概率
- 组成员:分类结果属于哪一组
- 选项功能介绍
- 向前(向后)逐步回归可选择的统计量有所区别。进入(或者除去)自变量的显著性水平可以自己调节。
- 进入:向前逐步回归时调整
- 除去:向后逐步回归时调整
- 分类分界值:如0.5,>0.5归类1,<0.5归类0
- 最大迭代次数:采用极大似然估计是一个迭代的算法,会涉及通过迭代次数求得最优解
- 向前(向后)逐步回归可选择的统计量有所区别。进入(或者除去)自变量的显著性水平可以自己调节。
- 样式功能用的很少,不用调整
- 自主抽样功能(用的也很少):当样本数太少(如10个)时,就能通过自主抽样扩大样本数量。
- 分类功能介绍(自变量有分类变量时的处理)
-
结果分析(重点关注如下两个)
-
①预测成功率
- 19个苹果样本中,预测出来为苹果的有14个,预测出来的正确率为73.7%;
- 19个橙子样本中,预测出来为橙子的有15个,预测出来的正确率为78.9%;
- 对于整个样本,逻辑回归的预测成功率为76.3%.
-
②逻辑回归系数表
- 表格中的回归系数保留了小数点后三位,可双击表格点进去看更加精确的数据。
- 表格中的回归系数保留了小数点后三位,可双击表格点进去看更加精确的数据。
-
-
验证:代入训练数据,看得到的结果是否准确
-
预测其他的值(如上例中4个空缺,即测试集):带入即可
2.4 提高预测成功率
- 在第7节可知回归模型分为预测和解释,本节中逻辑回归用于预测,因此可在logistic回归模型中加入平方项、交互项等。
- 加入平方项后的结果
- 问题:造成了过拟合现象
- 问题:造成了过拟合现象
2.5 如何确定合适的模型
- 把数据分为训练组和测试组,用训练组的数据来估计出模型,再用测试组的数据来进行测试。(训练组和测试组的比例一般设置为80%和20%)
- 举例:已知分类结果的水果ID为1‐38,前19个为苹果,后19个为橙子。每类水果中随机抽出3个ID作为测试组,剩下的16个ID作为训练组。(比如:17‐19、36‐38这六个样本作为测试组)
- 比较设置不同的自变量后的模型对于测试组的预测效果。
- 注意:为了消除偶然性的影响,可以对上述步骤多重复几次(多更改几次训练组和测试组),最终对每个模型求一个平均的准确率,这个步骤称为交叉验证。
三、Fisher线性判别分析
3.1 Fisher线性判别思想
- 给定训练集样例,设法将样例投影到一维的直线上,使得同类样例的投影点尽可能接近和密集,异类投影点尽可能远离。
- 核心问题:找到线性系数向量w
3.2 Spss操作
-
数据预处理后:
-
结果分析
-
①线性系数向量w()
-
②分类函数系数
- 贝叶斯判别函数系数表,将样品的各参数带入2个贝叶斯判别函数,比较得出的函数值,哪个函数值较大就将该样品归于哪一类。
- 贝叶斯判别函数系数表,将样品的各参数带入2个贝叶斯判别函数,比较得出的函数值,哪个函数值较大就将该样品归于哪一类。
-
③表格含义
-
四、多分类问题
- 举例:现在水果的类别一共有四种,其四个指标的平均值如下表所示
- 问题:对ID为60‐67的八个水果进行归类
- 问题:对ID为60‐67的八个水果进行归类
4.1 Fisher判别分析用于多分类
- 根据多分类数,调整最大值
- 注意:这里SPSS不能自动帮我们生成虚拟变量,我们可以在EXCEL表中使用“替换”功能来快速生成虚拟变量。
- 注意:这里SPSS不能自动帮我们生成虚拟变量,我们可以在EXCEL表中使用“替换”功能来快速生成虚拟变量。
- 分类结果
4.2 Logistic回归用于多分类
- 将连接函数:Sigmoid函数 推广为 Softmax函数
Logistic回归用于多分类的Spss操作
- 注意:这里要将几个自变量放到协变量中(课程视频有误,但思路正确)
- Spss中因子和协变量的区别
- 因子指分类型变量,例如性别、学历等
- 协变量指连续型变量,例如面积、重量等。
- 统计选项的重点:分类表要勾选
结果分析
-
如果遇到了如下警告,说明数据中自变量之间存在多重共线性,或者样本中某些类别的观测值较少。但由于使用多元逻辑回归是出于分类的目的,因此重点应关注分类预测的准确度,这个警告可以忽略。
-
下表展示了各个类别分类的准确率,总体的准确率是84.7%。对于第2类和第4类分类效果较好,都是100%,而第1类和第3类效果较差,其中19个第1类的样本中有5个样本被误认为了第3类;而19个第3类的样本中也有4个样本被误认为了第1类.
-
返回到数据列表,可以看出Spss输出了属于每一类的概率,并将概率最大的那个类别作为预测结果。
附言
- 参考课程可见 B站清风数模,如上仅作个人学习后笔记整理。