SageMaker built-in algorithm の XGBoost で変数重要度を確認する
AWS の機械学習サービス SageMaker にはビルトインアルゴリズムがいくつも用意されていて,その中には定番の XGBoost も含まれています.XGBoost の定番のユースケースは,モデルを作って変数重要度を確認して,という流れだと思うんですが,ビルトインアルゴリズムだとそのあたりの関数が提供されていません.ホスティングはできるけど,逆にいうとホスティングしかできないわけです.
作成済みモデルの変数重要度がみれないか確認したところ,なんのことはない,S3 に出力されるモデルファイルの tar.gz を回答して,pickle でロードしてあげれば普通にいけました.具体的なコードは以下のような感じです.
aws s3 cp s3://BUCKET_NAME/MODEL_PATH/model.tar.gz tar zxvf model.tar.gz
import xgboost as xgb import pickle as pkl import matplotlib.pyplot as plt plt.style.use('ggplot') model = pkl.load(open('xgboost-model','rb')) xgb.plot_importance(model)
ちょっとした小ネタでした.