Python||报错:ValueError: endog has evaluated to an array with multiple columns that has shape (805, 2)

一、问题描述

        搭建逻辑回归模型时报错,模型代码如下:

import statsmodels.api as sm
formula = "y ~ x1+x2+x3+x4+x5+x6+x7+x8+x9+x10+x11+x12+x13+x14+x15+x16+x17+x18+x19"
model = sm.Logit.from_formula(formula, data = train_data)

        报错情况如下:

二、具体原因

        ValueError错误是指输入函数的值错误,可能是参数出错。
        报错提示信息的大致意思为:endog的值可能有多个值,造成这个的原因可能是endog是非数值型数据,endog是指因变量,所以可能是建模时的因变量的值不是数值型,因此解决思路是将非数值型的强制转换为数值型即可。

三、解决问题

        “y ~ x1+x2+x3+x4+x5+x6+x7+x8+x9+x10+x11+x12+x13+x14+x15+x16+x17+x18+x19”里的变量都是在train_data数据集里的,因此使用train_data.info()查看train_data数据集的相关信息,结果如下

 

        因此需要将变量y从object型转换为float64型,再次查看结果如下

train_data.y=np.array(train_data.y,dtype=np.float) #转换类型
train_data.info()  #查看信息

 

         再次运行逻辑回归模型的代码就不会报错啦~~~

        nice(✿◠ ‿   ◠)

猜你喜欢

转载自blog.csdn.net/Inochigohan/article/details/120943144