ランダムフォレストと回帰


21

5つの独立変数を持つデータセットでOLS回帰モデルを実行しました。独立変数と従属変数は両方とも連続的であり、線形に関連しています。Rスクエアは約99.3%です。しかし、Rでランダムフォレストを使用して同じことを実行すると、結果は「%Var説明:88.42」になります。なぜランダムフォレストの結果は、回帰に比べてそれほど劣るのでしょうか?私の仮定では、ランダムフォレストは少なくともOLS回帰と同じくらい良いだろうということでした。


4
目標が予測である場合、R平方が高いのはオーバーフィッティングによる可能性があります。交差検証を使用して、RN予測と回帰予測を比較してみてください。
マノエルガルディーノ

回答:


27

あなたが何をしたのか正確にはわからないので、あなたのソースコードは私がより少なく推測するのに役立ちます。

多くのランダムフォレストは、基本的には平均がシステムを表すと想定されるウィンドウです。過剰に装飾されたCARツリーです。

2葉のCARツリーがあるとしましょう。データは2つの山に分割されます。各パイルの(一定の)出力はその平均になります。

ここで、データのランダムなサブセットで1000回実行してみましょう。平均値である出力を持つ不連続な領域がまだあります。RFの勝者が最も頻繁に結果になります。カテゴリ間の境界を「ファジー」にするだけです。

CARTツリーの区分的線形出力の例:

たとえば、関数がy = 0.5 * x + 2であるとしましょう。そのプロットは次のようになります。 図1

2つのリーフのみを持つ単一の分類ツリーを使用してこれをモデル化する場合、最初に最適な分割ポイントを見つけ、そのポイントで分割し、次に各リーフでの関数出力をリーフ全体の平均出力として近似します。

些細なCARTでプロットする

CARTツリーのリーフを増やしてこれを再度行うと、次のようになります。 ここに画像の説明を入力してください

なぜCARフォレストなのか?

無限の葉の制限では、CARTツリーが許容可能な近似値になることがわかります。

問題は、実世界がうるさいということです。私たちは手段で考えるのが好きですが、世界は中心傾向(平均)と変動傾向(std dev)の両方が好きです。ノイズがあります。

CARツリーに大きな強さ、不連続性を処理する能力を与えるのと同じことが、ノイズが信号であるかのようにモデリングノイズに対して脆弱になります。

そのため、Leo Breimannはシンプルだが強力な命題を作成しました。Ensembleメソッドを使用して、分類木と回帰木を堅牢にします。彼はランダムなサブセット(ブートストラップのリサンプリングの従兄弟)を取得し、それらを使用してCARツリーのフォレストをトレーニングします。森の質問をすると、森全体が話し、最も一般的な答えが出力として取得されます。数値データを処理している場合は、期待値を出力として見ると便利です。

したがって、2番目のプロットでは、ランダムフォレストを使用したモデリングについて考えます。各ツリーには、データのランダムなサブセットがあります。つまり、「最適な」分割ポイントの場所はツリーごとに異なります。不連続フォレストに近づいたときにランダムフォレストの出力のプロットを作成する場合、最初のいくつかの分岐はジャンプを示し、その後多くの分岐が示されます。その領域の平均値は、滑らかなシグモイドパスを通過します。ブートストラップはガウスと畳み込みであり、そのステップ関数のガウスぼかしはシグモイドになります。

ボトムライン:

非常に線形な関数を適切に近似するには、ツリーごとに多くの分岐が必要です。

答えに影響を与えるために変更できる「ダイアル」は数多くあり、それらをすべて適切な値に設定した可能性は低いです。

参照:


ランダムフォレスト回帰は、区分的に定数の関数を使用して実行されていませんか?これは明らかに、線形に関連するデータへの適合度が低いですか?
seanv507

同じことを言っていると思います。どの定数が使用されていますか?右。
EngrStudent-モニカの復活

私たちが同じことを言っていると思ったら、私はそれをコメントとして入れたでしょう。あなたの答えがわかりません。私の答えは、OPsデータは線形であり、区分的定数関数ではあまり適合しないことを説明しています。
seanv507

@ seanv507 RFの利点は、データの摂動バージョン(のランダムサブセット)に適合する複数のツリーが、不連続性を平均化することです。その結果、単一のツリーが生成するものよりも、基礎となる滑らかな線へのより良い近似になります。
大井紅

基本的には回帰ツリーでのブートストラップのリサンプリングです。ブートストラップが気に入らないことの1つは、一様分布が有益な事前値としてカウントされることです。理想的なケースは情報価値のない事前分布ではありませんか?
EngrStudent-モニカの復活

7

