SuperLearner

Current version of the SuperLearner R package

https://github.com/ecpolley/superlearner

Science Score: 23.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
    6 of 12 committers (50.0%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (15.0%) to scientific vocabulary

Keywords from Contributors

causal-inference ensemble-learning cross-validation iptw statistical-inference tmle
Last synced: 10 months ago · JSON representation

Repository

Current version of the SuperLearner R package

Basic Info
  • Host: GitHub
  • Owner: ecpolley
  • Language: R
  • Default Branch: master
  • Size: 860 KB
Statistics
  • Stars: 281
  • Watchers: 17
  • Forks: 72
  • Open Issues: 19
  • Releases: 0
Created about 15 years ago · Last pushed over 2 years ago
Metadata Files
Readme

README.md

SuperLearner: Prediction model ensembling method

CRAN_Status_Badge Downloads codecov

This is the current version of the SuperLearner R package (version 2.*).

Features

  • Automatic optimal predictor ensembling via cross-validation with one line of code.
  • Dozens of algorithms: XGBoost, Random Forest, GBM, Lasso, SVM, BART, KNN, Decision Trees, Neural Networks, and more.
  • Integrates with caret to support even more algorithms.
  • Includes framework to quickly add custom algorithms to the ensemble.
  • Visualize the performance of each algorithm using built-in plotting.
  • Easily check multiple hyperparameter configurations for each algorithm in the ensemble.
  • Add new algorithms or change the default parameters for existing ones.
  • Screen variables (feature selection) based on univariate association, Random Forest, Elastic Net, et al. or custom screening algorithms.
  • Multicore and multinode parallelization for scalability.
  • External cross-validation to estimate the performance of the ensembling predictor.
  • Ensemble can optimize for any target metric: mean-squared error, AUC, log likelihood, etc.
  • Includes framework to provide custom loss functions and stacking algorithms.

Install the development version from GitHub:

```r

install.packages("remotes")

remotes::install_github("ecpolley/SuperLearner") ```

Install the current release from CRAN:

r install.packages("SuperLearner")

Examples

SuperLearner makes it trivial to run many algorithms and use the best one or an ensemble.

```r data(Boston, package = "MASS")

set.seed(1)

sl_lib = c("SL.xgboost", "SL.randomForest", "SL.glmnet", "SL.nnet", "SL.ksvm", "SL.bartMachine", "SL.kernelKnn", "SL.rpartPrune", "SL.lm", "SL.mean")

Fit XGBoost, RF, Lasso, Neural Net, SVM, BART, K-nearest neighbors, Decision Tree,

OLS, and simple mean; create automatic ensemble.

result = SuperLearner(Y = Boston$medv, X = Boston[, -14], SL.library = sl_lib)

Review performance of each algorithm and ensemble weights.

result

Use external (aka nested) cross-validation to estimate ensemble accuracy.

This will take a while to run.

result2 = CV.SuperLearner(Y = Boston$medv, X = Boston[, -14], SL.library = sl_lib)

Plot performance of individual algorithms and compare to the ensemble.

plot(result2) + theme_minimal()

Hyperparameter optimization --

Fit elastic net with 5 different alphas: 0, 0.2, 0.4, 0.6, 0.8, 1.0.

0 corresponds to ridge and 1 to lasso.

enet = create.Learner("SL.glmnet", detailed_names = T, tune = list(alpha = seq(0, 1, length.out = 5)))

sl_lib2 = c("SL.mean", "SL.lm", enet$names)

enetsl = SuperLearner(Y = Boston$medv, X = Boston[, -14], SL.library = sllib2)

Identify the best-performing alpha value or use the automatic ensemble.

enet_sl ```

For more detailed examples please review the vignette:

r vignette(package = "SuperLearner")

References

Polley EC, van der Laan MJ (2010) Super Learner in Prediction. U.C. Berkeley Division of Biostatistics Working Paper Series. Paper 226. http://biostats.bepress.com/ucbbiostat/paper266/

van der Laan, M. J., Polley, E. C. and Hubbard, A. E. (2007) Super Learner. Statistical Applications of Genetics and Molecular Biology, 6, article 25. http://www.degruyter.com/view/j/sagmb.2007.6.issue-1/sagmb.2007.6.1.1309/sagmb.2007.6.1.1309.xml

van der Laan, M. J., & Rose, S. (2011). Targeted learning: causal inference for observational and experimental data. Springer Science & Business Media.

Owner

  • Name: Eric Polley
  • Login: ecpolley
  • Kind: user
  • Location: Rochester, MN and Chicago, IL
  • Company: The University of Chicago

Associate Professor, Department of Public Health Sciences

GitHub Events

Total
  • Issues event: 5
  • Watch event: 8
  • Issue comment event: 8
  • Fork event: 1
Last Year
  • Issues event: 5
  • Watch event: 8
  • Issue comment event: 8
  • Fork event: 1

Committers

Last synced: over 2 years ago

All Time
  • Total Commits: 403
  • Total Committers: 12
  • Avg Commits per committer: 33.583
  • Development Distribution Score (DDS): 0.576
Past Year
  • Commits: 7
  • Committers: 1
  • Avg Commits per committer: 7.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Eric Polley e****y@g****m 171
Eric Polley e****y@n****v 92
Chris Kennedy c****n@g****m 79
Eric Polley p****c@m****u 31
Sam Lendle s****e@g****m 7
Sara E. Moore s****e 7
Sara Moore s****e@g****m 6
ledell l****l@s****u 3
David Benkeser b****r@b****u 2
Noah Greifer n****r@g****m 2
David Benkeser b****r@e****u 2
Tyler Hunt t****t@u****u 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 11 months ago

All Time
  • Total issues: 55
  • Total pull requests: 54
  • Average time to close issues: 2 months
  • Average time to close pull requests: 5 days
  • Total issue authors: 38
  • Total pull request authors: 6
  • Average comments per issue: 3.16
  • Average comments per pull request: 1.07
  • Merged pull requests: 47
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 4
  • Pull requests: 0
  • Average time to close issues: 1 day
  • Average time to close pull requests: N/A
  • Issue authors: 4
  • Pull request authors: 0
  • Average comments per issue: 2.75
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • rdiaz02 (5)
  • ecpolley (5)
  • benkeser (4)
  • jlstiles (3)
  • caprone (3)
  • bdwilliamson (2)
  • ck37 (2)
  • ellenxtan (1)
  • Johann-Johann (1)
  • william-denault (1)
  • Naeemkh (1)
  • tkasci (1)
  • JackStat (1)
  • RAP1989 (1)
  • fabian-s (1)
Pull Request Authors
  • ck37 (43)
  • saraemoore (4)
  • benkeser (3)
  • hlhowardliu (2)
  • ngreifer (1)
  • nhejazi (1)
Top Labels
Issue Labels
Pull Request Labels

Packages

  • Total packages: 2
  • Total downloads:
    • cran 4,084 last-month
  • Total docker downloads: 23,192
  • Total dependent packages: 45
    (may contain duplicates)
  • Total dependent repositories: 95
    (may contain duplicates)
  • Total versions: 19
  • Total maintainers: 1
cran.r-project.org: SuperLearner

Super Learner Prediction

  • Versions: 15
  • Dependent Packages: 42
  • Dependent Repositories: 95
  • Downloads: 4,084 Last month
  • Docker Downloads: 23,192
Rankings
Docker downloads count: 0.6%
Forks count: 1.0%
Stargazers count: 1.7%
Dependent packages count: 1.9%
Dependent repos count: 2.3%
Average: 2.4%
Downloads: 6.8%
Maintainers (1)
Last synced: 10 months ago
conda-forge.org: r-superlearner
  • Versions: 4
  • Dependent Packages: 3
  • Dependent Repositories: 0
Rankings
Dependent packages count: 15.6%
Forks count: 20.3%
Stargazers count: 22.2%
Average: 23.0%
Dependent repos count: 34.0%
Last synced: 10 months ago

Dependencies

DESCRIPTION cran
  • R >= 2.14.0 depends
  • nnls * depends
  • cvAUC * imports
  • KernelKnn * suggests
  • LogicReg * suggests
  • MASS * suggests
  • ROCR * suggests
  • RhpcBLASctl * suggests
  • SIS * suggests
  • arm * suggests
  • bartMachine * suggests
  • biglasso * suggests
  • bigmemory * suggests
  • caret * suggests
  • class * suggests
  • devtools * suggests
  • e1071 * suggests
  • earth * suggests
  • extraTrees * suggests
  • gam >= 1.15 suggests
  • gbm * suggests
  • genefilter * suggests
  • ggplot2 * suggests
  • glmnet * suggests
  • ipred * suggests
  • kernlab * suggests
  • knitr * suggests
  • lattice * suggests
  • mlbench * suggests
  • nloptr * suggests
  • nnet * suggests
  • party * suggests
  • polspline * suggests
  • prettydoc * suggests
  • quadprog * suggests
  • randomForest * suggests
  • ranger * suggests
  • rmarkdown * suggests
  • rpart * suggests
  • speedglm * suggests
  • spls * suggests
  • sva * suggests
  • testthat * suggests
  • xgboost >= 0.6 suggests