前言
在python下運行xgboost有許多要注意的地方。
筆者在載入模型及載入數據的時候都踩了坑,為了避免再度踩坑,所以將解法記錄於此。
載入模型
如果儲存模型時是使用:
model.save_model('0001.model')
那麼在載入模型時不能單純地使用xgb.Booster
:
import xgboost as xgb
model = xgb.Booster('0001.model')
而是必須要先初始化模型(須傳入參數)後再載入.model
檔。
model = xgb.Booster({'nthread': 4}) # init model
model.load_model('0001.model') # load data
載入數據
xgboost模型的數據必須為xgboost.DMatrix
格式。
如果丟numpy.ndarray
的格式進去會報錯。
參考Predicting unknown class from dumped Model
import xgboost as xgb
data = xgb.DMatrix(data) #convert from numpy array to xgboost.DMatrix
prediction = model.predict(data)
參考連結
Predicting unknown class from dumped Model
How to save & load xgboost model?
XGBoost - Python Package Introduction