問題タブ [gbm]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
r - gbm でテスト予測を再現できない
gbm
予測回帰モデルの構築に使用しています。トレーニング セットとテスト セットがあります (事前に定義されており、ランダムに選択されていません)。以下は、コードの概要です。
トレーニング データには約 600 行、テスト データには 150 行あります。私はそれらが非常に少ないことを知っていますが、それでも.
どういうわけか、gbm モデルをまったく同じパラメーターで何度も実行すると、テスト セットで予測を再現できません。しかし同時に、私はいつでも電車のセットで予測を再現することができます. モデルを構築して予測を行う前にもシードを設定しています。誰かが何が起こっているのかを理解するのを手伝ってくれますか? トレーニングとテストのデータは常に同じままであることに注意してください。実行ごとに変更することはありません。
machine-learning - ブースト回帰ツリーを使用した完全な分離の克服
BRT 分析を使用してモデルを適合およびテストしようとしていますが、完全な分離のエラーが発生し続けます。この問題を克服するために複数の方法を試みましたが、役に立ちませんでした。私は、logestf によるペナルティ付き回帰の形式を利用し、モデルにベイジアン プライオリティを配置し、オーバーフィッティングの原因と思われる変数を省略し、log1p を使用してすべての歪んだ予測変数を変換し、2013 年の Coadou に従って完全に無視しました ( http:// www.epj-conferences.org/articles/epjconf/pdf/2013/16/epjconf_sos2012_02004.pdf ) は、BRT トレーニング モデルのオーバーフィッティングは大きな問題にはならないという提案をしています。
彼女の記事では、トレーニング データの完全な適合につながるツリーは、テスト サンプルの最終的なブースティング出力にほとんど寄与していないと述べています。ただし、完全な分離を無視して評価データを予測しようとしても (モデルを 2000 ポイントに適合させ、残りの 11,141 ポイントでテストしようとしています)、プロットが空白になります (Elith et al の図 2)。 . 2008)。
私が読んだ記事の中で、特に BRT での完全な分離を克服するための解決策について議論しているものはありません。そのため、私が気付いていないこの問題に対する別の解決策があるのではないかと思います。
バイナリ応答変数と 16 の共変量を持つ非常に大きなデータセット (13,141 ポイント) があります。また、共変量を 5 つだけ使用してモデルを適合させようとしたところ、同じ問題が発生しました。どんな助けでも大歓迎です。アイデアを提供するために、データの先頭を添付しました。
うるさい変数名を許してください!私の応答変数 'Hotspot_Resp' はバイナリです。「Canopy_Cov」、「No_Canopy」、「Soil_Type」、「OPP_Class」はカテゴリ変数です。これらの変数の多くは log1p または log 変換されていますが、簡単にするために、ここでは元の列名を保持しています。
何をしようとしても、次のモデルを当てはめようとするたびに:
交差検証プロセスを実行しますが、次のようになります。
注意: Elith らによる最初のステップの 1 つ。BRT の 2008 年のチュートリアルでは、応答変数の合計を確認します。これを実現する唯一の方法は、Hotspot_Resp を数値に設定し、中間ステップで文字に設定することでした。Hotspot_Resp が数値に設定されている場合、モデルのフィッティングを正常に実行できます (ただし、完全に分離されています)。ただし、factor に設定すると、次のように表示されます。
もう一度、あなたが提供できる助けや洞察を前もってどうもありがとうございました!!
r - 因子がダミー変数よりも優れているのはなぜですか?
gbm.step
R の dismo パッケージ (GBM 用) を使用して、ブーストされた回帰ツリー モデルを構築しています。私はもともとカテゴリ変数を因数としてコーディングしていましたが、因数をダミーのバイナリ変数 (存在する場合は 1、存在しない場合は 0) としてコーディングすると、アルゴリズムが再帰的なバイナリ分割を実行しやすくなると言われました。
しかし、今日は、因子を含むデータセット (320 回の実行) とダミー変数を含む他のデータセット (さらに 320 回の実行) について、学習率、ツリーの複雑さ、およびバッグ割合の組み合わせを多数実行しました。
一般的な内訳を示すために、4 つのカテゴリ変数がありました。
1) 最初のカテゴリーには 4 つのレベルがあり、4 つの個別の 1/0 の組み合わせに分割されました。
2) 2 番目は (1) と同じです。
3) 3 番目には 3 つのレベルがあり、3 つの別々の 1/0 の組み合わせに分割されました。
4) 最後のカテゴリ変数には 2 つのレベルがありました。つまり、2 1/0 の組み合わせです。
すべての実行を比較した後、因子でコード化されたデータセットは、説明された逸脱の点で、毎回 (320 回) バイナリ ダミー変数よりも 1.5 ~ 3% 優れていました。
ダミー変数がモデルによりよく適合すると予想されるのはなぜでしょうか? dismo
舞台裏でダミー変数を自動的に作成しますか?
ありがとう。
r - foreachループ内でh2oアルゴリズムを実行しますか?
foreach ループ内で h2o.gbm への複数の呼び出しを並行して行うのは簡単だと素朴に考えました。しかし、奇妙なエラーが発生しました。
以下のコード
r - GBM モデルの因子 R ではない
ばかげた質問で申し訳ありません。次のコードを実行しています。
Predictor には多数の独立変数があり、y がターゲットです。次のエラーが表示されます。
ただし、予測子で「近隣」をテストする場合、それは要因です。
また、同じパラメーター リストを使用して xgboost と ranger モデルを実行していますが、両方で機能します。
これを修正する方法を知っている人はいますか? ありがとう