首页 > 解决方案 > 在 Logistic 回归中将连续数据转换为分类数据时出错

问题描述

我正在对我的数据集使用逻辑回归,该数据集的目标变量为 0 和 1。我使用了 .replace() 函数并相应地替换了它们。

> data['target']=data['target'].replace({0:"No",1:"yes"})

代码运行良好。但是当我对数据进行建模时,

model_log=sm.Logit(data['target'],data.iloc[:,2:]).fit()

它显示以下错误:

ValueError:Pandas 数据转换为对象的 numpy dtype。使用 np.asarray(data) 检查输入数据。

标签: castingdata-sciencelogistic-regressionmodeling

解决方案


当您使用iloc选择 X 数据时,它会返回一个熊猫数据框。根据 statsmodel 文档,logit 期望 X 和 y 是 array_like。您需要将数据框转换为所需的数据类型。您可以使用to_numpy方法将数据框转换为 numpy 数组。

model_log=sm.Logit(data['target'].astype(float),data.iloc[:,2:].to_numpy()).fit()

推荐阅读