JMP Pro18 ではブートストラップフォレストは変更されましたか?私は長年にわたり、様々なデータセット(連続変数と名義変数の両方)でブートストラップフォレストを使用してきました。このアルゴリズムの設定は概ね理解しており、通常はデフォルトを使用しています。ランダム(ブートストラップ)フォレストとは、各ツリーがランダムに選択された因子とランダムに選択された観測値(復元あり)を使用して実行されるという理解です。過去に個々のツリーを見てみると、いくつかの変数のみを使用して非常に疎なツリーを持つものもあれば、はるかに複雑なものもありました。私は授業で、個々のツリーがしばしば無意味であること、つまり平均化によって良好な予測値が得られることを示すためにこの手法を用いてきました。
しかし、JMP Pro 18でブートストラップフォレストを実行すると、使用するデータセットすべてに、数百の分岐を持つツリーがすべて表示されます。以前は分岐数が10未満のツリーがいくつかありましたが、今では単純なツリーは全くありません。モデルの実装方法は変更されたのでしょうか?
予測モデリングと機械学習Re: JMP Pro18 ではブートストラップフォレストは変更されましたか?こんにちは@dlehman1
ブートストラップフォレスト・プラットフォームは、トレーニングデータのブートストラップ標本(復元抽出法)にそれぞれ適合させた多数の決定木を平均化することで、アンサンブルモデルを適合させます。各決定木の各分岐では、ブートストラップフォレストから抽出した予測変数のランダムなサブセットが考慮されます。
トレーニング サンプルの選択と特徴のサブセット選択におけるこのランダム化により、過剰適合のリスク (わずかに異なるトレーニング データに基づいて複数の独立したツリーを作成することにより) を軽減し、精度とノイズに対する堅牢性を向上させ、欠損値、外れ値、相関特徴/共線性 (各ツリーの各分割でのサブセット特徴選択による) を処理できるようになります。
元の質問に関してですが、私のコンピューターにはJMP 17がインストールされていないため、結果を比較することはできません。JMP 17とJMP 18のドキュメントに記載されている、Bootstrap Forestの起動時に使用されるデフォルトのハイパーパラメータについては、デフォルト設定に違いはないようです。
個々のツリーが複雑すぎると思われる場合は、デフォルトのハイパーパラメータのいくつかを変更できます。
- ツリーあたりの最小分割数: デフォルトでは 10 ですが、小さなデータセットでは、この値を常に 2 に減らす傾向があります。ツリーあたりの最小分割数に大きな値を設定すると、複雑な個々のツリーが作成される傾向があり、これは有益ではなく、過剰適合になりがちです。
- ツリーあたりの最大分割数: デフォルトでは 2000 ですが、個々のツリーあたりの最大分割数が 2000 というのは多すぎます (そして、前述のような問題が発生する可能性があります)。データセットのサイズとタスクの複雑さに応じて、この値を 100 ~ 1000 程度に減らすことが多いです。
- 最小サイズ分割: デフォルトでは 5 (候補を分割するための最小サンプル数) になっていますが、小さなデータセットでは関係ない可能性があります (過剰適合のリスクが高くなる場合でも、この数を減らすことができます)。一方、大きなデータセットでは、個々のツリーの堅牢性を高めるためにこの値を増やす必要がある場合があります。
- 早期停止: 検証セットを使用した場合、このオプションをオンにして、新しいツリーを作成しても検証メトリックが改善されない場合はツリーの作成が停止するようにしてください。
ご質問に対してより正確で明確な回答ができず申し訳ございません。スクリーンショット、データセットなど、差異を示すものはありますか?状況のデバッグに役立つかもしれません。
最高、
Re: JMP Pro18 ではブートストラップフォレストは変更されましたか?あなたの説明はまさに私の理解と一致しており、これらのチューニングパラメータが構築されるツリーにどのような影響を与えるかについては、よく理解しています。以前の例は見つかりませんが、個々のツリーが意味をなさないことをクラスで実演したことは覚えています。しかし、独立したツリーを平均化することで、ブートストラップフォレストが優れた予測器となるのです。しかし、説明の中で、結果として得られるツリーと矛盾しているように思える部分は、「各ツリーの各分岐は、予測変数のランダムなサブセットを考慮する」という部分です。各ツリーの予測変数は、ランダムな選択だけでなく、選択される数も異なるはずです。これは、私が以前ブートストラップフォレストから得ていた結果と一致しているようです。ツリーによっては2つの予測変数を使用するものもあれば、10つの予測変数を使用するものもありました。現在、すべてのツリーは同じ数の分岐を持っているように見えます(そして、各ツリーで同様の数の予測変数を使用しています)。そして、私が調べたすべてのデータセット(1万行から10万行程度の中規模サイズ)において、分岐数は数百単位です。以前は割れが少ししか出ない木もあったのですが、今はもうありません。それで質問したんです。
Re: JMP Pro18 ではブートストラップフォレストは変更されましたか?こんにちは@dlehman1さん、
Diamonds Data.jmp (回帰タスク) と Mushroom.jmp (分類タスク) の 2 つのサンプル データセットを試してみました。
回帰タスクでは、ハイパーパラメータを調整しても個々の木がかなり複雑だったという印象を私も持ちました。しかし、分類タスクでは、深さや複雑さの異なる、よりシンプルで満足のいく個々の木が得られました。

