我正在对数据集使用Logistic回归,其目标变量为0s和1s。我使用了.replace()函数,并相应地替换了它们。
> data['target']=data['target'].replace({0:"No",1:"yes"})
代码运行正常。但是当我对数据建模时,
model_log=sm.Logit(data['target'],data.iloc[:,2:]).fit()
它显示以下错误:
ValueError:将熊猫数据转换为对象的numpy dtype。检查输入np.asarray(data)获得数据。
当您使用iloc选择X数据时,它返回一个熊猫数据框。According to statsmodel documentation,登录时期望X和y为array_like。您需要将数据帧转换为所需的数据类型。可以使用to_numpy方法将数据帧转换为numpy数组。
model_log=sm.Logit(data['target'].astype(float),data.iloc[:,2:].to_numpy()).fit()