Catboostはboosting系の中で、やや重いですが。カテゴリをそのまま扱えるといった特徴があります。
xgboost,lightgbm同様に専用のパッケージをインストールします。
コード
catboostは、Poolという形でデータをできるかぎり扱うようにすると楽です。
今回も基本的な動きの確認のため、評価データを作りませんでした。
from catboost import CatBoost,Pool
回帰
#回帰 reg_train = Pool( boston_X, boston_y ) reg_mdl = CatBoost() reg_mdl.fit( reg_train, verbose=False, #jupyter上で学習過程を可視化してくれる #plot=True )
分類
# 多値分類問題 mc_train = Pool( iris_X, iris_y ) mc_mdl = CatBoost( { 'loss_function': 'MultiClass' } ) mc_mdl.fit( mc_train, verbose=False, #plot=True )
予測
予測で帰ってくる値は`prediction_typeで調整します。
#Classだとクラスを、Probabilityだと各確率を返してくれる mc_mdl.predict(iris_X,prediction_type='Probability')
特徴重要度の可視化
作成したモデルの特徴重要度はfeature_importances_
で見れます。
木構造を可視化してくれるメソッドも存在しますが、何番目の木か、を指定する必要があります。
mc_mdl.feature_importances_
mc_mdl.plot_tree(tree_idx=1)