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

Logistic回归模型ValueError排查及预测准确率评估咨询

问题分析与解决方案

错误原因

你遇到的ValueError核心原因是调用了错误的对象执行预测:

你已经通过result = full_logit_model.fit()得到了拟合后的模型结果对象,但却调用了未拟合的full_logit_model(原始GLM模型实例)的predict()方法。在statsmodels中,未拟合的GLM模型的predict()方法需要显式传入拟合好的参数(params),而你直接传入了特征矩阵activity_data[explanatory_cols],导致方法误将这个特征矩阵当作参数矩阵计算线性预测值——参数应该是(12,)的一维数组(对应12个特征的系数),但你传入的是(5420,12)的二维矩阵,两者点乘自然出现维度不匹配的错误。

正确评估模型准确率的步骤

要正确评估模型,你需要使用拟合后的result对象执行预测,再将预测概率转换为类别标签,最后和真实标签对比计算准确率。具体代码如下:

1. 生成预测结果

# 使用拟合后的result对象生成预测概率值(可传入训练数据或新数据)
pred_probs = result.predict(activity_data[explanatory_cols])

# 将概率值转换为二元类别(以0.5为阈值,可根据业务需求调整)
pred_classes = (pred_probs > 0.5).astype(int)

2. 计算准确率

你可以用工具函数或手动计算:

方法一:使用sklearn工具

from sklearn.metrics import accuracy_score

accuracy = accuracy_score(activity_data['active'], pred_classes)
print(f"训练集上的模型准确率: {accuracy:.4f}")

方法二:手动统计计算

# 统计预测正确的样本数量
correct_count = (pred_classes == activity_data['active']).sum()
# 计算准确率
accuracy = correct_count / len(activity_data['active'])
print(f"训练集上的模型准确率: {accuracy:.4f}")

额外说明

  • 若要对新数据预测,只需确保新数据的特征列与训练时的explanatory_cols完全一致(包括虚拟变量的前缀、列名),再调用result.predict(new_data[explanatory_cols])即可。
  • 除准确率外,你还可以通过result.summary()查看模型的统计指标(如系数显著性、AIC值等),更全面地评估模型性能。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 06:17:28