首页 > 解决方案 > 在构建逻辑回归模型时获得“检测到完美分离,结果不可用”

问题描述

作为我的任务的一部分,我正在构建逻辑回归模型,但在构建它时出现错误“检测到完美分离,结果不可用”。

**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

标签: pythonpandas

解决方案


这是一个模型设置问题,因为完美的分离,你的模型不能收敛。完美分离意味着您的自变量中有一个(或多个)变量可以完全区分因变量 = 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

对您的问题的简短回答是在自变量中找到此类变量并将其从模型中删除。


推荐阅读