これは古い質問であることに気づきましたが、さらに追加する必要があると思います。@Manoel Galdinoがコメントで述べたように、通常は目に見えないデータの予測に興味があります。しかし、この質問はトレーニングデータのパフォーマンスに関するものであり、問題はランダムフォレストトレーニングデータのパフォーマンスを低下させる理由です。答えは、しばしば私に問題を引き起こしたバギングされた分類器に関する興味深い問題を強調しています:平均への回帰

問題は、データセットからブートストラップサンプルを取得することで作成されるランダムフォレストのようなバギングされた分類器が、極端にパフォーマンスが低下する傾向があることです。極端なデータはそれほど多くないため、平滑化される傾向があります。

より詳細には、回帰のランダムフォレストが多数の分類子の予測を平均化することを思い出してください。他から遠く離れた単一のポイントがある場合、分類器の多くはそれを認識せず、これらは本質的にサンプル外の予測を行いますが、これはあまり良くないかもしれません。実際、これらのサンプル外の予測は、データポイントの予測を全体の平均に引き寄せる傾向があります。

単一の決定木を使用する場合、極端な値で同じ問題は発生しませんが、近似回帰も非常に線形ではありません。

Rの図を次に示しますy。5つのx変数の完全なライナーの組み合わせであるデータが生成されます。次に、線形モデルとランダムフォレストを使用して予測が行われます。次に、yトレーニングデータの値が予測に対してプロットされます。値が非常に大きいまたは非常に小さいデータポイントyはまれであるため、ランダムフォレストが極端に悪い結果を出していることがはっきりとわかります。

ランダムフォレストが回帰に使用されている場合、非表示データの予測に同じパターンが表示されます。私はそれを避ける方法がわかりません。randomForestR の関数には、バイアスにcorr.bias線形回帰を使用する粗いバイアス補正オプションがありますが、実際には機能しません。

提案を歓迎します!

beta <- runif(5)
x <- matrix(rnorm(500), nc=5)
y <- drop(x %*% beta)
dat <- data.frame(y=y, x1=x[,1], x2=x[,2], x3=x[,3], x4=x[,4], x5=x[,5])
model1 <- lm(y~., data=dat)
model2 <- randomForest(y ~., data=dat)
pred1 <- predict(model1 ,dat)
pred2 <- predict(model2 ,dat)
plot(y, pred1)
points(y, pred2, col="blue")

ここに画像の説明を入力してください


私はあなたの観察に同意しますが、データポイントの少ない地域の平均に対するRF回帰のファンになりました。少数のデータポイントのみでサポートされるトレーニングセットの境界線に至るまで、優れた全体的な線形構造を確実に見つけることができる場合は、線形補正を行い、RFで残差を処理します。
ソレンHavelundウェリング

2
コメントありがとう!予測が非常に悪く、見た目が悪くなるという厄介な経験がありました。しかし、おそらく分散を増加させずに境界線ポイントのより正確な予測を取得する方法はありません。
ヒラメ

数年後の追加コメントでは、データにわずかなギャップがある場所ではRFのパフォーマンスが低下する傾向があることに気付きました。もちろん、極端なデータセットではデータが少なくなることがよくありますが、たまに中央にギャップが生じる場合があります。RFは、ギャップのあるデータセットを適切に混乱させることができます。
SeldomSeenSlim

2

ランダムフォレストは、多数のフィーチャと多数のデータポイントからローカリティを見つけようとします。特徴が少ないため、全体的な結果はロジスティック回帰ほど良くないので、特徴を分割して異なるツリーに与えます。ランダムフォレストは数値変数とカテゴリ変数を処理できますが、欠損値の処理は得意ではありません。


0

ランダムフォレスト(RF)は、Xsとyの関係の関数形式が複雑な場合(非線形関係と相互作用効果のため)に適したツールだと思います。RFは(最小SSEの観点から)最適なカットポイントに基づいてXを分類し、関係の機能形態に関する研究者情報を適用しません。一方、OLS回帰はこの情報を使用します。この例では、Xとyの関係のタイプを正確に把握しており、回帰モデルでこの情報をすべて使用していますが、RFはこの情報を使用していません。


-2

基本的には、回帰は連続変数に対して良好に機能し、ランダム変数は離散変数に対して良好に機能します。

より具体的にするには、問題と変数の性質に関する詳細を提供する必要があります...


すべての変数の株式の毎日のリターン(金融時系列)
...-user28906

3
「回帰は連続変数に対して良好に機能し、ランダムフォレストは離散変数に対して良好に機能します。」:これは一般的に当てはまりません。推論と予測には違いがあり、予測を使用しても、RFよりも回帰が優先される場合があります。
AdamO
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.