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

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

新規登録して質問してみよう
ただいま回答率
85.48%
scikit-learn

scikit-learnは、Pythonで使用できるオープンソースプロジェクトの機械学習用ライブラリです。多くの機械学習アルゴリズムが実装されていますが、どのアルゴリズムも同じような書き方で利用できます。

Bootstrap

BootstrapはウェブサイトデザインやUIのWebアプリケーションを素早く 作成する可能なCSSフレームワークです。 Twitter風のデザインを作成することができます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

2503閲覧

ランダムフォレストでサンプルを増やしたら精度が落ちました

mmtaro000

総合スコア15

scikit-learn

scikit-learnは、Pythonで使用できるオープンソースプロジェクトの機械学習用ライブラリです。多くの機械学習アルゴリズムが実装されていますが、どのアルゴリズムも同じような書き方で利用できます。

Bootstrap

BootstrapはウェブサイトデザインやUIのWebアプリケーションを素早く 作成する可能なCSSフレームワークです。 Twitter風のデザインを作成することができます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/10/26 03:31

Pythonのscikit-learnでランダムフォレストを用いております。RandomForestRegressorをbootstrap=Falseで学習を行ったのですが、bootstrap=Trueの方が精度が良くなりました。機械学習では一般的に、学習サンプルが多いほうがモデルの精度は良くなるという認識があったのですが、今回の様に精度が下がるということもありえるのでしょうか?また、それに即した参考文献をご存知のは教えていただければ幸いです。よろしくお願いします。

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

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

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

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

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

meg_

2020/10/26 03:44

「精度が良い・悪い」と言っているのは、テストデータに対する正解率のことで良いでしょうか?
mmtaro000

2020/10/26 05:43

そうですね.bootstrapを行わないほうが正答率が下がったということなので,データ数が多いほうがうまく学習できるという利点の他に,データ数が多いことによるデメリットが存在しているのではないかと考えていたのですが,調べてもそれらしきことはなく,質問させていただきました.
guest

回答1

0

ベストアンサー

3点ほど誤解されている点があると思います。

1点目。

bootstrap=Falseを、ランダムフォレストと分類されているのは、正確ではないと思います。ランダムフォレストという機械学習手法は、ブートストラップサンプリングを特徴の1つとして、それにより精度を向上させているものです。scikit-learnのオプションでbootstrap=Falseにできたからといって、それはもはや「ランダムフォレスト」とは呼べません。また、このことから感覚的に(あとでもう少しきちんと言いますが)「bootstrap=Trueの方が精度が良くなりました」は当たり前だと分かるでしょう。それがランダムフォレストの「工夫」なのですから。

2点目。

bootstrap=Trueにより**「学習サンプル」が減ると解釈されているのは、正確ではない**と思います。1つの決定木はランダムにサンプリングした学習データで求めますが、結局、アンサンブルした状態では、元の学習データを全て使っています

3点目。

学習サンプルの多さのみが機械学習の精度を決定している、というのも正確ではないです。機械学習は、特徴量の選定方法、前処理、アルゴリズム、等々、多様な要素が影響して、精度に帰結しています。2点目の議論で学習サンプルは減っていないと申しましたが、その件とは別に、ランダムフォレストは、各決定木のアンサンブルをする、という手法で、比較的滑らかなモデルを獲得しています。それにより、汎化性能=未知のデータに対する推論時の精度、を向上させています。

参考: Random Forest

投稿2020/10/26 10:01

toast-uz

総合スコア3266

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

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

mmtaro000

2020/10/26 10:37

ご丁寧にありがとうございます。一部間違った認識をしておりましたので参考になりました。さらにお聞きしたいのですが、Graphvizで決定木を可視化したい際に現れるsamplesの値がbootstrapの有無によって変化しているのが気になったので、そちらに関してもご存知であれば教えていただきたいです。
toast-uz

2020/10/26 10:40

すみません。それはわかりません。
mmtaro000

2020/10/26 14:10

わかりました。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問