目标变量形状应该是什么?应该是 (n,1) 还是 (n,)?

数据挖掘 熊猫 逻辑回归
2022-03-06 21:41:34

我在 Titanic 数据集上尝试了逻辑回归,但使用了 2 个不同的代码:第一个代码:

# did all the data preparation
d = pd.read_csv("titanic.csv")

x = d.values[:,1:]
y = d.values[:,1]
m.fit(x_train,y_train)

并拟合数据,准确率达到 97.3%。但在我使用的第二个代码中

x = d.values[:,1:]
y = d.values[:,:1]
m.fit(x_train, y_train.ravel())

并将数据拟合到模型中,得到了 75.7% 的准确率。

唯一的区别是,在第一个代码中,y 形状是 (183,),而在第二个代码中,y 形状是 (183,1)。那么哪一个是正确的?目标变量的形状应该是什么?在这里找到完整的第一个代码第二个代码

1个回答

问题是您正在检索不同的列y在每个选项上。

在选项 1 中

y = d.values[:, :1]

您正在正确地检索Survived柱子

在选项 2 中

y = d.iloc[:,1]

检索列的内容Pclass

简而言之:要获得相同的结果,只需将选项 2 更改 y = d.iloc[:,1]

y = d.iloc[:,0]