プログラミング言語バージョン 2.13.1のrandomForest
パッケージ バージョン4.6-7を使用して、2 クラス分類問題のクラス プロトタイプを取得しようとしています。R
このために、classCenter
関数を呼び出します。問題は、時々無効な結果を出力することです。つまり、返されたクラス プロトタイプの一方または両方が完全にNA
値で構成されています。これが発生すると、R コンソールに次のように表示されます。
There were 50 or more warnings (use warnings() to see the first 50)
入力warnings()
すると、次の50回が得られます。
1: In mean.default(sort(x, partial = half + 0L:1L)[half + ... :
argument is not numeric or logical: returning NA
重要: この関数は、同じデータと同じ設定を使用して学習したさまざまなランダム フォレスト モデルに対して異なる出力を与えることに気付きました。つまり、一方のモデルでは両方のクラス プロトタイプが返され、別のモデルでは何も返されない場合があります。つまり、少なくとも時々有効な結果が得られることがあります。
R コンソールで次のコードを使用します。
library(randomForest)
mydata <- read.csv("mydata.csv", header=TRUE)
myrf <- randomForest(x=mydata[,-1:-2], y=mydata[,1], ntree=1000, mtry=33, importance=TRUE, proximity=TRUE)
mycc <- classCenter(mydata[,-1:-2], mydata[,1], myrf$prox)
print(mycc)
CSV ファイルの最初の列にはクラス ラベルが含まれ、2 番目の列は無視されます。陽性クラスの例が 5,000 例、陰性クラスの例が 5,000 例あり、すべて 135 の特徴/変数があり、欠損値はありません (以下を参照)。
この問題の解決策をstackoverflowとgoogleで検索しましたが、役に立ちませんでした。パッケージのドキュメントではrandomForest
、「all-NAs」の戻り値が指定されていません。私は R に精通しておらず、ドキュメンテーションと直感を使用してこのコードをハッキングしたと言わざるを得ません。
EDIT:mydata[!complete.cases(mydata),]
空です。つまり、入力データに欠損値 (NA) はありません。との出力はsummary(mydata)
、ここmydata[1:10,]
にあります(テキストが幅広にフォーマットされているため、ワードラップなしでテキスト エディターでファイルを表示することをお勧めします)。もちろん、最初の 10 行だけではエラーを再現するには不十分ですが、データセット全体を投稿することはできません。