2016-09-25 105 views
0

我正在建立一個有因子變量但數字條目的模型。我將它們轉換爲數字。當我嘗試用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()刪除了數據中的所有NA。 我重新檢查了數據。沒有缺失值存在。我需要幫助。

+0

請至少包含一部分數據,以使問題具有可重現性。沒有這個,很難幫助你。看看[幫助中心](http://stackoverflow.com/help/mcve)。謝謝! – lrnzcig

+0

實際數據的大小是多少? – abhiieor

+0

1.檢查factorconvert的結果。它可能無法正常工作。它不符合您提供的數據。 2.輸入一些原始數據。這個集合太小而無法測試。如果您不想使用您的數據,請嘗試使用GermanCredit數據(包含在插入程序包中)或其他一些數據集複製錯誤。 – phiver

回答

0

如果您直接希望將數據集中的字符串轉換爲數字形式而不分欄,可能會發生這種情況。我想你可能想在使用「factorconvert()」轉換後檢查你的數據,並檢查第一列是否包含任何NA值。 讓我知道這是否解決您的問題。

相關問題