Diagonal LDA in MLInterfaces
1
0
Entering edit mode
@christos-hatzis-1614
Last seen 9.6 years ago
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 Classification • 922 views
ADD COMMENT
0
Entering edit mode
@martin-morgan-1513
Last seen 6 weeks ago
United States
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 COMMENT

Login before adding your answer.

Traffic: 631 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6