[R] error in plotting model from kernlab

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


Sorry but I don't understand the questions. I sent this question to
R-help, not to an individual. I will use the REPLY TO ALL function
when replying, apologies if I missed before. The question is related
to an R package so I placed to the R community.

On Mon, Jan 7, 2019 at 5:47 PM Jeff Newmiller <jdnewmil using dcn.davis.ca.us> wrote:
>
> a) When re-posting a question, whether on the same or different forums, it is best practice (netiquette) to link to or reply to the earlier question. [1]
>
> b) Note the guidance in the Posting Guide:
>
> For questions about functions in standard packages distributed with R (see the FAQ Add-on packages in R), ask questions on R-help.
> If the question relates to a contributed package , e.g., one downloaded from CRAN, try contacting the package maintainer first. You can also use find("functionname") and packageDescription("packagename") to find this information. Only send such questions to R-help or R-devel if you get no reply or need further assistance. This applies to both requests for help and to bug reports.
>
> You have not communicated whether you have followed this recommendation.
>
> [1] https://stat.ethz.ch/pipermail/r-help/2018-December/461010.html
>
> On January 7, 2019 4:26:20 AM PST, Luigi Marongiu <marongiu.luigi using gmail.com> wrote:
> >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
>
> --
> Sent from my phone. Please excuse my brevity.



-- 
Best regards,
Luigi



More information about the R-help mailing list