0
因子変数を持つが数値を持つモデルを構築しています。私は数値に変換しました。私はSVMラジアルカーネルを使ってモデルを構築しようとしたとき、わからない奇妙なメッセージを受け取りました。以下は私がしたことです。私はキャレット列車機能でSVMを使用して私のデータを訓練します
Subset of data
class ac_000 ad_000 ag_007
neg 2130706438 280 25896
neg 228 100 292936
pos 42328 856 51190
neg 24 24 0
neg 370 346 0
pos 1534 1388 794698
factorconvert <- function(f){as.numeric(levels(f))[f]}
DF[, 2:4] <- lapply(DF[, 2:4], factorconvert)
SVM
ctrl<-trainControl(method="repeatedcv"),
repeats=5,
summaryFunction=twoClassSummary,
classProbs=TRUE)
Train and Tune the SVM
svm.tune <- train(x=trainX, y= trainData$Class,method = "svmRadial",
tuneLength = 9, preProc =c("center","scale"),metric="ROC",trControl=ctrl)
Error in if (any(co)) { : missing value where TRUE/FALSE needed In
addition: Warning message: In FUN(newX[, i], ...) : NAs introduced by
coercion.
any(is.any(DF)).
na.omit()を使用してデータ内のすべてのNAsも削除しました。 データを再確認しました。欠損値はありませんでした。私は助けが必要です。
問題を再現できるように、データのサブセットを少なくとも含めてください。それがなければ、あなたを助けることは非常に困難です。 [ヘルプセンター](http://stackoverflow.com/help/mcve)をご覧ください。ありがとう! – lrnzcig
実際のデータのサイズはどのくらいですか? – abhiieor
1. factorconvertの結果を確認します。正しく動作しないことがあります。あなたが提供したデータはありません。 2.元のデータの一部を出力します。このセットはテストするには小さすぎます。データを使用したくない場合は、GermanCreditデータ(キャレットパッケージに含まれています)またはその他のデータセットを使用してエラーを再現してみてください。 – phiver