一、前言
这篇文章复盘分类模型。对于二分类模型,本文介绍逻辑回归和Fisher线性判别分析两种分类算法;对于多分类模型,我们将简单介绍Spss中的多分类线性判别分析和多分类逻辑回归的操作步骤
利用spass软件对数据进行预处理:生成虚拟变量
1.生成虚拟变量
2.删除多余虚拟变量
3.修改虚拟变量的名称
二、逻辑回归的原理
从宏观上分析,逻辑回归就是在原来回归思想上,添加了一个连接函数
问题分析的角度:对于因变量为分类变量的情况,可以使用逻辑回归来进行处理,即把y看成是事件发生的概率,y >= 0.5 表示事件发生; y <= 0.5表示事件不发生
2.1线性概率模型
直接用原来的回归模型进行归回分析
回归形式:
模型问题一:内生性问题
模型问题二:预测值不现实问题
2.2连接函数
用两点分布(伯努利分布)介绍连接函数的概念
2.3回归模型中连接函数的取法
回归模型中连接函数应该满足的条件:
连接函数取法一:可以取为标准正态分布的累积密度函数(一般用于Probit定序回归问题)
连接函数取法二:可以取为Sigmoid函数(一般用于逻辑回归问题)
2.4两种连接函数的图像对比
MATLAB代码:
f1=@(x) normcdf(x); % 标准正态分布的累积密度函数
fplot(f1, [-4,4]); % 在-4到4上画出函数f1的图形
hold on; % 不关闭作图窗口
grid on; % 显示网格线
f2=@(x) exp(x)/(1+exp(x)); % Sigmoid函数
fplot(f2, [-4,4]); % 在-4到4上画出函数f2的图形
legend('标准正态分布的cdf','sigmoid函数','location','SouthEast')
图像:
2.5连接函数的求解
对于线性函数的参数的求解一般用最小二乘法,对于非线性函数的参数求解一般用极大似然法进行估计
推导过程:
2.6具体逻辑回归分析
三、用spass实现逻辑回归
具体操作:
回归结果:
3.1 分类变量的处理办法
- 先创建虚拟变量,然后删除任意一列以排除完全多重共线性的影响
- 二元回归中直接点击分类选项,然后定义分类协变量,Spss会自动帮我们生成(推荐)
3.2 预测效果差的解决办法
在逻辑回归的因变量中添加平方项、交互项等
3.3 过拟合现象
虽然预测能力提高了,但是容易发生过拟合的现象。对于样本数据的预测非常好,但是对于样本外的数据的预测效果可能会很差
3.4 如何选择模型,防止过拟合
把数据分为训练组和测试组,用训练组的数据来估计出模型,再用测试组的数据来进行测试。(训练组和测试组的比例一般设置为80%和20%)
注意:为了消除偶然性的影响,可以对上述步骤多重复几次,最终对每个模型求一个平均的准确率,这个步骤称为交叉验证
四、Fisher线性判别分析
Fisher判别分析,该方法思想比较简单:给定训练集样例,设法将样例投影到一维的直线上,使得同类样例的投影点尽可能接近和密集,异类投影点尽可能远离
利用spass具体实现
结果分析:
五、多分类问题
说明:数据集的获取,关注微信公众号,回复“分类模型”即可
- 利用Fisher判别分析解决多分类问题
注意:这里SPSS不能自动帮我们生成虚拟变量,我们可以在EXCEL表中使用“替换”功能来快速生成虚拟变量(kind)
结果:
2. 利用逻辑回归解决多分类问题
将二元逻辑回归中的连接函数:Sigmoid函数推广为Softmax函数即可
利用spass实现:
多分类结果:
分析:预测结果非常准确,要注意过拟合现象
更多有关于分类问题的经典获奖论文,关注公众号,回复,“分类模型”,即可免费领取!!!