[R] kernlab ksvm rbfdot kernel - prediction returning fewer rows than provided for input

Tom Woolman twoo|m@n @end|ng |rom ont@rgettek@com
Thu Jun 11 00:49:18 CEST 2020


Hi everyone. I'm using the kernlab ksvm function with the rbfdot  
kernel for a binary classification problem and getting a strange  
result back. The predictions seem to be very accurate judging by the  
training results provided by the algorithm, but I'm unable to generate  
a confusion matrix because there is a difference in the number of  
output records from my model test compared to what was input into the  
test dataframe.

I've used ksvm before but never had this problem.

Here's my sample code:



install.packages("kernlab")
library(kernlab)


set.seed(3233)


trainIndex <-  
caret::createDataPartition(dataset_labeled_fraud$isFraud,  
p=0.70,kist=FALSE)

train <- dataset_labeled_fraud[trainIndex,]
test <- dataset_labeled_fraud[-trainIndex,]


#clear out the training model
filter <- NULL

filter <-  
kernlab::ksvm(isFraud~.,data=train,kernel="rbfdot",kpar=list(sigma=0.5),C=3,prob.model=TRUE)


#clear out the test results
test_pred_rbfdot <- NULL

test_pred_rbfdot <- kernlab::predict(filter,test,type="probabilities")

dataframe_test_pred_rbfdot <- as.data.frame(test_pred_rbfdot)


nrow(dataframe_test_pred_rbfdot)

> 23300

nrow(test)

> 24408


# ok, how did I go from 24408 input rows to only 23300 output  
prediction rows? :(


Thanks in advance anyone!




Thomas A. Woolman
PhD Candidate, Technology Management
Indiana State University



More information about the R-help mailing list