【问题标题】:y should be a 1d array, got an array of shape {} instead. What should I do?y 应该是一维数组,取而代之的是一个形状为 {} 的数组。我该怎么办?
【发布时间】:2022-01-09 00:01:29
【问题描述】:
%matplotlib inline
from google.colab import files
import numpy as np
import xgboost as xgb
import pandas as pd
from sklearn.metrics import accuracy_score
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error
from xgboost import plot_importance



train = pd.read_csv("train.csv", index_col=0)
test = pd.read_csv("test.csv", index_col=0)
submission = pd.read_csv("sample_submission.csv")

X = train.iloc[:,:9]
Y = train.iloc[:,9:]
X


seed = 5
test_size = 0.33
X_train, X_test, y_train, y_test = train_test_split(X, Y, test_size=test_size, random_state=seed)


model = xgb.XGBClassifier()
model.fit( X_train, y_train)

test.csv test

train.csv train


ValueError Traceback(最近一次调用最后一次) 在 () 2 3 模型 = xgb.XGBClassifier() ----> 4 model.fit(X_train, y_train)

2 帧 /usr/local/lib/python3.7/dist-packages/sklearn/utils/validation.py 在 column_or_1d(y,警告) 1023 第1024章 -> 1025 "y 应该是一维数组,得到一个形状为 {} 的数组。".format(shape) 1026) 1027

ValueError: y 应该是一维数组,得到一个形状为 (3210, 0) 的数组。

请帮帮我.. 我该怎么办..?

【问题讨论】:

  • Please don't post screenshots of text or data。它们无法被屏幕阅读器等自适应技术的用户搜索或复制,甚至无法使用。相反,将代码作为文本直接粘贴到您的问题中。如果选择它并单击{} 按钮或Ctrl+K,则代码块将缩进四个空格,这将导致其呈现为代码。如果您有表格数据,请将其格式化为文本表格。

标签: python deep-learning


【解决方案1】:

我认为您的错误来自您用于 y 值的数据类型:它是一个数据框,因为您使用此语法 Y = train.iloc[:,9:]。您应该尝试使用 Pandas 系列:Y = train.iloc[:,9](删除末尾的冒号)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-17
    • 1970-01-01
    • 2021-10-06
    • 2021-10-15
    • 1970-01-01
    • 2021-08-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多