タグ付けされた質問 「random-forest」

ランダムフォレストは、多くの決定木の出力の組み合わせに基づく機械学習手法です。

3
ランダムフォレストツリーを2進数ではなく10進数に投票する方法
私の質問は、バイナリ分類についてです。たとえば、良い顧客と悪い顧客を区別しますが、回帰や非バイナリ分類はそうではありません。このコンテキストでは、ランダムフォレストは分類木の集合です。各観測について、すべての木が「はい」または「いいえ」に投票し、すべての木の平均投票が最終的な森林確率です。 私の質問は、基になるツリーの動作を変更することです。RのrandomForestパッケージのrandomForest関数を変更して、各ツリーがバイナリのyes / noではなく10進数に投票するようにするにはどうすればよいですか。10進数の意味をよりよく理解するために、決定木がどのように機能するかを考えてみましょう。 完全に成長したディシジョンツリーのターミナルノードには、1つの良いインスタンスまたは1つの悪いインスタンスがあります。ターミナルノードのサイズを100に制限するとします。ターミナルノードは次のようになります。 Node1 = 80不良、20良好 Node2 = 51不良、49良好 Node3 = 10不良、90良好 Node1とNode2が「悪い」と投票したとしても、「悪さの強さ」は大きく異なります。それが私の狙いです。1または0(デフォルトの動作)を生成する代わりに、Rパッケージを変更して、80 / 100、51 / 100、10 / 100などに投票できますか?

1
ランダムフォレストモデルに交互作用項を含める方法
randomForestRのrandomForestパッケージの関数を使用して回帰を行っています。ただし、次のコードに相互作用用語を含めようとすると、 library(MASS) library(randomForest) Boston_f <- within(Boston, factor(rad)) mdl <- randomForest(lstat ~ rad * . , data = Boston_f) 結果にmdl$termは相互作用が含まれますが、mdl使用しているツリーをのぞくと、 getTree(mdl, 1, T) 相互作用項を使用して分割変数を見つけることができません。 誰かが相互作用の用語を使用しrandomForestたり、他の関数を含める方法を知っていますか?

2
以前のクラスの確率分布をロジスティック回帰に組み込む
ロジスティック回帰やランダムフォレストなどの分類器に事前クラス確率分布を組み込む方法についての記事や講義が見つからないことに驚いています。 だから私の質問は: 以前のクラスの確率分布をロジスティック回帰またはランダムフォレストに組み込むにはどうすればよいですか? 以前のクラス確率分布を組み込むことは、ベイジアン機械を使用する必要があることを意味しますか? 私はクラスaがクラスbよりもはるかに可能性が高いことを知っている分類タスクに直面しています。 アドホックな解決策は、クラスAのサンプルをトレーニングセットに含めるだけですが、これに関する理論的な結果はありますか? 私が考えたのは、決定しきい値を0.5からこの以前の不均衡を考慮した値に変更することでした。しかし、それが理論的に理にかなっているのかどうかさえわかりません。決定を下す準​​備ができた時点で、すでにすべての特徴値を調べているため、事前確率ではなくクラスの条件付き確率を気にする必要があるためです。

1
ランダムフォレストと極端にランダム化されたツリーはどのように異なって分割されますか?
ランダムフォレストの場合、一連の機能のジニ不純物またはエントロピーによってノードを分割します。sklearnのRandomForestClassifierでは、Giniまたはエントロピー基準を使用して分割することを選択できます。ただし、Extra-Trees Classifierについて読んだところ、分割にはランダムな値が選択されています(おそらく、GiniやEntropyとは関係ありません)。sklearnのExtraTreesClassifierには、分割にGiniまたはエントロピーを選択するオプションがあります。ここでは少し混乱しています。

3
ランダムフォレストまたはグラデーションブースティングを行うときに、機能エンジニアリングは重要ですか?
線形モデル(線形回帰、ロジスティック回帰など)の場合、モデルのパフォーマンスを向上させるために、特徴エンジニアリングは重要なステップです。私の質問は、ランダムフォレストまたは勾配ブースティングを使用しているときに機能エンジニアリングを行うかどうかに関係ありますか? これらのモデルがディープラーニングモデルではないことは間違いありません。しかし、機能エンジニアリング手法のいくつかは実際にはモデルを改善しないようです。たとえば、私は約200の特徴を含むバイナリ分類問題をやっていて、そのうちの20はカテゴリ特徴です。私は次のことをしました: ベンチマーク:ランダムフォレスト分類器を元のデータに直接実行しました。AUCは約0.93、精度、再現率、Fスコアは約0.95です(statifiedKfold検証が適用されており、結果に非常に小さなばらつきがあるため、私は言った) モデルを実行して、カイ2乗検定とANOVA f1検定を実行することにより、特徴の次元を削減しました。結果はほぼ同じです。AUCは約0.93、精度、再現率、Fスコアは約0.95です。 次に、すべてのカテゴリ機能をワンホットキーで入力し、モデルを再実行しましたが、結果はほぼ同じです。AUCは約0.93、精度、再現率、Fスコアは約0.95です。 次に、切り捨てられたSVDが適用されて機能がさらに削減され、モデルが再トレーニングされますが、結果は変わりません... ついに私は多項式項、残りの特徴のクロス項を追加しました。結果はまだ変わっていません... 何か提案してください?ありがとうございました。

