パーティション モデリング: 分割の最小サイズは何によって決まりますか?私は事実上の統計学者ではありませんが、JMP の標準バージョン (現在 v13) を使用したおかげで、長年にわたって生物統計に関して多くの経験を積んできました。 私は他のものを使用することは決して考えられず、定期的にそれを宣伝しています。
私は現在、二項カテゴリ変数 (不合格と合格) の結果を最適化するために、さまざまな連続変数の分割を段階的に定義しています。 私はこのプラットフォームに関する多くの本を読んだり見たりしており、検証を含めることと、共変量の数を実用的かつ論理的な短いリストに制限する必要性を理解しています。
ただし、分割の最小サイズは、私がよくわからないパラメーターの 1 つです。 私の目的は、結果変数の失敗を最小限に抑え、場合によっては完全に軽減するパーティションを定義することです。 結果のパーティションは、選択した最小分割サイズ/比率に大きく依存しているようです。 私の感覚では、各分割によって生成される LogWorth 値に注意しながら、できるだけ大きなサイズ (50% を目指して) を選択する必要があると思います。 私は、分割サイズが小さすぎると、タイプ II エラーの危険にさらされることに似ているのではないかと考えています。 それでは、私が提案したこと以外に、使用する比率をどのように決定すればよいのでしょうか?
また、分割モデルでは多重比較の補正が考慮されていないと思いますが、結果の分割を保存して 2x2 分割分析を実行したときに、最初の分割の LogWorth 相当 p 値がフィッシャーの完全一致結果と一致しないのはなぜですか?
データのブレンディングとクリーンアップ予測モデリングと機械学習Re: パーティション モデリング: 分割の最小サイズは何によって決まりますか?親愛なるDS様
大変参考になる詳細なご回答をいただきまして、重ねて御礼申し上げます。 Filemaker のプログラマとしてかなりの実績を積んでいるにもかかわらず、JSL について詳しく調べたことは一度もなかったのは認めざるを得ませんが、おそらくこれが、私がそれを行うのに必要な動機なのです。 R^2 に関しては、私もそれを認識しており、この係数に関する分割履歴を確実に監視しています。 幸いなことに、検証のために除外された行をあまり公表されていないことに遭遇しましたが、これは通常の操作で慣れているものとは最も直感に反するように思えました。
Re: パーティション モデリング: 分割の最小サイズは何によって決まりますか?やあ@34South 、
XGBoost は非常に強力で、非常に安定しています。 複数回再実行すると同じ答えが得られますが、ブートストラップ フォレストやブーストされたツリーでは必ずしもそうとは限りません。
私はこれを見つけましたWebサイトXGBoost を調整してモデルを改善する方法について非常に役立ちます。 また、Python を実行している人向けに書かれているので、すぐに使用できるはずです。
一部のプロセスを自動化し、監視なしで実行できるように、フィット ルーチンをスクリプト化することを検討したことがありますか? 長期的にはその方が早いかもしれません。 JMP で他のツリーベースのプラットフォームのチューニング パラメーター空間を検索するときにこれを行います。多くの場合、30k 回以上の計算が実行されます。 プラットフォームによっては、8 ~ 10 時間ほどかかる場合がありますが、私は他の作業をしている間、そのまま実行します。
データが過剰適合していないことを確認するために、トレーニングと検証のために R^2 を必ず監視する必要があります。 現在、いくつかのモデルを実行しようとしていますが、これまでのところ、Neural Net および GenReg プラットフォームでは、トレーニング セットよりも検証セットの方が大きい R^2 が返されていることがわかりました。これは大きな警告です。サイン。 個人的には、これは私が持っているデータセットとデータの非正規分布が原因であると考えています。
テスト データ セットを脇に置いておくと、実際にこれらのデータがトレーニング データ テーブルから削除されるため、適合の実行時に JMP がそれらのデータにアクセスすることができなくなります。 以前、特定の行を非表示にして除外したにもかかわらず、相互検証中にデータが引き続き使用されたという経験がありました。そのため、テスト データ セットの実際のプロットと予測されたプロットを比較すると、実際よりも良く見えます。テストデータはトレーニングで使用されていました。
DS
Re: パーティション モデリング: 分割の最小サイズは何によって決まりますか?親愛なるDS様
詳細なご返信ありがとうございます。 残念ながら、私は Pro バージョン ($$$) を持っていません。 暫定的に私が採用したアプローチは、検証用に 20% を指定し、次に 45% の最小サイズ分割から始めることでした。 それが失敗した場合は、分割が達成されるまで 5% から 40% ずつ減らしていきます。 次に、1% ずつ増加させて微調整しますが、LogWorth 値が重要性を示した場合に限定します。 あるいは、分割を元のセットの失敗数かそれより少し大きく設定して、失敗したケースの 100% を分割によって定義された結果のサブセットの 1 つに配置することもできます。 テスト セットに関するご指摘は承知しており、検証とトレーニングに十分な数が残っている限り、テスト セットを実施するつもりです。 Python をインストールした後に XGBoost を試してみましたが、動作させるには学習曲線が必要でした。
Re: パーティション モデリング: 分割の最小サイズは何によって決まりますか?やあ@34South 、
JMP Pro をお持ちですか、または JMP Pro にアクセスできますか? 私が質問したのは、パーティション プラットフォームが予測式を生成する最適な (最も安定した) アプローチではないためです。 Boosted Tree と Boostrap Forest プラットフォームははるかに優れています。 または、上位バージョンにアクセスできる場合は、非常に安定した XGBoost プラットフォームを実行することもできます。
ただし、最小サイズの分割に関する質問に移ります。 分割の最小サイズは、ツリーの「切り株」の複雑さを制御します。 分割内の観測値の数が設定した値よりも少ない場合、分割は生成されません。 デシジョン ツリーでブースティングを使用する場合はあまり関係ありませんが、ブースティングを制御するために使用できます。 小さすぎる (つまり 1 観測値) ことも、大きすぎる (たとえば 1000 観測値) のも望ましくありません。 単純なツリー法の場合、典型的な開始点は約 5 です。 ブートストラップ フォレスト プラットフォームのようなものを使用している場合は、使用しているような分類スキームに N/2 を使用する必要があります。ここで、N は観測値の数です。 このパラメーターを調整し、テスト データ セット上のさまざまなモデルと比較することで、モデルを調整できる場合があります。
十分なデータがある場合は、一部 (おそらく 20 ~ 25%) を分割し、モデルのトレーニングや検証に使用されないテスト データ セットとして保持することをお勧めします。 残りのデータを使用して、トレーニング データと検証データ (たとえば 80/20) を含む層別検証列を生成して、モデルの複雑さを最適化しながらモデルの過学習を防ぐことができます。 いくつかのモデルを生成した後、結果を正確に予測するのに実際にどのモデルが優れているかを比較する方法として前のテスト データを使用できます。 二分決定モデルを探しているので、コスト重視の学習を考慮してモデルをさらに最適化することもできます。
私はJMPがログの価値を計算する方法やフィッシャーの正確検定については専門家ではないので、JMPの誰かがそれに答えてくれることを願っていますが、それはデータセット全体と、ログの価値と保存時の計算に関係があると推測しています式を分割して分割表を作成します。
これが役立つことを願っています -- または、少なくともいくつかのことを考えるきっかけになれば幸いです。
モデリングを楽しんでください!、
DS