xgb.train дает низкую точность по сравнению с .fit () - PullRequest
0 голосов
/ 15 октября 2019

Я строю модель с xgboost для моих данных, которая содержит около 50 000 строк и около 550 столбцов после кодирования одной картинки. Моя целевая переменная - это мультиклассовая классификация с 150 переменными. Сначала я обучил свою модель параметрам по умолчанию.

xgb_model = xgb.XGBClassifier()
xgb_model.fit(x_train, y_train)

xgb_model.score(x_test,y_test) 

Поскольку размеры моих данных намного выше, чем у модели, которая тренировалась в течение 2,5 часов и показала точность 92%. После некоторых исследований я понял, что преобразование данных в DMatrix и обучение модели уменьшит время обучения, и я сделал это ниже.

from sklearn import preprocessing 
encoder = preprocessing.LabelEncoder()
y_train_tr = encoder.fit_transform(y_train)
y_test_tr = encoder.fit_transform(y_test)

dtrain = xgb.DMatrix(x_train, label = y_train_tr)
dtest = xgb.DMatrix(x_test, y_test_tr)

params = {‘objective’ =‘multi:softmax’, ‘num_class’: 150}
xgb_model_dm = xgb.train(params, dtrain)

Как и ожидалось, эта модель тренировалась в течение 11 минут, но моя точность составила 1,7%, чтоэто ужасноМожет кто-нибудь сказать мне, что на самом деле происходит здесь, почему моя точность так низка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...