もう知っている "xgboost.XGBRegressor
は、XGBoost用のScikit-Learn Wrapperインターフェースです。」
しかし、彼らは他の違いを持っていますか?
xgboost.train
は、勾配ブースティングメソッドを介してモデルをトレーニングするための低レベルAPIです。
xgboost.XGBRegressor
とxgboost.XGBClassifier
は、DMatrix
を準備して渡すラッパー(Scikit-Learnのようなラッパーと呼ばれます)です。対応する目的関数とパラメーター。結局、fit
呼び出しは単純に次のように要約されます。
self._Booster = train(params, dmatrix,
self.n_estimators, evals=evals,
early_stopping_rounds=early_stopping_rounds,
evals_result=evals_result, obj=obj, feval=feval,
verbose_eval=verbose)
これは、XGBRegressor
およびXGBClassifier
で実行できるeverythingは、基礎となるxgboost.train
関数を介して実行できることを意味します。その逆は明らかに正しくありません。たとえば、xgboost.train
のいくつかの有用なパラメーターはXGBModel
APIでサポートされていません。顕著な違いのリストは次のとおりです。
xgboost.train
を使用すると、各反復の最後に適用されるcallbacks
を設定できます。xgboost.train
は、xgb_model
パラメータを介してトレーニングの継続を許可します。xgboost.train
は、eval関数の最小化だけでなく、最大化も可能にします。@ Maxim、xgboost 0.90(またはそれ以前)では、これらの違いはもう存在しません xgboost.XGBClassifier.fit :
callbacks
xgb_model
_パラメータとの連結を許可します私が見つけるのは_evals_result
_です。これは、フィット(clf.evals_result()
)後に個別に取得する必要があり、得られるdict
は、それを利用できないため異なります。ウォッチリスト内の評価の名前(watchlist = [(d_train, 'train'), (d_valid, 'valid')]
)。