About connecting the dots.

data science related trivial things

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)

ちょっとした小ネタでした.