Я новичок в Python и машинном обучении.Я искал в интернете свой вопрос и пробовал решение, которое предложили люди, но все еще не получил его.Был бы очень признателен, если кто-нибудь может мне помочь.
Я работаю над своей первой моделью XGboost.Я настроил параметры с помощью xgb.XGBClassifier, а затем хотел бы обеспечить монотонность переменных модели.По-видимому, я должен использовать xgb.train () для обеспечения монотонности, как показано в моем коде ниже.
xgb.train () может выполнять функцию предиката (), но НЕ прогнозирует функцию ().Итак, как я могу получить вероятность от xgb.train ()?
Я пытался использовать «цель»: «мульти: softprob» вместо «цель»: «двоичный: логистика».затем оценка = bst_constr.predict (dtrain).Но счет не кажется мне правильным.
Большое вам спасибо.
params_constr={
'base_score':0.5,
'learning_rate':0.1,
'max_depth':5,
'min_child_weight':100,
'n_estimators':200,
'nthread':-1,
'objective':'binary:logistic',
'seed':2018,
'eval_metric':'auc'
}
params_constr['monotone_constraints'] = "(1,1,0,1,-1,-1,0,0,1,-1,1,0,1,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,)"
dtrain = xgb.DMatrix(X_train, label = y_train)
bst_constr = xgb.train(params_constr, dtrain)
X_test['score']=bst_constr.predict_proba(X_test)[:,1]
AttributeError: 'Booster' object has no attribute 'predict_proba'