成功解决ValueError: Shape of passed values is (1, 332), indices imply (1, 1)
成功解决ValueError: Shape of passed values is (1, 332), indices imply (1, 1)
解决问题
ValueError: Shape of passed values is (1, 332), indices imply (1, 1)
def XGBR_train(X, y):
train_x, test_x, train_y, test_y = train_test_split(X, y, test_size=0.3, random_state=0)
test_preds = pd.DataFrame({"label": test_y}, index=[1,332])
XGBR_model = XGBRegressor(
learning_rate=0.03, # 默认0.3
n_estimators=100, # 树的个数
max_depth=4 )
XGBR_model.fit(train_x, train_y)
test_preds['y_pred'] = XGBR_model.predict(test_x)
XGBR_model_score = metrics.r2_score(test_preds['label'], test_preds['y_pred'])
# GridSearchCV和cross_val_score的结果一样
# scores = cross_val_score(XGBR_model, X, y, scoring='r2')
# print(scores)
# gs = GridSearchCV(XGBR_model, {}, cv=3, verbose=3).fit(X, y)
return XGBR_model, XGBR_model_score
解决思路
值错误:传递值的形状为(1,332),索引表示(1,1)
解决方法
可知,形状为一维数据,所以索引只能在数据的维数范围内,不可超出!
赞 (0)