Python xgb: ValueError: "несоответствие feature_names" - PullRequest
0 голосов
/ 13 марта 2020

Я пытаюсь изучить основы XGBoost и разрабатывает скрипт, который разбивает некоторые данные, которые я нашел на Kaggle, о вспышках вируса Короны в Китае. Код и модель работают, но по какой-то причине, когда я использую модель для создания нового прогноза, я получаю «ValueError: несоответствие feature_names». Новые тестовые данные имеют двумерный массив с 2 значениями, как и тестовые данные, но я все еще получаю ошибку значения.

train = df[['RegionCode','ProvinceCode']].astype(int)
test = df['infected'].astype(int)

X_test, X_train, y_test, y_train = train_test_split(train, test, test_size=0.2, random_state=42)

train = xgb.DMatrix(X_train, label=y_train)
test = xgb.DMatrix(X_test, label=y_test)

param = {
'max_depth':4,
'eta':0.3,
'num_class': 2}
epochs = 10

model = xgb.train(param, train, epochs)

Весь приведенный выше код работает, но приведенная ниже краткая информация дает мне ошибку:

testArray=np.array([[13, 67]])

test_individual = xgb.DMatrix(testArray)

print(model.predict(test_individual))

Есть идеи, что я делаю неправильно?

1 Ответ

0 голосов
/ 15 марта 2020

Похоже, вы упускаете основы использования функции train_test_split в sklearn.

X_test, X_train, y_test, y_train = train_test_split(train, test, test_size=0.2, random_state=42)

В приведенной выше строке ожидается, что train будет иметь все функции, которые будут использоваться для обучение, в то время как тест ожидает целевой объект.

Попробуйте исправить это в первую очередь.

...