予測因子のスクリーニングとモデリングのためのツリーベースの方法の理解と適用
方法をご覧ください:
- パーティション、ブートストラップフォレスト、ブーストツリーを使用したモデル
- 意思決定ツリーの長所と短所を理解する
- 利点: 非線形関係を明らかにし、理解しやすい結果を取得し、多数の要因をスクリーニングする
- 短所: 一度に 1 つの応答を処理し、数式ではなく if-then ステートメントを形成し、変動性が高いため、同様のデータに対してモデルに大きな違いが生じる可能性があります。
- 分割を使用して予測変数とカテゴリ応答の関係を定義するJMPパーティション分類ツリーを構築します。
- ランダムフォレスト手法を使用してブートストラップフォレストモデルを構築するためのサンプル数、ツリー(モデル)のサイズ、サンプルレートを定義します。
- レイヤーの数、ツリーごとの分割数、学習率、サンプリング率を定義して、小さなモデルを最終モデルに結合するブーストツリーモデルを構築します。
- 結果を解釈し、モデルを調整する
- 利益マトリックスレポートを指定して実行し、カテゴリ応答の誤分類を特定し、混同マトリックスと決定マトリックスを使用して結果を解釈します。
注: 17:00 と 38:00 に質疑応答が含まれます
予測モデリングと機械学習Re: 予測変数のスクリーニングとモデリングのためのツリーベースの手法の理解と適用お二人とも非常に詳細な分析をしていただきありがとうございます。すべての提案に取り組むには少し時間が必要なので、後ほど返信させていただきます。 私のデータセットには多くの課題があることは承知しています。さらに、データセットが不均衡であり、多くの過去のデータとそれに追加されたいくつかの実験が混合されているということです。 そして、私たち開発者は、何もスローせずに、すべてのデータから情報を取得したいと考えています。 これらの実験は外れ値のように見えるかもしれませんが、外れ値ではなく、意味のある結果を伴う単一点です。 私のデータセットはディスカバリーサミットヨーロッパで発表される予定なので、オンラインになったらさらに議論することができます。 BR
Re: 予測変数のスクリーニングとモデリングのためのツリーベースの手法の理解と適用@ピーター・ハーシュ: あなたの文章が何を意味しているのかわかりません。」ツリーベースのモデルは外れ値の影響を非常に受けやすいです。」なぜなら、ツリーベースの方法は外れ値に対して非常に堅牢であるか、少なくとも外れ値の影響は無視できるからです。 この側面についてはすでに多くの例や出版物があり、このタイプのモデルがよく使用され、有名になっている理由もその「単純さ」と、前処理/クリーニングのステップが少ないためです (外れ値に対する大規模な作業は必要ありません)。欠損値の処理、分布の仮定なしなど...)。 回帰モデルとランダム フォレストに対する外れ値の影響の比較 (および、両方のアルゴリズムに適用される外れ値に対処するさまざまな手法の利点 (スポイラー: ランダム フォレスト アルゴリズムには大きな影響を示さない)) をここで確認できます。外れ値に対して堅牢な機械学習モデルを作成する方法 - KDnuggets
@ピーター・ハーシュ@ゲオルグただし、ツリーベースのモデルを選択する際に考慮すべき点は他にもあります。いくつかを次に示します。
- 過学習これは主にデシジョン ツリーとブースト ツリーで発生する可能性があります (適切な検証が行われていない場合)。 ランダム フォレストは、次の理由により過剰適合が起こりにくい傾向があります。ブートストラッププロセス: があります個々の木の独立したトレーニング、それぞれがトレーニング データのブートストラップ サンプルに適合します。 ブートストラップ プロセスでは、一部のサンプルは個々のツリーの作成には「使用」されません (「アウト オブ バッグ」(OOB) サンプルと呼ばれます) が、モデル内の誤差を推定するために使用できます。 (したがって、モデルでは認識されないデータの誤差を推定する「検証」として機能します)。
- 相関/多重共線性:Tツリーベースのモデルが異なれば、多重共線性や変数間の相関の扱いも異なります。 データセットに強い相関/多重共線性がある場合、いくつかの違いが予想される場合があります。デシジョン ツリー特徴量の重要度プロット (または勾配ブースト ツリー) を見ると、「最良の」特徴量 (最良の分割属性を持つ特徴量) のみが選択されており、その他の特徴量 (最初の特徴量と相関している特徴量) が選択されていることがわかります。選択されておらず、特徴の重要度が 0 (または 0 に近い) です。 デシジョン ツリーはすべての予測子を使用し、各レベルで最適な分割を決定しようとするため、「より悪い」相関のある特徴は除外されるため、これは正常です。したがって、決定/ブースト ツリーをリロードすると、相関/多重共線性が存在する場合は異なるモデルが生成される可能性があります (毎回同じ特徴/変数が選択されるとは限らないため)。 ランダム フォレスト特徴量の重要度プロットを見ると、相関関係のある特徴も含め、すべての特徴量にスコアがあることがわかります。 これは、フォレスト内の各デシジョン ツリーに対して行われる特徴のランダムな選択である特徴のバギングにより、各特徴に個々のツリーで選択される同じ「チャンス」が与えられるためです。 したがって、このモデルをリロードすると、非常に似たモデルが得られるはずです。
- ノイズ(またはバイアス/分散のトレードオフ): B oosted ツリーは、ランダム フォレストよりも正確である可能性があります。 ブースト ツリーでは、個々のツリーが前のツリーのエラーを修正するために反復的にトレーニングされるため、このアルゴリズムはデータ内の複雑なパターンをキャプチャできます。 ただし、データにノイズが多い場合、ブーストされたツリーがオーバーフィットし、ノイズのモデル化が開始される可能性があります。 したがって、データセットのサイズとデータ内のノイズに応じて、ブースト ツリーとランダム フォレストのどちらかを選択する必要があります。最初のものは非常に正確ですが、ノイズに対して堅牢ではありません (デシジョン ツリーのような低バイアス、高分散)。比較 RF は精度/精度が劣りますが、ノイズに対してより堅牢です (バイアスはフォレスト内の個々のツリーと同じであり、バギング プロセスによりデシジョン ツリーやブースト ツリーよりも分散が低くなります)。
また、(前の点に加えて) 目的 (予測/説明 ?)、このデータセットでのモデルのパフォーマンスを評価するために使用されるメトリクスの影響、データセットのサイズとディメンション (変数の数と変数の数) も考慮する必要があります。観測値の数)、データの代表性など...
小規模なデータセット (ノイズの可能性がある) を使用している場合、ランダム フォレストはブースト ツリー/デシジョン ツリーよりも安全で堅牢な代替手段となる可能性があります。
それに加えて@ピーター・ハーシュブースト ツリーのフォールド/検証列全体でパフォーマンスが異なる場合、それはデータのサブセットに異常な値がある可能性があることを示しているため、多変量プラットフォームで距離 (ジャックナイフ/マハラノビス) を調べようとすると、このサブセット内の通常の観察を見つけて特定することができます。
長々とした回答ですみません、お役に立てれば幸いです、
Re: 予測変数のスクリーニングとモデリングのためのツリーベースの手法の理解と適用@ゲオルグ素晴らしい質問です。@Victor_Gには、k 分割のモデル平均化またはアンサンブル モデリングを使用した優れたソリューションがいくつかあります。追加の実行でモデルが変更されるため、データに多くのノイズが含まれているようです。データの変動性をより深く理解するために追加の要素や実行がなければ、この時点ではモデルがあまり役に立たない可能性があります。
これをテストする方法は、ホールドバック検証用に複数の検証列を作成することです。異なる検証列を使用するモデルが互いに大幅に異なる場合は、データのランダムなサブセットがデータ全体を表していないことを示します。つまり、何らかの変更を加えなければ、正確な予測モデルを作成するのは困難になります。
ツリーベースのモデルは外れ値の影響を非常に受けやすいため、モデルを実行する前に外れ値をチェックすることをお勧めします。
これが役に立てば幸いです。状況をお知らせください。
Re: 予測変数のスクリーニングとモデリングのためのツリーベースの手法の理解と適用@ゲオルグあなたの質問に関していくつかアイデアがあるかもしれません:
- K 分割交差検証 (分析 -> 予測モデリングで利用可能なプラットフォーム「モデル スクリーニング」を使用) を試して、モデルの堅牢性を評価します。 フォールドごとに結果が得られるため、トレーニング セットや検証セットにどの実行が含まれているかに関係なく、モデルが堅牢であるかどうかを評価しやすくなります。
各モデル (K-1 フォールドでトレーニング、1 フォールドで検証) の式を保存でき、その後、異なるフォールドで作成されたこれらの個々のモデルのアンサンブルまたは平均化を実行できる可能性がありますが、一部のデータを保持する必要があります。ここでは、データと検証セットで作成されたさまざまなモデルを平均するため、モデルを公平に評価するには、独立したテスト セットを作成し、情報を避けるためにテスト データを完全に「削除」する必要があります。データ漏洩または過剰適合。
- モデルの再現可能なテストを行いたい (または最終モデルを「修正」したい) 場合は、任意の数値を入力してランダム シードを修正できます。このように、スクリプトと固定されたランダム シードを使用してモデルをリロードすると、常に同じ結果になります。
- 最後に、ハイパーパラメーターを最適化するか、その値 (深さ、最小サイズの分割など) を変更して、異なるブースト ツリー (または他のツリーベースのモデル) を作成して、最適化することもできます。モデルまたは個々のモデルの少しの多様性を抽出し、アンサンブルまたは平均化によってそれらを結合します。
これらのいくつかのアイデアがお役に立てば幸いです。
Re: 予測変数のスクリーニングとモデリングのためのツリーベースの手法の理解と適用@ピーター・ハーシュ,この素晴らしいビデオを投稿していただきありがとうございます! 私の場合は変数データがあり、デシジョンツリーを使用すると、デシジョンツリーにはこの「欠点」があると述べたように、実行ごとに異なるモデルが作成されます。 あなたのケースでは検証列を使用しました。これは、トレーニングとテストの選択がランダムではなくなったことを意味します。 私の場合、「ホールドアウト部分」を使用すると、走行ごとに「ノイズ」が発生します。より安定したモデルを取得する方法、または最終モデルを定義/修正する方法に関するアイデアや戦略はありますか? Boosted Tree を使用しています。これは、モデルの比較に最適なパフォーマンスが得られたためです。前もって感謝します!