You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Statsmodels中MNLogit拟合及摘要全为NaN问题求助

解决Statsmodels Logistic回归出现NaN结果的方案

以下是几种常见导致该问题的原因及对应解决方法:

  • 完全分离特征(Perfect Separation)
    当某个特征能完全区分目标变量的两类样本时(比如特征值为A时目标全为1,特征值为B时目标全为0),逻辑回归的系数会趋向无穷大,直接导致拟合过程出现NaN。
    解决:

    1. 逐一检查每个特征与目标变量的交叉表,识别出这类特征并移除;
    2. 使用带正则化的逻辑回归,在Logit模型中指定penalty='l2'或penalty='l1',同时设置C参数控制正则强度。
  • 特征维度远大于样本量
    如果特征数量远超样本数量,模型无法从数据中学习到有效规律,拟合时会出现NaN。
    解决:

    1. 通过特征选择(如方差过滤、互信息法)减少特征数量;
    2. 增加训练样本量。
  • 极端类别不平衡
    当目标变量某一类占比极高(比如99%以上),模型拟合过程会出现数值不稳定。
    解决:

    1. 检查目标变量的类别分布;
    2. 使用过采样(如SMOTE)、欠采样调整样本分布,或在模型中设置class_weight='balanced'(部分模型支持)。
  • 特征数值尺度差异过大
    不同特征的数值范围差距悬殊(比如一个特征取值为10000,另一个为0.001),会导致优化器在迭代过程中出现数值溢出或不稳定。
    解决:对所有特征做标准化(如Z-score标准化)或归一化处理后再拟合模型。

  • 优化器设置问题
    Statsmodels默认的优化器可能在某些数据场景下无法收敛,导致结果NaN。
    解决:

    1. 更换优化器,比如在拟合时指定method='bfgs'或method='newton';
    2. 调整最大迭代次数,设置maxiter=1000(或更大值),给优化器足够的迭代空间。

内容的提问来源于stack exchange,提问作者vijaya lakshmi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 20:50:35