python - 在构建逻辑回归模型时获得“检测到完美分离,结果不可用”
问题描述
作为我的任务的一部分,我正在构建逻辑回归模型,但在构建它时出现错误“检测到完美分离,结果不可用”。
**X_train :-**
year amt_spnt rank
1 -1.723034 -0.418500 0.272727
2 0.716660 2.088507 -0.636364
3 1.174102 -0.558333 -1.545455
4 -0.503187 -1.297451 1.181818
5 1.326583 -0.628250 -1.545455
**y_train :-**
1 0
2 1
3 1
4 0
5 1
Name: result, dtype: int64
**Logistic Model code:-**
import statsmodels.api as sm
logm1 = sm.GLM(y_train,(sm.add_constant(X_train)), family = sm.families.Binomial())
logm1.fit().summary()
**Dataset before and after scaling**
**Image for evidence:-**
[![Evidence][1]][1]
[1]: https://i.stack.imgur.com/cTncA.png
解决方案
这是一个模型设置问题,因为完美的分离,你的模型不能收敛。完美分离意味着您的自变量中有一个(或多个)变量可以完全区分因变量 = 0 和因变量 = 1。请参见以下示例:
是 0 0 0 0 0 0 1 1 1 1
X 1 2 3 4 4 4 5 6 7 8
如果 X <= 4,Y = 0
如果 X > 4,Y = 1
对您的问题的简短回答是在自变量中找到此类变量并将其从模型中删除。
推荐阅读
- gateway - Azure IoT Edge 离线功能
- python - Python 2 中 Sha1 的默认编码是什么?
- python - 使用稀疏列对 pandas.DataFrame 中的行进行基于索引的访问
- react-native - 应用程序因 react-native-beacons-manager 崩溃
- .net - 在没有重复成员的情况下实现通用和非通用接口
- python - 来自csv名称中的字符串的熊猫名称数据框
- node.js - 有没有办法在不编辑我的 PATH 变量的情况下使用 Node.js oracledb 库?
- sql - 为什么我的 SQL 查询会增加数据库并填满磁盘?
- android - 如何查找设备是否具有圆角,如果是,如何在颤振中找到其半径?
- linux - 有没有办法找到 linux 操作系统名称并将其用作 if 语句中的参数?