2016-04-20 3 views
0

Я относительно не знаком с SVM в R. Я создал модель SVM, которая отлично работает с настройками по умолчанию, но когда я пытаюсь использовать функцию tune.svm(), чтобы уточнить параметры с теми же данными вызывают следующую ошибку:Настройка одноклассной классификации SVM R с использованием e1071 ERROR

Ошибка в if (tunecontrol $ cross> n) stop (sQuote («cross»), «не должен превышать размер выборки!»): аргумент имеет длину 0 "

Любая помощь будет принята с благодарностью

в trainingDataFrameNoLabels является 107 * 5 dataframe здесь это фрагменты кода, которые я использую.

`

install.packages("e1071") 
install.packages("raster") 
install.packages("Rcpp") 
install.packages("rgdal") 
library("e1071") 
library("raster") 
require(raster) 
trainingData=read.csv(file="Z:/BIO650/Buttomus_Species_Distribution_Model/Working_Data/Training_And_Validation/Training_With_Data.csv",header = TRUE, sep=",") 
trainingDataFrame=data.frame(trainingData) 
trainingDataFrameNoLabels=trainingDataFrame[,2:6] 
svmModel=svm(trainingDataFrameNoLabels,y=NULL, method = "one-classification") 
tobj = tune.svm(x=trainingDataFrameNoLabels[1:50,],y=NULL, method = "one-classification",gamma = 10^(-6:-3), nu = 0.001:0.5) 

`

ответ

0

Если вы ссылаетесь список образцов в вызове мелодия(), он будет бросать эту ошибку. У меня есть 1000 случайно сгенерированных образцов, и я тоже был озадачен. Это то, что было, ссылаясь на список, а не на элемент. Он не знает, что с ним делать. Поэтому в моем случае я случайно выбрал 1 из 1000 наборов и использовал его (в этом упрощенном примере того, что более сложно).

svm.tune.rslts <- tune(svm, TARGET~., data = aDf_norm.trainsml,nrepeat=8, 
         ranges = list(gamma = 2^(-9:10), cost = 2^(-9:10)), 
         tunecontrol = tune.control(sampling = "cross",cross=10)) 

rnd<-sample(1:1000,1) 
svm.tune.rslts <- tune(svm, TARGET~., data = aDf_norm.trainsml[[rnd]],nrepeat=8, 
         ranges = list(gamma = 2^(-9:10), cost = 2^(-9:10)), 
         tunecontrol = tune.control(sampling = "cross",cross=10)) 
Смежные вопросы