xgboostはlightgbmに比べると、やや重い印象があります。
ただし、ケースによってはlightgbm以上の精度が出ることもあります。
lightgbm同様、sklearnには導入されていません。
コード
xgboostもsklearnライクな使い方もありますが、デフォルトの方で使ってみます。
基本的にはlightgbmと同じですが、オブジェクトに渡す文字列や、専用のデータセットの作り方など若干の近いがあります。(lightgbmの方が後発ですが、、、)
今回も基本的な動きの確認のため、評価データを作りませんでした。
import xgboost as xgb
回帰
#回帰 dtrain = xgb.DMatrix(boston_X, label=boston_y) reg_mdl = xgb.train( {"objective":"reg:squarederror"}, dtrain ) #予測 #reg_mdl.predict(dtrain)
分類
dtrain = xgb.DMatrix(iris_X, iris_y) mc_mdl = xgb.train( { "objective":"multi:softmax", "num_class":3 }, dtrain ) #予測 #mc_mdl.predict(dtrain)
特徴重要度の可視化
作成したモデルはfeature_importances_
になります。
また、可視化を直接してくれるメソッド、木構造を可視化してくれるメソッドも存在します。
xgb_mdl.feature_importances_ xgb.plot_tree(reg_mdl) xgb.plot_importance(mc_mdl)