1
バギング技術を使用して、多くの勾配ブースティングツリーを組み合わせることができますか?
勾配ブースティングツリーとランダムフォレストに基づいています。GBDTとRFは、バイアスと分散に取り組むために異なる戦略を使用しています。 私の質問は、複数のGBDTをトレーニングし、それらの予測を最終結果として組み合わせるために、データセットを(置き換えて)リサンプリングできるということです。 GBDTを基本学習者として使用してランダムフォレストを構築するのと同じです アイデアは、GBDTがデータセットをオーバーフィットする可能性があることです(完全に成長する決定木と同様、低バイアス、高分散)。バギング手法を使用することでこの問題も軽減でき、パフォーマンスを向上させたいと思います。 なにか提案を?

1
ビッグデータ設定のランダムフォレスト
5,818,446行と51列のデータセットがあり、そのうちの50が予測変数です。私の応答は定量的であるため、回帰モデルに興味があります。キャレットパッケージを使用して、ランダムフォレストをデータに適合させようとしています。しかし、それを行うのに十分なRAMがありません。 私は自分の問題の解決策を探していました。より強力なコンピューターを持っていることに加えて、バギングを利用して問題を解決できるようです。したがって、私の考えは次のとおりです。 元のデータセットからトレーニングパーティションとテストパーティションの両方を作成する 電車のデータセットの一部をRに置き換えたサンプル(その1%、つまり58,185行としましょう) データのこの小さな部分にランダムフォレストを当てはめる モデル結果を保存する 手順2〜4を1,000回繰り返します 手順2〜5から取得したこれらの1,000モデルを組み合わせる ただし、ランダムフォレスト自体はバギングを使用してモデルをデータに適合させているため、私のアプローチが正しいかどうかはわかりません。したがって、いくつか質問があります。 i)私のアプローチは正しいですか?つまり、システムに十分なRAMがないため、さまざまなランダムフォレストモデルをさまざまなデータチャンクに適合させ、それらを後で結合することは正しいのでしょうか。 ii)私のアプローチが正しいと仮定すると、データの1%がサンプルサイズの良い目安になりますか?データの1%でも、ます。N » Pん≫pn \gg p iii)私のアプローチが正しいと仮定すると、使用する必要のあるモデルのレプリケーションは多数ありますか?理由で1,000個と思いました。

6
なぜ回帰ランダムフォレスト予測の平均を取るのですか?
私が読んだすべての(回帰)ランダムフォレストペーパーで、すべての木の予測を収集するときが来たら、平均値を予測として使用します。 私の質問は、なぜそれを行うのですか? 平均を取るための統計的正当性はありますか? 編集:質問を明確にするために、私は他の集約関数を使用することが可能であることを知っています(分類にはモードを使用します)。

1
ランダムフォレストモデルの欠落しているカテゴリカル予測子変数を推定する方法は?
ランダムフォレストを構築するために使用しているx、yデータのセットがあります。xデータは、いくつかのNAを含む値のベクトルです。そのためrfImpute、欠けているデータを処理してランダムフォレストを作成するために使用します。今、私は新しい目に見えない観測x(NAあり)を持っており、yを予測したいと思います。すでに成長したランダムフォレストを使用できるように、欠損値をどのように代入するのですか?rfImputeこの関数は、xとyを必要としているようです。予測のためにxしかありません。 私の質問はこの質問に似ています(ただし異なります)。たとえば、同じ虹彩データセットを使用できます。私が参照する質問の回答のコードを正しく解釈した場合iris.na[148, , drop=FALSE]、ステートメントのコードiris.na2 = rbind(iris.imputed, iris.na[148, , drop=FALSE])はSpecies(Y値)を含む新しいデータを表します。私の問題では、私は知らないでしょう— Speciesランダムフォレストを使用してそれを予測したいと思います。4つの独立変数がありますが、一部はNA特定の行のものである可能性があります。類推を続けるために、私が4つの変数のうち3つを持っていると想像してください(1つは欠落しています)。私はその価値を主張したいと思います。それから私は知らない種を予測したいと思います。 私がイラストを追加すべきだというガンのコメントに応えて、虹彩データセットの観点から説明させてください。花に関する次のデータがあるとします。私はそれが、、であることを知っていますがSepal.Length、Sepal.WidthでPetal.LengthはありませんPetal.Width。を代入してPetal.Widthから、RFモデル内でこれらの4つの値を使用してを予測したいと思いますSpecies。


