0
我嘗試使用下面的PARAMS來訓練XGBoost模型PARAMS:如何從已保存的XGBoost模型
xgb_params = {
'objective': 'binary:logistic',
'eval_metric': 'auc',
'lambda': 0.8,
'alpha': 0.4,
'max_depth': 10,
'max_delta_step': 1,
'verbose': True
}
由於我輸入的數據是太大,不能完全加載到內存,I適應增量訓練:
xgb_clf = xgb.train(xgb_params, input_data, num_boost_round=rounds_per_batch,
xgb_model=model_path)
進行預測的代碼是
xgb_clf = xgb.XGBClassifier()
booster = xgb.Booster()
booster.load_model(model_path)
xgb_clf._Booster = booster
raw_probas = xgb_clf.predict_proba(x)
結果似乎不錯。但是當我試圖調用xgb_clf.get_xgb_params()
時,我得到了一個參數代碼,其中所有參數都被設置爲默認值。
我可以猜測,根本原因是當我初始化模型時,我沒有傳入任何參數。所以模型使用默認值進行初始化,但是當它預測時,它使用了一個內置的加速器使用一些預定義的參數。
但是,我想知道是否有任何方法,在將預先訓練好的助推器模型分配給XGBClassifier後,我可以看到用於訓練助推器的真實參數,但不能用於初始化分類。
謝謝大家。
謝謝您的回答。我以前使用sklearn的joblib.dump,它確實有效。但我沒有設法找到一種使用sklearn API逐步適應模型的方法。因此,請你請讓我知道如何去做? (遞增擬合模型的需求更重要) –