[R] error in plotting model from kernlab

Luigi Marongiu m@rongiu@luigi @ending from gm@il@com
Mon Jan 7 13:26:20 CET 2019


Dear all,
I have a set of data in this form:
> str <data>
'data.frame': 1574 obs. of  14 variables:
 $ serial: int  12751 14157 7226 15663 11088 10464 1003 10427 11934 3999 ...
 $ plate : int  43 46 22 50 38 37 3 37 41 11 ...
 $ well  : int  79 333 314 303 336 96 235 59 30 159 ...
 $ sample: int  266 295 151 327 231 218 21 218 249 84 ...
 $ target: chr  "HEV 2-AI5IQWR" "Dientamoeba fragilis-AIHSPMK" "Astro
2 Liu-AI20UKB" "C difficile GDH-AIS086J" ...
 $ ori.ct: num  0 33.5 0 0 0 ...
 $ ct.out: int  0 1 0 0 0 0 0 1 0 0 ...
 $ mr    : num  -0.002 0.109 0.002 0 0.001 0.006 0.015 0.119 0.003 0.004 ...
 $ fcn   : num  44.54 36.74 6.78 43.09 44.87 ...
 $ mr.out: int  0 1 0 0 0 0 0 1 0 0 ...
 $ oper.a: int  0 1 0 0 0 0 0 1 0 0 ...
 $ oper.b: int  0 1 0 0 0 0 0 1 0 0 ...
 $ oper.c: int  0 1 0 0 0 0 0 1 0 0 ...
 $ cons  : int  0 1 0 0 0 0 0 1 0 0 ...
from which I have selected two numerical variables correspondig to x
and y in a Cartesian plane and one outcome variable (z):
> df = subset(t.data, select = c(mr, fcn, cons))
>  df$cons = factor(c("negative", "positive"))
> head(df)
      mr   fcn     cons
1 -0.002 44.54 negative
2  0.109 36.74 positive
3  0.002  6.78 negative
4  0.000 43.09 positive
5  0.001 44.87 negative
6  0.006  2.82 positive

I created an SVM the method with the KERNLAB package with:
> mod = ksvm(cons ~ mr+fcn, # i prefer it to the more canonical "." but the outcome is the same
            data = df,
            type = "C-bsvc",
            kernel = "rbfdot",
            kpar = "automatic",
            C = 10,
            prob.model = TRUE)

> mod
Support Vector Machine object of class "ksvm"

SV type: C-bsvc  (classification)
 parameter : cost C = 10

Gaussian Radial Basis kernel function.
 Hyperparameter : sigma =  42.0923201429106

Number of Support Vectors : 1439

Objective Function Value : -12873.45
Training error : 0.39263
Probability model included.

First of all, I am not sure if the model worked because 1439 support
vectors out of 1574 data points means that over 90% of the data is
required to fix the hyperplane. this does not look like a model but a
patch. Secondly, the prediction is rubbish -- but this is another
story -- and when I try to create a confusion table of the processed
data I get:
>  pred = predict(mod, df, type = "probabilities")
>  acc = table(pred, df$cons)
Error in table(pred, df$cons) : all arguments must have the same length
which again is weird since mod, df and df$cons are made from the same dataframe.

Coming to the actual error, I tried to plot the model with:
> plot(mod, data = df)
> kernlab::plot(mod, data = df)
but I get this error:

Error in .local(x, ...) :
  Only plots of classification ksvm objects supported

Would you know what I am missing?
Thank you
-- 
Best regards,
Luigi



More information about the R-help mailing list