简体   繁体   中英

Error tuning a polynomial SVM

I'm trying to tune a polynomial SVM in R with the following command

svmPFitReduced <- train(
  x=dataTrain[,predModelContinuous],
  y=dataTrain[,outcome], 
  method = "svmPoly", 
  maxit = 1000, 
  metric = "ROC", 
  tuneGrid = svmPGrid, 
  trControl = trCtrl
)

but I'm finding the error

Error in train.default(x = dataTrain[, predModelContinuous], y = dataTrain[,  : 
  final tuning parameters could not be determined

The data set structure is

str(dataTrain)
'data.frame':   40001 obs. of  42 variables:
 $ PolNum     : num  2e+08 2e+08 2e+08 2e+08 2e+08 ...
 $ sex        : Factor w/ 2 levels "Male","Female": 1 1 1 2 1 2 1 1 1 2 ...
 $ type       : Factor w/ 6 levels "A","B","C","D",..: 3 1 1 2 2 4 3 3 3 2 ...
 $ catgry     : Ord.factor w/ 3 levels "Large"<"Medium"<..: 2 2 2 3 3 3 3 2 2 2 ...
 $ occup      : Factor w/ 5 levels "Employed","Housewife",..: 2 1 1 1 5 4 1 1 4 2 ...
 $ age        : num  48 23 23 39 24 39 28 43 45 38 ...
 $ group      : Factor w/ 20 levels "1","2","3","4",..: 15 16 12 16 14 8 16 9 12 8 ...
 $ bonus      : Ord.factor w/ 21 levels "-50"<"-40"<"-30"<..: 14 8 4 3 5 2 5 5 1 15 ...
 $ poldur     : num  7 1 1 14 2 4 11 2 8 5 ...
 $ value      : num  1120 21755 18430 11930 24850 ...
 $ adind      : Factor w/ 2 levels "No","Yes": 2 1 1 2 1 2 2 2 1 1 ...
 $ Pcode      : chr  "SC22" "CT109" "MA1" "SA12" ...
 $ Area       : Factor w/ 10 levels "CT","JU","MA",..: 7 1 3 6 6 6 6 4 1 2 ...
 $ Density    : num  270.5 57.3 43.2 167.9 169.8 ...
 $ Prem       : num  1159 532 527 197 908 ...
 $ Premad     : num  53.1 413.7 410.7 61.6 824.6 ...
 $ numclm     : num  0 1 0 1 0 0 0 1 0 0 ...
 $ Invite     : num  1 1 1 1 1 1 1 1 1 1 ...
 $ Renewaltp  : num  1302 928 632 291 960 ...
 $ Renewalad  : num  58.4 599 440.4 71.3 682 ...
 $ Markettp   : num  1110 884 565 253 833 ...
 $ Marketad   : num  53.4 611.4 431.6 55.5 587 ...
 $ Premtot    : num  1212 532 527 259 908 ...
 $ Renewaltot : num  1361 928 632 362 960 ...
 $ Markettot  : num  1163 884 565 309 833 ...
 $ Renew      : Ord.factor w/ 2 levels "No"<"Yes": 1 1 1 1 1 1 1 1 1 1 ...
 $ Premchng   : num  1.12 1.74 1.2 1.4 1.06 ...
 $ Compmeas   : num  1.17 1.05 1.12 1.17 1.15 ...
 $ numclmRec  : Ord.factor w/ 3 levels "None"<"One"<"Two or more": 1 2 1 2 1 1 1 2 1 1 ...
 $ PremChngRec: Factor w/ 20 levels "[0.546,0.758)",..: 16 20 18 19 14 3 7 19 17 11 ...
 $ ageRec     : Factor w/ 20 levels "[19,22)","[22,25)",..: 14 2 2 9 2 9 4 11 12 9 ...
 $ valueRec   : Factor w/ 20 levels "[ 1005, 3290)",..: 1 15 13 9 17 5 12 12 19 1 ...
 $ densityRec : Factor w/ 20 levels "[ 14.4, 25.0)",..: 19 6 5 15 15 13 15 1 5 11 ...
 $ CompmeasRec: Factor w/ 20 levels "[0.716,0.869)",..: 12 6 10 13 12 18 11 16 18 14 ...
 $ poldurRec  : Ord.factor w/ 16 levels "1"<"2"<"3"<"4"<..: 7 1 1 14 2 4 11 2 8 5 ...
 $ ageST      : num  0.407 -1.34 -1.34 -0.222 -1.27 ...
 $ numclmST   : num  -0.433 1.627 -0.433 1.627 -0.433 ...
 $ PremchngST : num  0.591 3.709 0.98 1.985 0.265 ...
 $ valueST    : num  -1.462 0.499 0.183 -0.434 0.793 ...
 $ DensityST  : num  1.918 -0.748 -0.924 0.636 0.659 ...
 $ CompmeasST : num  0.224 -0.539 -0.098 0.248 0.113 ...
 $ poldurST   : num  0.097 -1.2 -1.2 1.61 -0.984 ...

the trCtrl <- trainControl(method = "cv",summaryFunction = twoClassSummary,returnData =FALSE,classProbs = TRUE)

and predictors and outcome have been grouped as follows.

predCtg<-c("sex","type","catgry","occup","bonus","Area","adind","group") predCont<-c("age","numclm","Premchng","value","Density","Compmeas","poldur") predContStd<-c("ageST","numclmST","PremchngST","valueST","DensityST","CompmeasST‌​","poldurST") predFactorized<-c("ageRec","numclmRec","PremChngRec","CompmeasRec","poldurRec","‌​densityRec","valueRec"); outcome="Renew"; predModelContinuous<-c(predCtg,predContStd) 

I can post the dropbox link to data if needed

Thanks in advance for any help

Have you checked the svmPGrid values for the tuneGrid parameter? It is nowhere to be seen in the code you provided and I guess a potential cause for that particular error. Have a look at the answers of this question: Error in train.default(x, y, weights = w, ...) : final tuning parameters could not be determined

Hope this helps!

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM