問題タブ [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 - predict() を使用すると、予測子の数は同じだが行数が異なる新しいデータのエラー
モデルのトレーニングと相互検証の後に取得した予測関数を実行しようとしています。変数「classe」を予測しています。
テスト データは、行数が少ない (観測値が 20) ことを除いて、学習データと同じ名前の予測子の数を持ちます。テスト データの予測子はすべて数値です (トレーニング データと同様)。しかし、使用したモデルに関係なく、問題が発生しているようです。
モデル:
私は試した:
私は得た
それから私は試しました
私は得た
私のテスト データは次のようになります。唯一の違いは、最後の変数が「問題 ID」を示しているのに対し、トレーニング セットでは最後の変数が「classe」を示していることです。
どんな助けでも大歓迎です!!
r - Y axes on the logit scale and centered in gbm.plot
I am currently exploring the gbm functions in the package dismo to create boosted regression trees for species distribution modeling. I have been using the dismo vignettes as well as the 2008 paper "A working guide to boosted regression trees" by Elith et al., published in the Journal of Animal Ecology. On page 808:809 of the Elith et al. article, the authors explain partial dependence plots and give an example at the bottom of page 809 (Fig. 6). According to the dismo vignette "Boosted Regression Trees for ecological modeling", gbm.plot "Plots the partial dependence of the response on one or more predictors".
Gbm.plot creates plots that look almost exactly like the example in Elith et al.. However, there are a few parameters I cannot figure out how to set to achieve a figure the exact same as in the paper.
The y-axes in the paper are on the logit scale and are centered to have a zero mean over the data distribution. The y-axes in gbm.plot represent the fitted function.
The rug in the paper is on the top of the plots, gbm.step the rug is on the bottom.
Gbm.plot uses the variable name as the x-axis label. The paper has meaningful axis labels.
Here is the figure from the Elith paper compared to one produced with gbm.plot
Figure 6 from Elith et al., 2009
From gbm.plot
My solutions
While looking for solutions I came across this question and it gave me the idea to look at the source code (a first for me). From the source, I was able to get a good idea of how the function is put together, but there is still much I don't understand.
I am not sure what to change to transform the y-axes to the logit scale and center them to have a mean of zero.
I was able to change the source to move the rug to the top of the plots. I found the command for the rug function and added an argument of
side=3
.For the variable names, I figure I need to make a list of appropriate variable names, attach it to the data, and somehow read it into the source code. Still over my head.
I will be thankful for any input. I also think that if other ecologists are using the Elith paper to guide them, they may run into the same problem.
Here is an example of the code I ran to produce the plots
gbm.plot(all.sum.tc4.lr001,
rug=TRUE,
smooth=TRUE,
n.plots=9,
common.scale=TRUE,
write.title = FALSE,
show.contrib=TRUE,
plot.layout=c(2,3),
cex.lab=1.5)
r - RでGBMツリーをrpartまたはctreeに変換する方法は?
gbm パッケージで得られた木 (関数で抽出) を決定木構築 (または)pretty.gbm.tree
に関するオブジェクトに変換する方法を知っていますか?rpart
ctree
r - (R) gbm.step から BRT モデルのデンドログラムをプロット
(以前ここに投稿され、間違ったサブに投稿されました。情報が不十分で、閉じられました。編集しました。編集は削除されたようで、投稿は煉獄に委託されたので、再投稿して申し訳ありません。以前の投稿は復活する可能性があります/復活する必要があります)
dismo
R では、 which uses を使用して、いくつかのブースト回帰ツリー、別名一般化ブースティング モデルを実行しましたgbm
。私が現在いる場所に人々を連れて行くための再現可能な例:
(ここから)。これにより、gbm モデル オブジェクト「angaus.tc5.lr01」が残ります。De'ath 2007 のように、分割 (折り畳み?) のデンドログラムを生成したい、つまり、ツリーをプロットしたいと思います (写真、左ペインを参照)。BUT: De'ath のプロットは単一の回帰ツリーであり、データセットからランダムに抽出された異なるデータ セットを使用して実行される可能性のある何千ものツリーの平均であるブースト回帰ツリーではありません。
ユーザーcklussは親切にも rpart を提案しましたが、それは によって生成されるモデルを必要とするrpart
ため、 によって生成される BRT/GBM では機能しませんgbm.step
。同じことがprp
fromにも当てはまりますrpart.plot
。
pretty.gbm.tree
in はgbm
、選択された任意の 1 つのツリーの情報のマトリックスを抽出します (pretty.gbm.tree(angaus.tc5.lr01, i.tree=1)
最初に試してください)。これが成功へのもっともらしいルートであるかどうか疑問に思っています。たとえば、使用可能なすべてのツリーを使用して平均化されたツリー マトリックスを作成するスクリプトを記述し、これをツリーのようなオブジェクトに変換します。
人々はさまざまに似たような質問をしているが、ネット上の他の場所では成功していないように見える。BRT モデルは定期的に「ブラック ボックス」であると説明されているため、一般的な意見としては、モデルを詳しく調べて内部プロセスを表示する必要はない/できる/気にする必要はないというものです。
だれかが BRT について十分に知っgbm
ていて、アイデアを持っていれば、喜んで受け入れてくれるでしょう。ありがとう。
r - ラスター多項 gbm への予測
gbm
現在、多項式モデルをラスターブリックに予測することはできないようです。ただし、比較的小さなラスター グリッドの場合は、これを回避する簡単な方法があることを確認してください。これについては以下で説明します。しかし、ここでのプロセスは非常に遅く、大規模なラスター、多くのクラス (私の場合は植生群集)、および予測変数を扱う場合、課題がないわけではありません。以下の情報が、同じ課題に直面する人の役に立てば幸いです。
以下では、多項 gbm モデルと 20 の予測変数を使用して、36 の植生群落の発生確率を予測しようとしています。私の研究領域は、213,000,000 ピクセルの 30x30m ラスター グリッドですが、以下のコードは、プロセスの開発/テストに使用した 1221 セルの小さなグリッドに関連しています。
次のように、予測変数をラスター スタックにスタックしました。
rasStack の名前が上のモデルの名前と同じであることを確認することが重要です。
predict.gbm を実行する前に、最適な反復モデルを呼び出します
グリッド セルを一連の空間ポイントに変換することで、1221 個のセルを含むテスト エリアの一連のラスター出力画像を作成できます (以下を参照)。
predict.gbm モデルを実行するには
次の方法で、predtable から 36 個の新しいラスター イメージのセットに発生確率値を書き込むことができます。
これにより、必要な出力が得られます-ただし、データフレームを予測する必要はありません-ラスターブリックに直接予測することができれば、プロセスははるかに高速で効率的になります。
私が走れば
出力は、予測したい最初の植生コミュニティを表すラスター グリッドです。
IDRISI ファイル形式はマルチバンド イメージをサポートしていないため、ミックスに index=1:36 を追加してマルチバンド ラスターブリックを出力として生成することはできません。これを実行しようとすると、format="GTiff" または "HFA" (または rgdal を必要とするその他の形式) を設定すると、次のエラー メッセージが表示
されます。 1、オフセット = オフ) : ラスター IO 中のエラー"
ただし、format="raster" を設定すると、rasterbrick 出力を取得できますが、idrisi 画像 (predict.gbm モデルの最初の出力列) 以外のデータを読み書きすることはできません。
「警告メッセージ: In .rasterFromRasterFile(grdfile, band = band, objecttype, ...) : 値ファイルのサイズがセルの数と一致しません (指定されたデータ型)」
上記のラスターブリックを個々のラスター画像のセットに変換しようとすると
どの画像も意味をなさない。
また、マルチバンド CDF イメージとして書き込もうとすると、rgdal エラーとは異なる一連の警告メッセージが表示されることも少し不可解です。
ここで、何が起こっているのかわかりませんか??
上記の問題に遭遇することなく、rasterbrick に直接予測できるようにするために、gbm パッケージの作成者と協力できる方法を知っている人がいれば素晴らしいことです。
完全なラスター グリッドで使用したコードを誰かが知りたい場合は、下にコメントを残してください。喜んで提供します。
乾杯アレン
r - GBM R パッケージでの R 二乗計算
R の gbm (Gradient Boosting Machine) パッケージによって作成されたモデルの R-Squared を計算したい。結果。これは、モデルの適合性を評価するために交差検証 R-Squared を導出する有効な方法ですか? 次のようにコードします。
出力
Train_RSq
[1] 0.9762177
CV_RSq
[1] 0.8918581
これらの結果は私には理にかなっています: トレーニング モデルの R-2 乗 > CV R-2 乗。また、train.fraction=1 を指定するのも理にかなっています。これは、テスト サンプルを保持することは (交差検証のため) 冗長になるためです。gbm の R-Squared を計算するこのアプローチは有効に見えますか?
r - ライブラリ "gbm" を R プロジェクトにアタッチできません
gbm
ライブラリ(RStudio)をインストールしました。私がそれを呼び出そうとすると、失敗します:
このライブラリは、ちょうど 1 日前に完全に機能したことに注意してください。RStudio セットアップに変更を加えていません。