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

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

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

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

Q&A

解決済

1回答

928閲覧

Pythonでグリッドサーチでのエラー

gymgym

総合スコア97

Python 3.x

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

0グッド

1クリップ

投稿2018/01/05 10:08

編集2018/01/05 10:09

Pythonでランダムフォレストのハイパーパラメータを求めたいと考えています。

Python

1forest = RandomForestRegressor() 2forest.fit(train_features, train_labels)

以上のコードは実行されるのに対し、

Python

1# ハイパーパラメータ 2forest_grid_param = { 3 'n_estimators': [100], 4 'max_features': [1, 'auto', None], 5 'max_depth': [1, 5, 10, None], 6 'min_samples_leaf': [1, 2, 4,] 7} 8 9# スコア方法をF1に設定 10f1_scoring = make_scorer(f1_score, pos_label=1) 11 12# グリッドサーチで学習 13forest_grid_search = GridSearchCV(RandomForestClassifier(random_state=0, n_jobs=-1), forest_grid_param, scoring=f1_scoring, cv=4) 14forest_grid_search.fit(train_features, train_labels)

以上のコードでは、

ValueError: Target is multiclass but average='binary'. Please choose another average setting.

以上のようなエラーが出てしまいます。

グリッドリサーチとランダムフォレストのfitでは、なにか違いがあるのでしょうか。

train_featuresは、

[[ 1.29289835e-04 1.17485219e-04 1.19890843e-04 ..., 9.05183214e-05 8.27563718e-05 8.78005056e-05] [ 1.49255279e-04 1.35313449e-04 1.36294066e-04 ..., 8.62639847e-05 9.09304063e-05 7.84873169e-05] [ 1.88674124e-04 1.92549213e-04 1.94561864e-04 ..., 1.27251725e-04 1.32504809e-04 1.19707440e-04] ..., [ 1.16313098e-05 2.90295617e-05 3.99510497e-05 ..., 1.52137304e-05 1.43487523e-05 3.92287642e-05] [ 1.58036700e-05 3.00034379e-05 3.78270972e-05 ..., 1.91663956e-05 2.44618265e-05 2.47100536e-05] [ 5.88701713e-05 3.20351268e-05 1.23424729e-05 ..., 2.63503805e-05 4.25346609e-05 3.44451908e-05]]

以上のような形式です。

よろしくお願い致します。

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

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

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

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

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

guest

回答1

0

ベストアンサー

データに対して行いたいのは回帰ですか?それとも分類ですか?

うまく実行できているといってるものは回帰で、グリッドサーチでは分類器にしているので、同じデータセットであればエラーになっても不思議はないです。

投稿2018/01/05 12:26

mkgrei

総合スコア8560

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

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

gymgym

2018/01/05 15:38

回答ありがとうございます。 データに対して行いたいのは、分類です。 訓練データに対してラベルをつけて分類したいと考えています。 ランダムフォレストが回帰になっているからうまくいかないのでしょうか。 分類したいときはまた違う方法があるのでしょうか。 よろしくお願い致します。
mkgrei

2018/01/06 01:57

ラベルはどうなっていますか? f1_scoreに渡しているパラメータがデータとかみ合っていないというエラーが出ています。
gymgym

2018/01/06 05:48

ラベルは4クラスに分類したいので、0から3の数値でラベル付けしてあります。 mkgreiさんのご指摘どおりf1_scoreに渡しているパラメータが原因の可能性があるので考えなおしてみたいと思います。
gymgym

2018/01/06 05:59

f1_score(test_labels, forest.predict(test_features)) 以上のところでエラーがでてしまいます。 ValueError: Target is multiclass but average='binary'. Please choose another average setting. ラベルは、以下の形式です。 [2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3]
gymgym

2018/01/06 06:25

average = 'micro' に指定したら実行できました。 丁寧に教えていただきありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問