其他分享
首页 > 其他分享> > Statsmodels-广播形状不同吗?

Statsmodels-广播形状不同吗?

作者:互联网

我正在尝试使用statsmodels中的logit模块对数据集执行逻辑回归,该数据集包含目标变量为boolean(默认值)和两个功能(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()

生成错误消息:

ValueError: operands could not be broadcast together with shapes (40406,2) (40406,)

怎么会这样

解决方法:

问题是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()

以下代码是修复此实例的一种可能方法:

df.replace(to_replace={'C' : {'1': 1, '0': 0}}, inplace = True)
lmf = smf.logit('C ~ A', df).fit()

post报告一个类似的问题.

标签:python,statsmodels
来源: https://codeday.me/bug/20191120/2042928.html