GPB*_*GPB 6 python statsmodels
我正在尝试使用 statsmodels 中的 logit 模块对包含布尔值(“默认”)目标变量和两个特征(“fico_interp”、“home_ownership_int”)的数据集执行逻辑回归。所有三个值都来自同一数据框“traindf”:
from sklearn import datasets
import statsmodels.formula.api as smf
lmf = smf.logit('default ~ fico_interp + home_ownership_int',traindf).fit()
Run Code Online (Sandbox Code Playgroud)
这会生成一条错误消息:
ValueError:操作数无法与形状一起广播 (40406,2) (40406,)
怎么会发生这种事呢?
小智 5
问题是traindf['default']包含非数字值。
以下代码重现了该错误:
import pandas as pd, numpy as np, statsmodels.formula.api as smf
df = pd.DataFrame(np.random.randn(1000,2), columns=list('AB'))
df['C'] = ((df['B'] > 0)*1).apply(str)
lmf = smf.logit('C ~ A', df).fit()
Run Code Online (Sandbox Code Playgroud)
以下代码是修复此实例的可能方法:
df.replace(to_replace={'C' : {'1': 1, '0': 0}}, inplace = True)
lmf = smf.logit('C ~ A', df).fit()
Run Code Online (Sandbox Code Playgroud)
这篇文章报告了一个类似的问题。
| 归档时间: |
|
| 查看次数: |
4904 次 |
| 最近记录: |