XGBoost python: неправильная форма ввода, ошибка несоответствия имени объекта - PullRequest
0 голосов
/ 25 февраля 2020

Двоичный классификатор для прогнозирования, если 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))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...