Я работаю над использованием XGBoost, чтобы делать прогнозы, используя набор данных iris. Модель обучена, но когда я пытаюсь сделать новый прогноз, я получаю следующую ошибку: ValueError: несоответствие feature_names.
import numpy as np
import pandas as pd
from sklearn.datasets import load_iris
iris = load_iris()
iris_df = pd.DataFrame(data= np.c_[iris['data'], iris['target']],
columns= iris['feature_names'] + ['target'])
iris_df.rename(columns={'sepal length (cm)':'sepal_length'}, inplace=True)
iris_df.rename(columns={'sepal width (cm)':'sepal_width'},inplace=True)
iris_df.rename(columns={'petal length (cm)':'petal_length'},inplace=True)
iris_df.rename(columns={'petal width (cm)':'petal_width'}, inplace=True)
data = iris_df[['sepal_length', 'sepal_width', 'petal_length', 'petal_width']]
target = iris_df[['targets']]
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(data, target, test_size=0.2, random_state=0)
import xgboost as xgb
train = xgb.DMatrix(X_train, label=y_train)
test = xgb.DMatrix(X_test, label=y_test)
param = {
'max_depth':4,
'eta':0.3,
'objective': 'multi:softmax',
'num_class': 3}
epochs = 10
model = xgb.train(param, train, epochs)
predictions = model.predict(test)
print(predictions)
from sklearn.metrics import accuracy_score
accuracy_score(y_test, predictions)
Весь приведенный выше код работает, но создание новых прогнозов приводит к ошибке:
testArray=np.array([[5.1,3.5,1.4,0.2]])
test_individual=xgb.DMatrix(testArray)
print(model.predict(test_individual))\
Как мне заставить работать новое предсказание?