Question: Diagonal LDA in MLInterfaces
0
gravatar for Christos Hatzis
12.8 years ago by
Christos Hatzis90 wrote:
Hi, Does anyone know whether diagonal linear discriminant analysis (DLDA) is supported through the unified MLInterfaces? I have been working with diagDA from sfsmisc, but would like to use the xval and other methods supported by MLInterfaces. Is there a simple way to extend the package to include support for a new classification algorithm? Thank you. Christos Hatzis, Ph.D. Nuvera Biosciences, Inc. 400 West Cummings Park Suite 5350 Woburn, MA 01801 Tel: 781-938-3830 www.nuverabio.com <http: www.nuverabio.com=""/>
classification • 497 views
ADD COMMENTlink modified 12.8 years ago by Martin Morgan ♦♦ 23k • written 12.8 years ago by Christos Hatzis90
Answer: Diagonal LDA in MLInterfaces
0
gravatar for Martin Morgan
12.8 years ago by
Martin Morgan ♦♦ 23k
United States
Martin Morgan ♦♦ 23k wrote:
If you are still looking for a way to do this, I think what you need to do is (a) define a generic function and then (b) define a method on that function that serves as a 'wrapper' to the original call. Taking as an example the ipredInterfaces.R source code that comes with MLInterfaces, and trying to extract the relevant bits for diagDA: setGeneric("diagDAB", function(exprObj, classifLab, trainInd, ...) { standardGeneric("diagDAB") }) The three arguments 'exprObj', 'classifLab', and 'trainInd' are used and therefore required by the MLInterfaces machinery. The '...' allow other arguments to be given to the function, and used in a method such as: setMethod("diagDAB", c("ExpressionSet", "character", "integer"), function(exprObj, classifLab, trainInd, pool = TRUE, ...) { ## the code in this method is only executed when the ## first argument to diagDAB is an ExpressionSet, the ## second a character vector, and the third an integer ## vector. The names suggest what their role is. 'pool' ## is just an example variable that you might want to ## add to the method signature to 'pick out' arguments ## the user might provide and that you want to use in ## the method. You will have to write code to massage ## the arguments so that they can be used by diagDA, and ## then call diagDA -- I'm not exactly sure what that ## code looks like, but you'll end up with a line ans <- diagDA(ls, cll, ts, pool=pool, ...) ## ans will be the result of the diagDA call, and you'll ## now have to write code to massage the answer you have ## obtained in such a way that you can create and return ## a 'classifOutput' object, eventually making a call ## like... new("classifOutput", method="diagDA", predLabels=newPredClass(as.character(out)), trainInds=trainInd, allClass=as.character(pData(exprObj)[[classifLab]]), predScores=newQualScore(prob), RObject=ans, call=match.call(), distMat=dis) }) At least two caveats: (1) I have not actually tried this, and (2) MLInterfaces is using setGeneric and setMethod in ways that are quite different from how they are normally used -- nothing wrong with that, of course, but be prepared! Hope that helps, Martin "Christos Hatzis" <christos at="" nuverabio.com=""> writes: > Hi, > > Does anyone know whether diagonal linear discriminant analysis (DLDA) is > supported through the unified MLInterfaces? I have been working with diagDA > from sfsmisc, but would like to use the xval and other methods supported by > MLInterfaces. Is there a simple way to extend the package to include > support for a new classification algorithm? > > Thank you. > > > Christos Hatzis, Ph.D. > Nuvera Biosciences, Inc. > 400 West Cummings Park > Suite 5350 > Woburn, MA 01801 > Tel: 781-938-3830 > www.nuverabio.com <http: www.nuverabio.com=""/> > > _______________________________________________ > Bioconductor mailing list > Bioconductor at stat.math.ethz.ch > https://stat.ethz.ch/mailman/listinfo/bioconductor > Search the archives: http://news.gmane.org/gmane.science.biology.informatics.conductor -- Martin T. Morgan Bioconductor / Computational Biology http://bioconductor.org
ADD COMMENTlink written 12.8 years ago by Martin Morgan ♦♦ 23k
Please log in to add an answer.

Help
Access

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.
Powered by Biostar version 16.09
Traffic: 251 users visited in the last hour