2011-12-31 12 views
12

私はlarge-ishデータセット(5000x300)でrandomForestを実行しようとしています。次のように残念ながら、私は、エラーメッセージが出てい:RはInf/-Inf値を見つける方法ですか?

> RF <- randomForest(prePrior1, postPrior1[,6] 
+     ,,do.trace=TRUE,importance=TRUE,ntree=100,,forest=TRUE) 
Error in randomForest.default(prePrior1, postPrior1[, 6], , do.trace = TRUE, : 
    NA/NaN/Inf in foreign function call (arg 1) 

だから私は、任意のNAの使用を探してみてください:

> df2 <- prePrior1[is.na(prePrior1)] 
> df2 
character(0) 
> df2 <- postPrior1[is.na(postPrior1[,6])] 
> df2 
numeric(0) 

それがドンなどの問題であることInfの者だと信じて私につながります」どのようなNAのようでもない。

Inf'sを根絶する方法の提案はありますか?

+0

です。エラーが示すように、「NaN」でもかまいません。それにかかわらず、「?Inf」はあなたの質問に答えます。 –

答えて

22

あなたはおそらくis.finiteを探していますが、入力データに問題がInfsであることは100%確信していません。

is.finiteのヘルプをよく読んで、紛失した無限などの組み合わせについて注意深くお読みください。具体的には、次のとおりです。

> is.finite(c(1,NA,-Inf,NaN)) 
[1] TRUE FALSE FALSE FALSE 
> is.infinite(c(1,NA,-Inf,NaN)) 
[1] FALSE FALSE TRUE FALSE 

これらのうちの1つは他のものと似ていません。当然のことながら、is.nan機能もあります。

+0

それでした、ありがとう! – screechOwl

+3

一般に、randomForestからのNA/NaN/Infに関する警告は、NA/NaN/Infに起因するものではなく、実際には文字データによるものです。 – smci

4

is.naと同様に、is.infiniteを使用すると、無限の出現を見つけることができます。

2

は例えば、withを見てみましょう:

> with(df, df == Inf) 
     foo bar baz abc ... 
[1,] FALSE FALSE TRUE FALSE ... 
[2,] FALSE TRUE FALSE FALSE ... 
... 
10

ランダムフォレストの'NA/NaNを/ Infの外部関数呼び出しに'しばしば偽の警告、本当に刺激する:

  • 渡される変数のいずれかが文字の場合
  • 実際のNaNとInfs ほとんどありません

クリーンなデータで起こる物事を絞り込むために迅速かつ汚いトリック、あなたの変数リストにバイナリ検索を行う、および/変数のサブセットに失敗インスタントパスを取得するためにntree=2のようなトークンのパラメータを使用します。

RF <- randomForest(prePrior1[m:n],ntree=2,...) 
1

ジョランの答えは、あなたが欲しいと思うものです。 is.na()is.infinite()の詳細については、https://stat.ethz.ch/R-manual/R-devel/library/Matrix/html/is.na-methods.html をチェックしてください。さらに、元のベクトルの各要素がNA/Infかどうかを示す論理ベクトルを取得したら、which()関数を使用してインデックスを取得することができますこの:

> v1 <- c(1, Inf, 2, NaN, Inf, 3, NaN, Inf) 
> is.infinite(v1) 
[1] FALSE TRUE FALSE FALSE TRUE FALSE FALSE TRUE 
> which(is.infinite(v1)) 
[1] 2 5 8 
> is.na(v1) 
[1] FALSE FALSE FALSE TRUE FALSE FALSE TRUE FALSE 
> which(is.na(v1)) 
[1] 4 7 

文書which()ためには、それは `Inf`である必要はありませんここにhttps://stat.ethz.ch/R-manual/R-devel/library/base/html/any.html

関連する問題