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