[R] how to obtain predicted labels for test data using "kerne lpls"

Liaw, Andy andy_liaw at merck.com
Mon Nov 15 19:24:14 CET 2004


You need to do some extra work if you want to do classification with a
regression method.  One simple way to do classification with PLS is to code
the classes as 0s and 1s (assuming there are only two classes) or -1s and
1s, fit the model, then threshold the prediction; e.g., those with predicted
values < 0.5 (in the 0/1 coding) get labeled as 0s.  There's a predict()
method for mvr objects, and that's what you need to use to get prediction on
test set.

There's one more complication:  The CV done internal to mvr is optimizing
the MSE (because it rightly thinks it has a regression problem), but that
will almost certainly not be the thing to do for classification.  You have
two choices:  Do your own CV, or modify code in pls.pcr to do the "right" CV
when given classification data.

You might want to look at the `gpls' package, which started out as part of
BioConductor, then was made available on CRAN, but now seem to have move
back to BioConductor.  It treats classification problems in a more `natural'
way.

HTH,
Andy

> From: Huh, Seungho
> 
> Dear members,
> 
> My name is Seungho Huh. I am a statistician who tries to use 
> the Kernel
> PLS method in a classification problem. I am sending this email to ask
> you something about the "kernelpls" function in R (pls.pcr package).
> 
> I would like to obtain the predicted Y values for test data, using the
> Kernel PLS method. Let's take the example in the R help:
> 
> > data(NIR)
> > attach(NIR)
> > NIR.kernelpls <- mvr(Xtrain, Ytrain, 1:6, validation = "CV",
> method="kernelPLS")
> 
>  
> 
> How can we get the predicted Y values ("Ypred") for Xtest in 
> this case?
> As far as I checked, there is no parameter to specify the test data in
> "mvr" or "pls". I, therefore, thought about the "kernelpls" 
> function as
> follows:
> 
>  
> 
> > Kernelpls(Xtrain, Ytrain, ncomp = 21, Xtest)
> 
>  
> 
> Is this the correct way of getting Ypred for Xtest? I am 
> afraid that it
> says in the help of "kernelpls", "this function should not be called
> directly, but through the generic pls function with the argument
> method="kernel" (default)." I would really appreciate it if 
> you can give
> some advice on this.
> 
>  
> 
> Thanks a lot for your time.
> 
>  
> 
> Seungho Huh, Ph.D.
> 
> Research Statistician
> 
> RTI International
> 
> North Carolina, USA
> 
>  
> 
>  
> 
> 
> 	[[alternative HTML version deleted]]
> 
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide! 
> http://www.R-project.org/posting-guide.html
> 
>




More information about the R-help mailing list