machine-learning

Tree における単調性制約

XGBoost における単調性制約 - 2 はじめに 前回 XGBoost での単調性制約を与える方法について紹介しましたが、そのメカニズムについて調べました。 線形モデルはデータと目的変数間の単調性(増加・減少)を捉えるモデルです。 非線形モデルを使うのは、単調…

matplotlib で plt.show() するとウィンドウは開いてもグラフが描画されない

matplotlib で plt.show() するとウィンドウは開いてもグラフが描画されない、という問題が発生しました。 plt.show() で ウィンドウが開かない、というはよくあるパターンで大体が描画の際のバックエンドの指定だと思います (https://qiita.com/yoshizaki_k…

CalibratedClassifierCV で XGBoost の学習済みモデルが ValueError: feature_names mismatch となる

はじめに CalibratedClassifierCV に XGBoost の学習済みモデルを指定して、fit すると ValueError: feature_names mismatch となる場合があります。 これは XGBoost の学習時には pandas の column 名を変数とし、CalibratedClassifierCV では numpy.ndarra…

XGBoost における単調性制約

XGBoost の単調性制約 XGBoost などの Tree 系アルゴリズムは表現力が大きいため、容易に bias を小さくできます。 下の例では、増加するトレンドにある特徴量と目的変数がにノイズが乗ったデータに対して XGBoost でフィッティングすると、全体的には上昇ト…

BayesSearchCV で XGBoost の early stopping 機能を使う

BayesSearchCV で XGBoost の early stopping 機能を使う 先日の BayesSearchCV イントロダクションの続きです。 XGBoost には early stopping という、 学習データとは別に、テストデータの Validation error が少なくとも <early_stopping_rounds> 回数連続して減少しないと、学習</early_stopping_rounds>…

scikit-optimize の BayesSearchCV を用いたベイズ最適化によるハイパーパラメータ探索

ベイズ最適化でハイパーパラメータをチューニングする ハイパーパラメータのチューニングではパラメータを様々に振りながら学習を繰り返し、一番パフォーマンスが良いところを探し出します。 学習時間はモデルやデータサイズなどによって異なりますが、効率…