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

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

3
ランダムフォレストと極端にランダム化されたツリーの違い
ランダムフォレストと極端にランダム化されたツリーは、ランダムフォレスト内のツリーの分割が決定論的であるという意味で異なりますが、極端にランダム化されたツリーの場合はランダムです(より正確には、次の分割が最適な分割です現在のツリーの選択された変数のランダムな均一な分割の間で)。しかし、私はさまざまな状況でのこの異なる分割の影響を完全には理解していません。 彼らはバイアス/分散の観点からどのように比較しますか? 無関係な変数が存在する場合、それらはどのように比較されますか? 相関変数の存在下でどのように比較しますか?

1
手動で計算された
これはかなり具体的なR質問であることはわかっていますが、説明する割合の分散について考えているかもしれません。について間違っている。ここに行きます。R2R2R^2 私は使用しようとしています RパッケージますrandomForest。トレーニングデータとテストデータがあります。ランダムフォレストモデルを当てはめると、このrandomForest関数を使用して、テストする新しいテストデータを入力できます。次に、この新しいデータで説明された分散の割合を示します。これを見ると、1つの数字が得られます。 predict()関数を使用して、トレーニングデータからのモデルフィットに基づいてテストデータの結果値を予測し、これらの値とテストデータの実際の結果値の異なる数値が得られます。これらの値は一致しません。 R問題を示すためのコードを次に示します。 # use the built in iris data data(iris) #load the randomForest library library(randomForest) # split the data into training and testing sets index <- 1:nrow(iris) trainindex <- sample(index, trunc(length(index)/2)) trainset <- iris[trainindex, ] testset <- iris[-trainindex, ] # fit a model to the training set …

6
多くのカテゴリ変数を使用して分類を改善する
私は200,000以上のサンプルとサンプルあたり約50の特徴を持つデータセットに取り組んでいます:10の連続変数と他の〜40はカテゴリ変数(国、言語、科学分野など)です。これらのカテゴリ変数には、たとえば150か国、50の言語、50の科学分野などがあります。 これまでの私のアプローチは次のとおりです。 多くの可能な値を持つカテゴリ変数ごとに、この値を取得する10000個を超えるサンプルを持つ変数のみを取得します。これにより、150ではなく5〜10のカテゴリに減少します。 カテゴリカル変数ごとにダミー変数を作成します(10か国の場合、サンプルごとにサイズ10のバイナリベクトルを追加します)。 このデータをランダムフォレスト分類器(パラメーターのクロス検証など)にフィードします。 現在、このアプローチでは、65%の精度しか得られず、さらに多くのことができるように感じています。特に、1)に満足していません。サンプルの数に応じて「最も関連性の低い値」を勝手に削除してはいけないように感じるからです。一方、RAMには、可能なすべての値を保持することで、データに500列* 200000行を追加する余裕がありません。 この多くのカテゴリ変数に対処するための提案はありますか?

3
ランダムフォレストの投票から「確実性スコア」を作成しますか?
私は、約10,000個のオブジェクトの適度に大きなトレーニングセットでオブジェクトType AとType Bオブジェクトを区別する分類子をトレーニングしようType AとしていますType B。データセットは、セルの物理的特性(サイズ、平均半径など)を詳述する100個の連続したフィーチャで構成されています。ペアワイズ散布図と密度プロットでデータを視覚化すると、多くの特徴で癌細胞と正常細胞の分布にかなりの重複があることがわかります。 現在、このデータセットの分類方法としてランダムフォレストを調査しており、いくつかの良い結果が得られています。Rを使用すると、ランダムフォレストはオブジェクトの約90%を正しく分類できます。 試してみたいことの1つは、オブジェクトの分類に対する自信の程度を定量化する一種の「確実性スコア」を作成することです。私たちは、分類器が100%正確になることはありませんことを知っている、との予測では、高い精度が達成された場合でも、私たちは訓練を受けた技術が真にであるオブジェクトを識別することになるでしょうType AとType B。そのため、Type Aまたはの妥協のない予測を提供する代わりにType B、各オブジェクトの方法AまたはBオブジェクトがどのようであるかを説明するスコアを提示したいと思います。たとえば、0〜10の範囲のスコアを考案した場合、スコア0はオブジェクトがオブジェクトに非常に似ていることを示し、スコア10はオブジェクトが非常に似ているType Aことを示しますType B。 ランダムフォレスト内の投票を使用して、このようなスコアを考案できると考えていました。ランダムフォレストの分類は、生成されたツリーのフォレスト内の多数決によって行われるため、ツリーの100%によって投票さType Aれたオブジェクトは、たとえばツリーの51%によって投票されたオブジェクトとは異なると想定しますであるType A。 現在、オブジェクトをType AまたはType Bに分類するために受け取る必要がある投票の割合に任意のしきい値を設定しようとしましたが、しきい値を超えていない場合はに分類されUncertainます。たとえば、80%以上のツリーが分類の合格に同意する必要があるという条件を強制すると、クラス予測の99%は正しいが、オブジェクトの約40%がとしてビン化されることがわかりますUncertain。 それでは、投票情報を利用して予測の確実性をスコアリングすることは理にかなっていますか?または、私は自分の考えで間違った方向に向かっていますか?

