Filtered ML fit and the GDSTM with FRESA.CAD
Here we make use of the FRESA.CAD::filteredfit() function to train ML models with and without GDSTM on the ARCENE data set.
Isabelle Guyon, Steve R. Gunn, Asa Ben-Hur, Gideon Dror, 2004. Result analysis of the NIPS 2003 feature selection challenge. In: NIPS. \[Web Link\]. from: https://archive.ics.uci.edu/ml/datasets/Arcene
a. Original owners
The data were obtained from two sources: The National Cancer Institute (NCI) and the Eastern Virginia Medical School (EVMS). All the data consist of mass-spectra obtained with the SELDI technique. The samples include patients with cancer (ovarian or prostate cancer), and healthy or control patients.
b. Donor of database
This version of the database was prepared for the NIPS 2003 variable and feature selection benchmark by Isabelle Guyon, 955 Creston Road, Berkeley, CA 94708, USA (isabelle ‘@’ clopinet.com).
This scrip uses FRESA.CAD and mlbench R packages:
knitr::opts_chunk$set(collapse = TRUE, warning = FALSE, message = FALSE,comment = "#>")
library("FRESA.CAD")
Loading required package: Rcpp
Loading required package: stringr
Loading required package: miscTools
Loading required package: Hmisc
Loading required package: lattice
Loading required package: survival
Loading required package: Formula
Loading required package: ggplot2
Registered S3 methods overwritten by 'htmltools':
method from
print.html tools:rstudio
print.shiny.tag tools:rstudio
print.shiny.tag.list tools:rstudio
Registered S3 method overwritten by 'htmlwidgets':
method from
print.htmlwidget tools:rstudio
Registered S3 method overwritten by 'data.table':
method from
print.data.table
Attaching package: ‘Hmisc’
The following objects are masked from ‘package:base’:
format.pval, units
Loading required package: pROC
Type 'citation("pROC")' for a citation.
Attaching package: ‘pROC’
The following objects are masked from ‘package:stats’:
cov, smooth, var
library(mlbench)
op <- par(no.readonly = TRUE)
Loading the ARCENE data set
trainLabeled <- read.delim("../Data/trainSet.txt")
validLabeled <- read.delim("../Data/arcene_valid.txt")
wholeArceneSet <- rbind(trainLabeled,validLabeled)
wholeArceneSet$Labels <- 1*(wholeArceneSet$Labels > 0)
wholeArceneSet[,1:ncol(trainLabeled)] <- sapply(wholeArceneSet,as.double)
table(wholeArceneSet$Labels)
0 1
112 88
Setting some variables for downstream analysis
studyName = "Arcene"
datasetframe <- wholeArceneSet
Outcome <- "Labels"
trainFraction = 0.5
Setting the Training and Testing sets
tb <- table(datasetframe[,Outcome])
classNames <- unique(datasetframe[,Outcome])
allrowClass <- datasetframe[,Outcome]
names(allrowClass) <- rownames(datasetframe)
trainsize <- trainFraction*min(tb);
trainSamples <- NULL;
for (theClass in classNames)
{
classSample <- allrowClass[allrowClass == theClass]
trainSamples <- c(trainSamples,names(classSample[sample(length(classSample),trainsize)]))
}
datasetframe_train <- datasetframe[trainSamples,]
testSamples <- !(rownames(datasetframe) %in% trainSamples)
datasetframe_test <- datasetframe[testSamples,]
outcomes <- datasetframe_train[,Outcome]
pander::pander(table(datasetframe[,Outcome]),caption="All")
pander::pander(table(datasetframe_train[,Outcome]),caption="Training")
pander::pander(table(datasetframe_test[,Outcome]),caption="Testing")
Machine Learning with the filterfit() function
Train a simple Logistic model with LASSO
system.time(mLASSORaw <- filteredFit(paste(Outcome,"~."),
datasetframe_train,
fitmethod=LASSO_MIN,
filtermethod=univariate_Wilcoxon,
filtermethod.control=list(pvalue=0.05,limit= -1),
family = "binomial"
))
user system elapsed 12.42 0.07 12.54
Now we run filterfit() with decorrelation
system.time(mLASSODecor <- filteredFit(paste(Outcome,"~."),
datasetframe_train,
fitmethod=LASSO_MIN,
filtermethod=univariate_Wilcoxon,
filtermethod.control=list(pvalue=0.05,limit= -1),
DECOR = TRUE,
family = "binomial"
))
user system elapsed 727.72 17.53 453.28
Predicting the Testinig Set
par(mfrow=c(1,2))
psRaw <- predictionStats_binary(cbind(datasetframe_test$Labels,
predict(mLASSORaw,datasetframe_test)),
"LASSO Raw",cex=0.75)
LASSO Raw
pander::pander(psRaw$aucs)
psDecor <- predictionStats_binary(cbind(datasetframe_test$Labels,
predict(mLASSODecor,datasetframe_test)),
"LASSO after GDSTM",cex=0.75)
LASSO after GDSTM

