成功解决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)

 

解决方法

可知,形状为一维数据,所以索引只能在数据的维数范围内,不可超出!