4
sklearn、3クラス分類のランダムフォレストの適切なOobスコアは何ですか?[重複]
この質問にはすでに回答があります: 診断メトリック(R2R2R^2 / AUC /精度/ RMSEなど)の値に基づいて、私のモデルは良いですか? (3つの答え) 7か月前に閉鎖。 約45,000のサンプルで構成される学習データがあり、それぞれ21の機能があります。3つのクラス(-1、0、1)のラベルが付けられたこのデータでランダムフォレスト分類器をトレーニングしようとしています。クラスのサイズはほぼ同じです。 私のランダムフォレスト分類子モデルはgini、その分割品質基準として使用しています。木の数は10であり、木の深さを制限していません。 ほとんどの機能は無視できるほどの重要性を示しています。平均は約5%、それらの3分の1は重要度0、それらの3分の1は平均より上に重要です。 ただし、おそらく最も印象的な事実は、oob(out-of-bag)スコア(1%未満)です。それはモデルが失敗したと私に思わせました、そして実際に、サイズ〜40kの新しい独立したセットでモデルをテストしたところ、63%(これまでのところ良い音)のスコアを得ましたが、混同行列をより詳しく調べると、モデルはクラス0でのみ成功し、1と-1の間で決定する場合、約50%のケースで失敗します。 添付されたPythonの出力: array([[ 7732, 185, 6259], [ 390, 11506, 256], [ 7442, 161, 6378]]) これは当然のことですが、0クラスには予測をはるかに容易にする特別なプロパティがあるためです。しかし、私が見つけたOobスコアがすでにモデルが良くない兆候であるというのは本当ですか?ランダムフォレストのOobスコアはいくつですか?モデルが「良好」であるか、oobスコアのみを使用するか、またはモデルの他の結果と組み合わせて使用​​するかを決定するのに役立つ経験則はありますか? 編集:不正なデータ(データの約3分の1)を削除した後、ラベルは0の場合は2%程度、-1 / + 1の場合は49%でした。oobスコアは0.011で、テストデータのスコアは0.49であり、混同行列はクラス1(予測の約3/4)にほとんど偏っていません。

3
Borutaの機能選択(Rで)では、変数間の相関関係が考慮されますか?
私はRと機能選択の初心者で、Borutaパッケージで変数の数(n = 40)を選択(減少)しようとしました。この方法は変数間の可能な相関も考慮に入れていると思いましたが、2つ(選択した20変数のうち)は高度に相関しており、他の2つは完全に相関しています。これは正常ですか?Borutaメソッドは、2つのうちの1つを重要でないと分類すべきではありませんか?

2
厳密にバイナリデータの分類モデルを構築する
厳密にバイナリであるデータセットがあります。各変数の値のセットはドメイン内にあります:true、false。 このデータセットの「特別な」プロパティは、値の圧倒的多数が「false」であることです。 ベイジアンネットワーク学習アルゴリズムを使用して、データからネットワークを学習しました。ただし、ターゲットノードの1つ(最も重要なノードは死)の場合、AUCの結果はあまり良くありません。偶然より少し良いです。CVについて私に提案されているポジティブ予測値(PPV)でさえ、他のアプローチを使用した文献で報告されているものと競合しませんでした。AUC(ROC分析)は、臨床研究のこの領域で報告される典型的なベンチマークですが、他にアイデアがある場合は、分類モデルをより適切にベンチマークする方法についての提案も開かれています。 そのため、このプロパティを使用してこのタイプのデータセット(ほとんどの場合、偽の値)に対して他のどの分類モデルを試すことができるか考えていました。 ベクターマシンのヘルプをサポートしますか?私の知る限り、SVMは連続変数(予測子としての変数)のみを扱います(ただし、マルチクラスに適合されています)。しかし、私の変数はすべてバイナリです。 ランダムフォレストは役に立ちますか? ここでロジスティック回帰が適用されますか?私の知る限り、ロジスティック回帰の予測子も連続しています。予測子としてのバイナリ変数の一般化バージョンはありますか? 分類のパフォーマンスは別として、SVMとランダムフォレストはベイジアンネットワークよりも優れていると思いますが、問題はこれらのモデルの関係を説明する方法(特に臨床医)に移ります。

1
RandomForestは空間的独立性を無視しますか?
世界の国ごとに5つの変数があり、独立変数に対するそれらの影響と相互作用を分析する必要があります。ランダムフォレストは、非線形の関係を扱い、変数の重要性を予測するため、私のスコープには適切です。しかし、空間依存が問題になるのではないかと思います。それが空間データに広く使用されている場合でも、RFアプリケーションで説明されている空間依存性を見たことがありません。

4
カテゴリカル予測子(機能)のランダムフォレストの分割を選択するにはどうすればよいですか?
数値予測子(機能)のランダムフォレストに最適な分割がどのように選択されるかを理解しています。 数値予測子が並べ替えられ、すべての値についてジニ不純物またはエントロピーが計算され、最適な分割を行うしきい値が選択されます。しかし、特定の順序付けがないため、カテゴリカル予測子にはどのように最良の分割が選択されますか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.