LogisticRegression(solver='liblinear')无预期输出问题求助
解决LogisticRegression拟合后无详细输出的问题
直接打印训练后的LogisticRegression对象,默认只会显示模型的初始化参数配置,不会输出你预期的系数、统计量等详细信息。要获取这些内容,需要调用模型的对应属性或使用专门的统计建模工具:
1. 用sklearn获取核心模型参数
如果你只需要特征系数和截距,直接调用模型的属性即可:
from sklearn.linear_model import LogisticRegression loj = LogisticRegression(solver='liblinear') loj_model = loj.fit(X, y) # 输出特征系数 print("特征系数:", loj_model.coef_) # 输出截距项 print("截距:", loj_model.intercept_)
2. 获取类似统计软件的详细输出
你预期的那种包含p值、置信区间等的详细摘要,sklearn本身并不提供,需要使用statsmodels库来实现:
import statsmodels.api as sm # 给特征矩阵添加常数项(statsmodels要求显式传入截距) X_with_const = sm.add_constant(X) # 构建并训练逻辑回归模型 logit_model = sm.Logit(y, X_with_const) result = logit_model.fit() # 打印完整的统计摘要 print(result.summary())
本质区别在于:sklearn专注于机器学习的预测能力,默认输出偏向模型配置;而statsmodels更侧重统计推断,会提供你想要的详细统计信息。
内容的提问来源于stack exchange,提问作者Fatih Mehmet Koç
相关产品推荐
相关产品推荐