したがって、JMP バージョン間でのブートストラップ フォレスト アルゴリズムの変更の可能性に関する質問に直接答えることはできません (これは、JMP の技術スタッフである@マーク・ベイリーが回答するのが最善かもしれません)。ただし、個々のツリーの複雑さは、タスクに必要な精度 (非常に多数のクラスと同等の回帰と分類) と利用可能なデータ (量と品質) に関連していると思います。
この回答がまだお役に立てれば幸いです。
Re: JMP Pro18 ではブートストラップフォレストは変更されましたか?別の例を添付しました。キノコのデータセットとサイズは似ており、分類モデルも変数の数も似ています(ただし、キノコの因子はすべて名義変数であるのに対し、連続変数は少数です)。ブートストラップフォレストのツリーはすべて数百の分岐を持っています。いまだに理解できません。
Re: JMP Pro18 ではブートストラップフォレストは変更されましたか?私はこのプラットフォームを直接サポートしていないため、すぐにご説明やサポートを提供することはできません。また、現在、JMP 19の新しいプラットフォームと新機能の開発を完了させることに注力しており、JMPサポート( サポート@jmp.com )にお問い合わせいただくのが最も早い解決策になると思います。ご意見などございましたら、ぜひこのメールにご返信ください。
Re: JMP Pro18 ではブートストラップフォレストは変更されましたか?こんにちは、みんな、
これまでのテストでは、JMP 17と18のバージョン間で方法論的な違いは確認されていません。発生している動作に関してご質問やご不明な点がございましたら、 support@jmp.comまでお気軽にお問い合わせください。可能であれば、ツリー分割の動作が想定とどのように異なるかを示す例を添付していただければ幸いです。引き続きテストと調査を継続させていただきます。
-JMPテクニカルサポート
Re: JMP Pro18 ではブートストラップフォレストは変更されましたか?JMPのサポートがまたもや実現しました!異なる結果が出た理由は以下の通りでした。
「分割ごとにサンプリングされる項数」の「古い」デフォルト(16 より前)は floor(nX/4) でした。ここで、nX は入力された X 変数の数です。
JMP 17からJMP 18で動作が変わったと思っていたのですが、どうやらもっと古いようです。私の例では、分割ごとにサンプリングされた項のデフォルトが1だったのに、JMP 18(そしてどうやら17、16、15も)ではデフォルトが5になっていることに気づきませんでした。これが違いの理由です。