Ошибка IndexError: индекс кортежа вне диапазона (XGBoost)

#python #xgboost #index-error

#python #xgboost #ошибка индекса

Вопрос:

Я пытаюсь предсказать еженедельные продажи в нескольких магазинах. Я хочу использовать XGBoost , но я продолжаю сталкиваться с этой ошибкой:

 IndexError: tuple index out of range
 

Мой код:

 from sklearn.model_selection import train_test_split

features = ["Store",'Dept','Temperature','Fuel_Price','CPI','Unemployment']

y = allmergecopy.Weekly_Sales
X = allmergecopy[features]
X_train, y_train, X_valid, y_valid = train_test_split(y,X,test_size=.2, train_size=.8)

from xgboost import XGBRegressor

my_model = XGBRegressor(n_estimators=100)
my_model.fit(X_train, y_train)
 

Для справки:

y_train.shape = (84314,), X_train.shape = (337256,) .

Ответ №1:

Используйте X как:

X=allmergecopy.drop("Weekly_Sales",axis=1)

Ответ №2:

вместо :

 X_train, y_train, X_valid, y_valid = train_test_split(y,X,test_size=.2, train_size=.8)
 

запись :

 x_train,x_valid,y_train,y_valid= train_test_split(x,y,test_size=0.2)
 

а затем используйте :

 from xgboost import XGBRegressor
my_model = XGBRegressor(n_estimators=100)
my_model.fit(x_train, y_train)