xgb.train дает низкую точность по сравнению с .fit()

Я создаю модель с xgboost для своих данных, которая имеет около 50000 строк и около 550 столбцов после кодирования onehot. Моя целевая переменная - это мультиклассовая классификация со 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%, что ужасно. Может кто-нибудь сказать мне, что на самом деле здесь происходит, почему моя точность так низка.

0 ответов

Другие вопросы по тегам