質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Q&A

解決済

1回答

628閲覧

勾配ブーステイング決定木での、最適値変数について

kouji_39

総合スコア164

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

0グッド

0クリップ

投稿2020/04/14 06:25

勾配ブーステイング決定木(GBT)で、使用パラメータグリッドを以下のように作成します。
また、ランダムサーチを実行します。

from sklearn.ensemble import GradientBoostingRegressor from sklearn.model_selection import RandomizedSearchCV param_dist = {'max_features' : ['log2',1.0], 'max_depth' : [3, 5, 7, 10], 'min_samples_leaf' : [2, 3, 5, 10], 'n_estimators': [50, 100], 'learning_rate' : [0.0001,0.001,0.01,0.05,0.1,0.3], 'loss' : ['ls','huber'] } pre_gs_inst = RandomizedSearchCV(GradientBoostingRegressor(warm_start=True), param_distributions = param_dist, cv=3, n_iter = 30, n_jobs=-1) pre_gs_inst.fit(X_train, y_train)

上記の結果から、別のランダムサーチを実行します。

param_dist = {'max_features' : ['sqrt',0.5,'log2'], 'max_depth' : [4,5,6], 'min_samples_leaf' : [1,2,3], 'n_estimators': [50, 100], 'learning_rate' : [0.01,0.05,0.1], 'loss' : ['ls','huber'] } pre_gs_inst = RandomizedSearchCV(GradientBoostingRegressor(warm_start=True), param_distributions = param_dist,cv=3,n_iter = 30, n_jobs=-1) pre_gs_inst.fit(X_train, y_train)

さらに、上記の結果から、変数rs_gbtに格納し、最後に4000個の推定器での訓練を実施する。

rs_gbt = GradientBoostingRegressor(warm_start=True, max_features = 0.5, min_samples_leaf = 2, learning_rate=0.05, max_depth = 4, n_estimators = 4000,loss = 'huber') rs_gbt.fit(X_train, y_train)

上記のように、ランダムサーチを2回繰り返し、その結果をrs_gbtに変数入力するアルゴリズム
です。
これを、自動入力にしたいのです。
1度目のランダムサーチの最適値(mean_scoreが高いもの)を、2回目のランダムサーチに
自動でいれる。(lossは、huberとlsは固定で2つ入れる)そして、2回目のランダムサーチ
では、最適値の前後値も自動で設定する。最後に、2回目のランダムサーチの最適値をrs_gbtに
自動で変数入力する。
ランダムサーチの最適値を取り入れる変数が設定されていれば、できそうなのですが、わかる
かた、いらっしゃいますでしょうか。よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

pre_gs_inst.best_params_['max_features']で得られました。
自己解決しました。

投稿2020/04/14 13:45

kouji_39

総合スコア164

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問