「理論から実践への勾配ブースティング(パート2)」
Gradient Boosting from Theory to Practice (Part 2)
Scikit-Learnを使用して、異なる分類および回帰問題を解決するために勾配ブースティングクラスを使用する
この記事の最初の部分では、勾配ブースティングアルゴリズムを紹介し、擬似コードでの実装を示しました。
この記事のこの部分では、このアルゴリズムを実装するScikit-Learnのクラスを探求し、さまざまなパラメータを説明し、いくつかの分類および回帰問題を解決する方法を示します。
より最適化された高スケーラビリティを備えたgradient boostingの実装を提供するXGBoostライブラリ(将来の記事でカバーされます)に比べて、小〜VoAGIサイズのデータセットでは、Scikit-Learnの勾配ブースティングクラスを使用する方が簡単であり、インターフェースもシンプルでチューニングするハイパーパラメータの数もはるかに少ないことがよくあります。
Scikit-Learnにおける勾配ブースティング
Scikit-Learnは、勾配ブースティング決定木(GBDT)モデルを実装する以下のクラスを提供しています:
- GradientBoostingClassifierは分類問題に使用されます。
- GradientBoostingRegressorは回帰問題に使用されます。
決定木の標準的なパラメータ(criterion、max_depth(デフォルトは3)、min_samples_splitなど)に加えて、これらのクラスは以下のパラメータを提供します:
- loss — 最適化される損失関数です。GradientBoostingClassifierでは、この関数は「log_loss」(デフォルト)または「exponential」(勾配ブースティングをAdaBoostアルゴリズムのように動作させる)になります。GradientBoostingRegressorでは、この関数は「squared_loss」(デフォルト)、「absolute_loss」、「huber」、または「quantile」になります。
- n_estimators — ブースティングの反復回数です(デフォルトは100)。
- learning_rate — 各木の寄与を縮小する係数です(デフォルトは0.1)。
- subsample — 各木のトレーニングに使用するサンプルの割合です(デフォルトは1.0)。
- max_features — 各ノードで最適な分割を探索する際に考慮する特徴量の数です。オプションは、整数を指定することです…
We will continue to update VoAGI; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles