我正在尝试训练XGBClassifier,但出现此错误。我正在使用xgboost版本1.1.0。我使用pip install xgboost来安装xgboost,并且还对其进行了升级。
param_dict = {'n_estimators':i, 'max_depth':j, 'objective':'binary:logistic'}
clf = xgb.XGBClassifier(param_dict)
clf.fit(X_tr_1, y_train)
XGBoostError: [08:00:25] C:\Users\Administrator\workspace\xgboost-win64_release_1.1.0\src\objective\objective.cc:26: Unknown objective function: `{'objective': 'binary:logistic', 'eta': 0.02, 'max_depth': 4}`
Objective candidate: survival:aft
Objective candidate: binary:hinge
Objective candidate: multi:softprob
Objective candidate: multi:softmax
Objective candidate: rank:ndcg
Objective candidate: rank:map
Objective candidate: rank:pairwise
Objective candidate: reg:squaredlogerror
Objective candidate: reg:logistic
Objective candidate: binary:logistic
Objective candidate: reg:gamma
Objective candidate: reg:tweedie
Objective candidate: count:poisson
Objective candidate: survival:cox
Objective candidate: binary:logitraw
Objective candidate: reg:linear
Objective candidate: reg:squarederror
猜测您必须使用GridSearch技术找出最佳的超参数,或者甚至明确指定它,将字典对象param_dict
作为XGBoost分类器方法的参数传递的正确方法是-
clf = xgb.XGBClassifier(**param_dict)