Двоичный классификатор для прогнозирования, если di git равен 5 или нет, имеет X_train и y_train (и аналогично X_test и y_test следующим образом. (Аналогично набору данных MNIST)
X=train_df.drop('label', axis=1)
y=train_df['label']
X_train, X_test, y_train_full, y_test_full = train_test_split(X, y, test_size=0.20, random_state=66)
#For digit 5, output label=1, for any other digit output label=0
y_train=((y_train_full==5).astype(int))
y_test=((y_test_full==5).astype(int))
X_train
pixel0 pixel1 pixel2 pixel3....................pixel783
0 1 1 0 1
0 0 0 1 1
y_train
label
1
0
и т. Д.
В основном X_train представляет пиксели di git. Y_train представляет метку di git, например если di git равно 5, то метка будет 1, если di git не 5, метка будет равна нулю.
Я реализую XGBoost следующим образом:
#from xgboost.xgbclassifier import XGBClassifier
from xgboost import XGBClassifier
classifier = XGBClassifier()
classifier.fit(X_train, y_train)
print('Accuracy on test set:',classifier.score(X_test,y_test))
---->print('Accuracy on test set:',classifier.score(X_test,y_test))
Error: ValueError: feature_names mismatch:
Затем, чтобы устранить несоответствие имен объектов, я стараюсь ниже, как упоминалось во многих ответах, что я должен изменить X_train и y_train на numpy массивы:
X_train=train_df.drop('label', axis=1).values
X_test=train_df['label'].values
classifier.fit(X_train,X_test)
----->classifier.fit(X_train,X_test)
Error: ValueError: bad input shape (28000, 784)
Что я хочу:
Я просто хочу подогнать XGBoost и вычислить его показатель точности, как это на тестовом наборе:
print('Accuracy on test set:',classifier.score(X_test,y_test))