pander::pander(psDecor$aucs)
LS0tDQp0aXRsZTogIkZpbHRlcmVkIEZpdDogRkNBIGFuZCB0aGUgR0RTVE0iDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQojIyBGaWx0ZXJlZCBNTCBmaXQgYW5kIHRoZSBHRFNUTSB3aXRoIEZSRVNBLkNBRA0KDQpIZXJlIHdlIG1ha2UgdXNlIG9mIHRoZSAqKkZSRVNBLkNBRDo6ZmlsdGVyZWRmaXQoKSoqIGZ1bmN0aW9uIHRvIHRyYWluIE1MIG1vZGVscyB3aXRoIGFuZCB3aXRob3V0IEdEU1RNIG9uIHRoZSBBUkNFTkUgZGF0YSBzZXQuDQoNCj4gSXNhYmVsbGUgR3V5b24sIFN0ZXZlIFIuIEd1bm4sIEFzYSBCZW4tSHVyLCBHaWRlb24gRHJvciwgMjAwNC4gUmVzdWx0IGFuYWx5c2lzIG9mIHRoZSBOSVBTIDIwMDMgZmVhdHVyZSBzZWxlY3Rpb24gY2hhbGxlbmdlLiBJbjogTklQUy4gW1xbV2ViIExpbmtcXV0oaHR0cDovL2Jvb2tzLm5pcHMuY2MvcGFwZXJzL2ZpbGVzL25pcHMxNy9OSVBTMjAwNF8wMTk0LnBkZikuICpmcm9tOiA8aHR0cHM6Ly9hcmNoaXZlLmljcy51Y2kuZWR1L21sL2RhdGFzZXRzL0FyY2VuZT4qDQo+DQo+ICphLiBPcmlnaW5hbCBvd25lcnNcDQo+IFRoZSBkYXRhIHdlcmUgb2J0YWluZWQgZnJvbSB0d28gc291cmNlczogVGhlIE5hdGlvbmFsIENhbmNlciBJbnN0aXR1dGUgKE5DSSkgYW5kIHRoZSBFYXN0ZXJuIFZpcmdpbmlhIE1lZGljYWwgU2Nob29sIChFVk1TKS4gQWxsIHRoZSBkYXRhIGNvbnNpc3Qgb2YgbWFzcy1zcGVjdHJhIG9idGFpbmVkIHdpdGggdGhlIFNFTERJIHRlY2huaXF1ZS4gVGhlIHNhbXBsZXMgaW5jbHVkZSBwYXRpZW50cyB3aXRoIGNhbmNlciAob3ZhcmlhbiBvciBwcm9zdGF0ZSBjYW5jZXIpLCBhbmQgaGVhbHRoeSBvciBjb250cm9sIHBhdGllbnRzLlwNCj4gXA0KPiBiLiBEb25vciBvZiBkYXRhYmFzZVwNCj4gVGhpcyB2ZXJzaW9uIG9mIHRoZSBkYXRhYmFzZSB3YXMgcHJlcGFyZWQgZm9yIHRoZSBOSVBTIDIwMDMgdmFyaWFibGUgYW5kIGZlYXR1cmUgc2VsZWN0aW9uIGJlbmNobWFyayBieSBJc2FiZWxsZSBHdXlvbiwgOTU1IENyZXN0b24gUm9hZCwgQmVya2VsZXksIENBIDk0NzA4LCBVU0EgKFtpc2FiZWxsZSAqKidcQCcqKiBjbG9waW5ldC5jb21dey51bH0pLioNCg0KVGhpcyBzY3JpcCB1c2VzIEZSRVNBLkNBRCBhbmQgbWxiZW5jaCBSIHBhY2thZ2VzOg0KDQpgYGB7ciBmdW5jdGlvbnMsZWNobyA9IFRSVUUgfQ0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KGNvbGxhcHNlID0gVFJVRSwgd2FybmluZyA9IEZBTFNFLCBtZXNzYWdlID0gRkFMU0UsY29tbWVudCA9ICIjPiIpDQoNCmxpYnJhcnkoIkZSRVNBLkNBRCIpDQpsaWJyYXJ5KG1sYmVuY2gpDQoNCm9wIDwtIHBhcihuby5yZWFkb25seSA9IFRSVUUpDQoNCmBgYA0KDQpMb2FkaW5nIHRoZSBBUkNFTkUgZGF0YSBzZXQNCg0KYGBge3J9DQp0cmFpbkxhYmVsZWQgPC0gcmVhZC5kZWxpbSgiLi4vRGF0YS90cmFpblNldC50eHQiKQ0KdmFsaWRMYWJlbGVkIDwtIHJlYWQuZGVsaW0oIi4uL0RhdGEvYXJjZW5lX3ZhbGlkLnR4dCIpDQp3aG9sZUFyY2VuZVNldCA8LSByYmluZCh0cmFpbkxhYmVsZWQsdmFsaWRMYWJlbGVkKQ0KDQoNCndob2xlQXJjZW5lU2V0JExhYmVscyA8LSAgMSood2hvbGVBcmNlbmVTZXQkTGFiZWxzID4gMCkNCndob2xlQXJjZW5lU2V0WywxOm5jb2wodHJhaW5MYWJlbGVkKV0gPC0gc2FwcGx5KHdob2xlQXJjZW5lU2V0LGFzLmRvdWJsZSkNCg0KdGFibGUod2hvbGVBcmNlbmVTZXQkTGFiZWxzKQ0KDQpgYGANCg0KU2V0dGluZyBzb21lIHZhcmlhYmxlcyBmb3IgZG93bnN0cmVhbSBhbmFseXNpcw0KDQpgYGB7cn0NCnN0dWR5TmFtZSA9ICJBcmNlbmUiDQpkYXRhc2V0ZnJhbWUgPC0gd2hvbGVBcmNlbmVTZXQNCk91dGNvbWUgPC0gIkxhYmVscyINCg0KdHJhaW5GcmFjdGlvbiA9IDAuNQ0KDQpgYGANCg0KU2V0dGluZyB0aGUgVHJhaW5pbmcgYW5kIFRlc3Rpbmcgc2V0cw0KDQpgYGB7ciwgcmVzdWx0cyA9ICJhc2lzIiwgd2FybmluZyA9IEZBTFNFLCBkcGk9NjAwLCBmaWcuaGVpZ2h0PSA2LjAsIGZpZy53aWR0aD0gOC4wfQ0KDQp0YiA8LSB0YWJsZShkYXRhc2V0ZnJhbWVbLE91dGNvbWVdKQ0KY2xhc3NOYW1lcyA8LSB1bmlxdWUoZGF0YXNldGZyYW1lWyxPdXRjb21lXSkNCg0KYWxscm93Q2xhc3MgPC0gZGF0YXNldGZyYW1lWyxPdXRjb21lXQ0KbmFtZXMoYWxscm93Q2xhc3MpIDwtIHJvd25hbWVzKGRhdGFzZXRmcmFtZSkNCg0KdHJhaW5zaXplIDwtIHRyYWluRnJhY3Rpb24qbWluKHRiKTsNCnRyYWluU2FtcGxlcyA8LSBOVUxMOw0KZm9yICh0aGVDbGFzcyBpbiBjbGFzc05hbWVzKQ0Kew0KICBjbGFzc1NhbXBsZSA8LSBhbGxyb3dDbGFzc1thbGxyb3dDbGFzcyA9PSB0aGVDbGFzc10NCiAgdHJhaW5TYW1wbGVzIDwtIGModHJhaW5TYW1wbGVzLG5hbWVzKGNsYXNzU2FtcGxlW3NhbXBsZShsZW5ndGgoY2xhc3NTYW1wbGUpLHRyYWluc2l6ZSldKSkNCn0NCg0KDQpkYXRhc2V0ZnJhbWVfdHJhaW4gPC0gZGF0YXNldGZyYW1lW3RyYWluU2FtcGxlcyxdDQp0ZXN0U2FtcGxlcyA8LSAhKHJvd25hbWVzKGRhdGFzZXRmcmFtZSkgJWluJSB0cmFpblNhbXBsZXMpDQpkYXRhc2V0ZnJhbWVfdGVzdCA8LSBkYXRhc2V0ZnJhbWVbdGVzdFNhbXBsZXMsXQ0KDQpvdXRjb21lcyA8LSBkYXRhc2V0ZnJhbWVfdHJhaW5bLE91dGNvbWVdDQoNCnBhbmRlcjo6cGFuZGVyKHRhYmxlKGRhdGFzZXRmcmFtZVssT3V0Y29tZV0pLGNhcHRpb249IkFsbCIpDQpwYW5kZXI6OnBhbmRlcih0YWJsZShkYXRhc2V0ZnJhbWVfdHJhaW5bLE91dGNvbWVdKSxjYXB0aW9uPSJUcmFpbmluZyIpDQpwYW5kZXI6OnBhbmRlcih0YWJsZShkYXRhc2V0ZnJhbWVfdGVzdFssT3V0Y29tZV0pLGNhcHRpb249IlRlc3RpbmciKQ0KDQoNCmBgYA0KDQojIyBNYWNoaW5lIExlYXJuaW5nIHdpdGggdGhlIGZpbHRlcmZpdCgpIGZ1bmN0aW9uDQoNClRyYWluIGEgc2ltcGxlIExvZ2lzdGljIG1vZGVsIHdpdGggTEFTU08NCg0KYGBge3IgcmVzdWx0cyA9ICJhc2lzIiwgd2FybmluZyA9IEZBTFNFLCBkcGk9NjAwLCBmaWcuaGVpZ2h0PSA2LjAsIGZpZy53aWR0aD0gOC4wfQ0KDQoNCnN5c3RlbS50aW1lKG1MQVNTT1JhdyA8LSBmaWx0ZXJlZEZpdChwYXN0ZShPdXRjb21lLCJ+LiIpLA0KICAgICAgICAgICAgICAgICAgIGRhdGFzZXRmcmFtZV90cmFpbiwNCiAgICAgICAgICAgICAgICAgICBmaXRtZXRob2Q9TEFTU09fTUlOLA0KICAgICAgICAgICAgICAgICAgICAgZmlsdGVybWV0aG9kPXVuaXZhcmlhdGVfV2lsY294b24sDQogICAgICAgICAgICAgICAgICAgICBmaWx0ZXJtZXRob2QuY29udHJvbD1saXN0KHB2YWx1ZT0wLjA1LGxpbWl0PSAtMSksDQogICAgICAgICAgICAgICAgICAgIGZhbWlseSA9ICJiaW5vbWlhbCINCiAgICAgICAgICAgICAgICAgICApKQ0KDQoNCmBgYA0KDQpOb3cgd2UgcnVuICoqZmlsdGVyZml0KiooKSB3aXRoIGRlY29ycmVsYXRpb24NCg0KYGBge3IgcmVzdWx0cyA9ICJhc2lzIiwgd2FybmluZyA9IEZBTFNFLCBkcGk9NjAwLCBmaWcuaGVpZ2h0PSA2LjAsIGZpZy53aWR0aD0gOC4wfQ0KDQoNCnN5c3RlbS50aW1lKG1MQVNTT0RlY29yIDwtIGZpbHRlcmVkRml0KHBhc3RlKE91dGNvbWUsIn4uIiksDQogICAgICAgICAgICAgICAgICAgZGF0YXNldGZyYW1lX3RyYWluLA0KICAgICAgICAgICAgICAgICAgICBmaXRtZXRob2Q9TEFTU09fTUlOLA0KICAgICAgICAgICAgICAgICAgICAgZmlsdGVybWV0aG9kPXVuaXZhcmlhdGVfV2lsY294b24sDQogICAgICAgICAgICAgICAgICAgICBmaWx0ZXJtZXRob2QuY29udHJvbD1saXN0KHB2YWx1ZT0wLjA1LGxpbWl0PSAtMSksDQogICAgICAgICAgICAgICAgICAgICBERUNPUiA9IFRSVUUsDQogICAgICAgICAgICAgICAgICAgICBmYW1pbHkgPSAiYmlub21pYWwiDQogICAgICAgICAgICAgICAgICAgKSkNCg0KDQpgYGANCg0KIyMjIFByZWRpY3RpbmcgdGhlIFRlc3RpbmlnIFNldA0KDQpgYGB7ciByZXN1bHRzID0gImFzaXMiLCB3YXJuaW5nID0gRkFMU0UsIGRwaT02MDAsIGZpZy5oZWlnaHQ9IDUuMCwgZmlnLndpZHRoPSA4LjB9DQoNCg0KcGFyKG1mcm93PWMoMSwyKSkNCg0KDQpwc1JhdyA8LSBwcmVkaWN0aW9uU3RhdHNfYmluYXJ5KGNiaW5kKGRhdGFzZXRmcmFtZV90ZXN0JExhYmVscywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlZGljdChtTEFTU09SYXcsZGF0YXNldGZyYW1lX3Rlc3QpKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxBU1NPIFJhdyIsY2V4PTAuNzUpDQpwYW5kZXI6OnBhbmRlcihwc1JhdyRhdWNzKQ0KDQoNCnBzRGVjb3IgPC0gcHJlZGljdGlvblN0YXRzX2JpbmFyeShjYmluZChkYXRhc2V0ZnJhbWVfdGVzdCRMYWJlbHMsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlZGljdChtTEFTU09EZWNvcixkYXRhc2V0ZnJhbWVfdGVzdCkpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTEFTU08gYWZ0ZXIgR0RTVE0iLGNleD0wLjc1KQ0KcGFuZGVyOjpwYW5kZXIocHNEZWNvciRhdWNzKQ0KDQoNCg0KYGBgDQo=