阿里云的课程有逻辑回归的内容的,学一下。
原理
分类变量:又称定性变量或离散变量,观察个体只能属于互不相容的类别中的一组。一般用非数字表达。与之相对的是定量变量或连续变量,变量具有数值特征。
常见的有有序变量(年龄等级,收入等级等),名义变量(性别,天气,职业等)。
自变量包含分类变量:名义变量通常使用虚拟变量(哑变量),有序变量通过选取连续函数构建位置结构模型或者规则结构模型。
因变量包含分类变量:通常不满足回归分析的基本假设,通常使用新的回归方法。
问题:误差项非正态分布;误差项零均值异方差;回归方程有限制。
改进:①回归函数改用限制在[0,1]之间的连续曲线,而不再是直线回归方程。常用的是logistic函数(或称sigmoid函数)。其形式为f(x) = 1/(1+1/e^-x)
因变量取值为0,1,不适合直接作为回归的因变量,改用因变量取值为1的概率π作为回归因变量。因此也叫线性概率模型。
使用logit变换可以将logistic函数变换为线性函数。
用最大似然法估计参数值。
求解用到了梯度法。
梯度:是一个向量,表示某一函数在该点处的方向导数沿着该方向取得最大值,即函数在该点处沿着该方向变化最快,变化率最大。
梯度下降法:一种最优化算法,也称为最速下降法,沿着负梯度方向去减小函数值从而接近目标值。求最小值。
梯度上升法:一种最优化算法,也称最速上升法,沿着梯度方向去增加函数值从而接近目标值。求最大值。又有批量梯度上升法,随机梯度上升法等,小批量梯度上升法。
循环终止条件:设定循环阈值,当两次迭代值之差小于阈值时停止。或者定义最大循环次数,到达后即终止。
逻辑回归的基本假设
①因变量是二分类的分类变量,或某事件的发生率,并且是数值型变量。
②残差和因变量都要服从二项分布,二项分布对应的是分类变量,所以不是正态分布,进而不是用最小二乘法,而是最大似然法来解决方程估计和检验问题。
③自变量和logistic概率是线性关系。
④各观测对象之间相互独立,共线性问题会影响逻辑回归的参数估计和预测。
对于多分类变量,也可以转化为多个二项逻辑回归解决。还可以使用softmax作为损失函数,将输出映射到(0,1)。
用sklearn自带的iris数据集实测一下。
代码见https://github.com/zwdnet/MyQuant/blob/master/20/logist.py
模型的评估、诊断与调优
构造统计量,用卡方检验。回归系数的检验构造Wald统计量,用卡方检验,或者计算拟合优度。自变量筛选与线性回归类似。前进法,后退法,逐步回归法。
除了与线性回归共有的问题,逻辑回归还有过离散,空单元,完全分类等特有的问题。
sklearn貌似还是不能进行统计检验,看看分数吧。
0.8066666666666666 还不错。
我发文章的四个地方,欢迎大家在朋友圈等地方分享,欢迎点“在看”。
我的个人博客地址:https://zwdnet.github.io
我的知乎文章地址: https://www.zhihu.com/people/zhao-you-min/posts
我的博客园博客地址: https://www.cnblogs.com/zwdnet/
我的微信个人订阅号:赵瑜敏的口腔医学学习园地