3
ランダムフォレストのOOBと混同マトリックスを解釈する方法は?
誰かからランダムスクリプトモデルを実行するRスクリプトを受け取りました。いくつかの従業員データを使用して変更して実行しました。自発的な分離を予測しようとしています。 いくつかの追加情報があります。これは、0 =従業員が留まる、1 =従業員が解雇される分類モデルです。現在、12個の予測変数のみを調べています。レコードセット全体の%。 さまざまなmtryおよびntreeの選択を使用してモデルを実行しましたが、以下で解決しました。OOBは6.8%で良いと思いますが、エラーマトリックスは92.79%と非常に高いため、混同マトリックスは用語を予測するための別の話をしているようです。用語を予測するための高いエラー率?または、RFを使用して用語を予測するためのエラー率を小さくするためにできることはありますか? FOREST_model <- randomForest(theFormula, data=trainset, mtry=3, ntree=500, importance=TRUE, do.trace=100) ntree OOB 1 2 100: 6.97% 0.47% 92.79% 200: 6.87% 0.36% 92.79% 300: 6.82% 0.33% 92.55% 400: 6.80% 0.29% 92.79% 500: 6.80% 0.29% 92.79% > print(FOREST_model) Call: randomForest(formula = theFormula, data = trainset, mtry = 3, ntree …

3
ランダムフォレストモデルでの精度の平均低下とGINIの平均低下の解釈方法
ランダムフォレストパッケージからの変数の重要度の出力を解釈する方法を理解するのに少し苦労しています。通常、精度の平均低下は、「各フィーチャの値を並べ替えることによるモデルの精度の低下」として説明されます。 これは、機能全体または機能内の特定の値に関する記述ですか?どちらの場合でも、平均精度の低下は、問題のフィーチャ(またはフィーチャからの値)をモデルから削除することによって誤って分類された観測の数または割合ですか? 次のモデルがあるとします。 require(randomForest) data(iris) set.seed(1) dat <- iris dat$Species <- factor(ifelse(dat$Species=='virginica','virginica','other')) model.rf <- randomForest(Species~., dat, ntree=25, importance=TRUE, nodesize=5) model.rf varImpPlot(model.rf) Call: randomForest(formula = Species ~ ., data = dat, ntree = 25, proximity = TRUE, importance = TRUE, nodesize = 5) Type of random forest: classification Number of trees: …

3
ランダムフォレストはどのように外れ値に敏感ではないのですか?
これを含むいくつかの情報源で、ランダムフォレストは外れ値の影響を受けないことを読みました(たとえば、ロジスティック回帰や他のMLメソッドのように)。 ただし、2つの直観がそれ以外のことを教えてくれます。 決定木が作成されるたびに、すべてのポイントを分類する必要があります。これは、外れ値でも分類されるため、ブースティング中に選択された決定木に影響を与えることを意味します。 ブートストラップは、RandomForestがサブサンプリングを行う方法の一部です。ブートストラップは外れ値の影響を受けやすくなっています。 異論のある情報源で、外れ値に対する感度に関する私の直感を調整する方法はありますか?

2
ランダムフォレストの高度に相関した変数は、精度と特徴選択をゆがめませんか
私の理解では、高度に相関する変数は、ランダムフォレストモデルで多重共線性の問題を引き起こしません(間違っている場合は修正してください)。ただし、他の方法で、類似の情報を含む変数が多すぎる場合、他のモデルよりもこのセットのモデルの重みが大きくなりすぎますか? たとえば、同じ予測力を持つ2つの情報セット(A、B)があります。変数、、...すべて情報Aを含み、Yのみが情報Bを含みます。ランダムサンプリング変数では、ほとんどのツリーが情報Aで成長し、結果として情報Bが完全にキャプチャされませんか?バツ1バツ1X_1バツ2バツ2X_2バツ1000バツ1000X_{1000}

2
Rのランダムフォレスト分類における一連の予測変数の相対的重要性
randomForestRの分類モデルに対する変数セットの相対的な重要度を決定したいのですが、importance関数はMeanDecreaseGini個々の予測変数のメトリックを提供します。セット内の各予測変数でこれを合計するのと同じくらい簡単ですか? 例えば: # Assumes df has variables a1, a2, b1, b2, and outcome rf <- randomForest(outcome ~ ., data=df) importance(rf) # To determine whether the "a" predictors are more important than the "b"s, # can I sum the MeanDecreaseGini for a1 and a2 and compare to that of b1+b2?

3
Rはテキスト分類タスクにどれだけうまく対応できますか?[閉まっている]
私はRの速度を上げようとしています。最終的にはテキストの分類にRライブラリを使用したいと思います。テキストの分類を行う際に、Rの拡張性に関して人々の経験はどうなっているかと思っていました。 高次元のデータ(〜30万次元)に遭遇する可能性があります。特に分類アルゴリズムとしてSVMとランダムフォレストを使用することを検討しています。 Rライブラリは問題のサイズに合わせて拡張できますか? ありがとう。 編集1:明確にするために、私のデータセットには10​​00〜3000行(おそらくもう少し)と10のクラスがありそうです。 編集2:私はRに非常に新しいので、可能な限りより具体的になるようにポスターを要求します。たとえば、ワークフロー/パイプラインを提案している場合は、可能であれば各ステップに関係するRライブラリを必ず言及してください。いくつかの追加のポインター(例、サンプルコードなど)がケーキに着氷します。 編集3:まず、あなたのコメントをありがとう。第二に、私は謝罪します。おそらく、この問題についてもっと多くの文脈を与えたはずです。私はRには慣れていませんが、テキストの分類にはそれほど慣れていません。物事の感触をつかむために、tmパッケージを使用して、データの一部で前処理(ステミング、ストップワードの削除、tf-idf変換など)を既に実行しています。tmは約200のドキュメントでも非常に遅いため、スケーラビリティについて心配しました。それから私はFSelectorで遊び始めましたが、それでも本当に遅かったです。そして、それが私がOPを作ったポイントです。 編集4:10個のクラスとクラスごとに約300個のトレーニングドキュメントがあり、実際にはトレーニングセット全体からtermXdocマトリックスを構築しているため、非常に高い次元が発生しました。しかし、すべての1-out-of-k分類問題を一連のバイナリ分類問題に減らすのはどうでしょうか?これにより、k-1の各ステップでトレーニングドキュメントの数(したがって次元数)が大幅に削減されます。このアプローチは良いものですか?精度の点で、通常のマルチクラス実装とどのように比較されますか?


3
R:データセットにNaNがないにもかかわらず、「Forest function call」エラーでNaN / Infをスローするランダムフォレスト[非公開]
キャレットを使用して、データセットに対してクロス検証されたランダムフォレストを実行しています。Y変数は要因です。データセットにNaN、Inf、またはNAはありません。ただし、ランダムフォレストを実行すると、 Error in randomForest.default(m, y, ...) : NA/NaN/Inf in foreign function call (arg 1) In addition: There were 28 warnings (use warnings() to see them) Warning messages: 1: In data.matrix(x) : NAs introduced by coercion 2: In data.matrix(x) : NAs introduced by coercion 3: In data.matrix(x) : NAs introduced by …

1
類似度行列を(ユークリッド)距離行列に変換する
ランダムフォレストアルゴリズムでは、Breiman(著者)は次のように類似度行列を作成します。 すべての学習例をフォレスト内の各ツリーに送信します 2つの例が同じ葉にある場合、類似度マトリックスの対応する要素を1ずつ増やします。 木の数で行列を正規化する 彼は言い​​ます: ケースnとkの間の近接性は、行列{prox(n、k)}を形成します。それらの定義から、この行列が対称で正定であり、1に等しい対角要素で上に1で区切られていることを示すのは簡単です。値1-prox(n、k)はユークリッドの平方距離ケースの数以下の次元の空間。ソース 彼の実装では、彼はsqrt(1-prox)を使用します。ここで、proxは類似度行列で、距離行列に変換します。これは、上記の「ユークリッド空間での二乗距離」と関係があると思います。 1プロキシがユークリッド空間の平方距離である理由と、平方根を使用して距離行列を取得する理由を誰かが少し明らかにすることはできますか?


4
非常にまばらなデータでうまく機能するランダムフォレストの実装はありますか?
非常にまばらなデータでうまく機能するRランダムフォレストの実装はありますか?数千または数百万のブール入力変数がありますが、与えられた例では数百またはそれだけがTRUEになります。 私はRが比較的新しく、スパースデータを処理するための「Matrix」パッケージがあることに気付きましたが、標準の「randomForest」パッケージはこのデータ型を認識しないようです。重要な場合、入力データはRの外部で生成され、インポートされます。 何かアドバイス?また、Weka、Mahout、または他のパッケージの使用について調べることもできます。

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