├── ISSUE_TEMPLATE.md ├── workflow.md ├── logos └── scikit-learn-contrib-logo.svg └── README.md /ISSUE_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | Request for project inclusion in scikit-learn-contrib 2 | 3 | * Project name: 4 | * Project description: 5 | * Authors: 6 | * Current repository: https://github.com/... 7 | * Requirements: 8 | * [ ] scikit-learn compatible (check_estimator passed) 9 | * [ ] Documentation (guide, API reference, example gallery) 10 | * [ ] Unit tests (coverage: xx%) 11 | * [ ] Python3 compatible 12 | * [ ] PEP8 compliant 13 | * [ ] Continuous integration 14 | -------------------------------------------------------------------------------- /workflow.md: -------------------------------------------------------------------------------- 1 | scikit-learn-contrib is a github organization for gathering high-quality scikit-learn compatible projects. Each project's team is responsible for maintaining the project. This includes fixing bugs, reviewing pull requests and making releases. 2 | 3 | # Why moving my project to scikit-learn-contrib? 4 | 5 | * Visibility: be part of a growing ecosystem of scikit-learn compatible projects 6 | * Collaboration: volunteers from around the world can join you in improving the project 7 | * Quality: benefit from scikit-learn's experience in producing high-quality machine learning software 8 | * Transfer: most popular estimators can eventually be promoted to scikit-learn 9 | * URL: http://contrib.scikit-learn.org/project-name 10 | 11 | # scikit-learn vs. scikit-learn-contrib 12 | 13 | In scikit-learn, we are pretty selective on the algorithms we include: notoriety (number of citations), general usefulness, no external dependencies. See scikit-learn's [FAQ](http://scikit-learn.org/stable/faq.html) for more details. In contrast, these conditions are not necessary for inclusion in scikit-learn-contrib (although we do have a few technical requirements, see below). scikit-learn-contrib is the ideal choice for cutting-edge algorithms (e.g., the latest ICML or NIPS paper), domain-specific algorithms, library wrappers. 14 | 15 | In addition, pull-requests on scikit-learn tend to take from a few weeks to a few months to review. In constrat, if the requirements below are satisfied, projects are expected to be accepted to scikit-learn-contrib within a few days. 16 | 17 | # Requirements 18 | 19 | * **scikit-learn compatible** ([check_estimator](http://scikit-learn.org/stable/modules/generated/sklearn.utils.estimator_checks.check_estimator.html) passed) 20 | * Available on github 21 | * Open-source license (BSD preferred but not mandatory) 22 | * Documentation (guide, API reference, example gallery) 23 | * Unit tests 24 | * Python3 compatible 25 | * [PEP8](https://www.python.org/dev/peps/pep-0008/) compliant 26 | * Continuous integration 27 | 28 | To satisfy these requirements, the easiest way is to start your project from 29 | [project-template](https://github.com/scikit-learn-contrib/project-template), although this is not mandatory. 30 | 31 | # Workflow 32 | 33 | 1. File a [request for inclusion](https://github.com/scikit-learn-contrib/scikit-learn-contrib/issues/new) 34 | into scikit-learn-contrib. 35 | 2. The project undergoes a simple review by scikit-learn or scikit-learn-contrib members to check 36 | that the above requirements are satisfied. 37 | 3. A team is created in the scikit-learn-contrib organization for your project. 38 | 4. [Transfer your project](https://help.github.com/articles/transferring-a-repository/) to the scikit-learn-contrib organization (transfer retains branches, stars, etc). 39 | 5. Fork the project in your account (this way, the old project URL is still valid). 40 | 41 | # Project maintenance guidelines 42 | 43 | 1. Project name on pypi is sklearn-contrib-project-name (e.g., sklearn-contrib-lightning). 44 | 2. Upload documentation to your [gh-pages](https://help.github.com/articles/creating-project-pages-manually/) branch. 45 | 3. When changing the signature of a public function or class, the old signature must be supported for two releases. 46 | 4. The options of all estimators must have sensitible default values. 47 | -------------------------------------------------------------------------------- /logos/scikit-learn-contrib-logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 9 | 10 | 11 | 13 | 15 | 16 | 17 | 18 | 24 | 28 | 34 | 39 | 45 | 46 | 47 | 48 | scikit 49 | 50 | contrib 51 | 52 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # scikit-learn-contrib 2 | 3 | scikit-learn-contrib is a github organization for gathering high-quality [scikit-learn](http://scikit-learn.org) compatible projects. It also provides a [template](https://github.com/scikit-learn-contrib/project-template) for establishing new scikit-learn compatible projects. 4 | 5 | # Vision 6 | 7 | With the explosion of the number of machine learning papers, it becomes increasingly difficult for users and researchers to implement and compare algorithms. Even when authors release their software, it takes time to learn how to use it and how to apply it to one's own purposes. The goal of scikit-learn-contrib is to provide **easy-to-install** and **easy-to-use** high-quality machine learning software. With scikit-learn-contrib, users can install a project by ``pip install sklearn-contrib-project-name`` and immediately try it on their data with the usual ``fit``, ``predict`` and ``transform`` methods. In addition, projects are compatible with scikit-learn tools such as grid search, pipelines, etc. 8 | 9 | # Projects 10 | 11 | If you would like to include your own project in scikit-learn-contrib, 12 | take a look at the [workflow](https://github.com/scikit-learn-contrib/scikit-learn-contrib/blob/master/workflow.md). 13 | 14 | ## [boruta_py](https://github.com/scikit-learn-contrib/boruta_py) 15 | 16 | Python implementations of the Boruta all-relevant feature selection method. 17 | 18 | Maintained by [Daniel Homola](https://github.com/danielhomola) 19 | 20 | ## [categorical-encoding](http://github.com/scikit-learn-contrib/categorical-encoding) 21 | 22 | A library of sklearn compatible categorical variable encoders. 23 | 24 | Maintained by [Will McGinnis](https://github.com/wdm0006) and [Paul Westenthanner](https://github.com/PaulWestenthanner) 25 | 26 | ## [DenMune: Density-peak clustering using mutual nearest neighbors](https://github.com/scikit-learn-contrib/denmune-clustering-algorithm) 27 | 28 | A simple-but-efficient density-based clustering algorithm that can find clusters of arbitrary size, shapes and densities in two-dimensions. Higher dimensions are first reduced to 2-D using the t-sne. The algorithm relies on a single parameter K, the number of nearest neighbors. 29 | 30 | [Read The Docs](https://denmune.readthedocs.io/en/latest/), [Read the Paper](https://doi.org/10.1016/j.patcog.2020.107589) 31 | 32 | Maintained by: [Mohamed Abbas](https://github.com/egy1st) 33 | 34 | ## [forest-confidence-interval](https://github.com/scikit-learn-contrib/forest-confidence-interval) 35 | 36 | Confidence intervals for scikit-learn forest algorithms. 37 | 38 | Maintained by [Ariel Rokem](https://github.com/arokem), [Kivan Polimis](https://github.com/kpolimis) and [Bryna Hazelton](https://github.com/bhazelton). 39 | 40 | ## [hdbscan](http://hdbscan.readthedocs.io/en/latest/) 41 | 42 | A high performance implementation of HDBSCAN clustering. 43 | 44 | Maintained by [Leland McInnes](https://github.com/lmcinnes), [jc-healy](https://github.com/jc-healy), [c-north](https://github.com/c-north) and [Steve Astels](https://github.com/sastels). 45 | 46 | ## [imbalanced-learn](https://github.com/scikit-learn-contrib/imbalanced-learn) 47 | 48 | Python module to perform under sampling and over sampling with various techniques. 49 | 50 | Maintained by [Guillaume Lemaitre](https://github.com/glemaitre), [Fernando Nogueira](https://github.com/fmfn), [Dayvid Oliveira](https://github.com/dvro) and [Christos Aridas](https://github.com/chkoar). 51 | 52 | ## [lightning](http://contrib.scikit-learn.org/lightning/) 53 | 54 | Large-scale linear classification, regression and ranking. 55 | 56 | Maintained by [Mathieu Blondel](https://github.com/mblondel) and [Fabian Pedregosa](https://github.com/fabianp). 57 | 58 | ## [MAPIE - Model Agnostic Prediction Interval Estimator](https://github.com/scikit-learn-contrib/MAPIE) 59 | 60 | MAPIE is an open-source Python library for quantifying uncertainties and controlling the risks of machine learning models. 61 | 62 | Maintained by [Valentin Laurent](https://github.com/Valentin-Laurent), [Vincent Blot](https://github.com/vincentblot28), [Thibault Cordier](https://github.com/thibaultcordier) and [Louis Lacombe](https://github.com/LacombeLouis). 63 | 64 | ## [metric-learn](https://github.com/scikit-learn-contrib/metric-learn) 65 | 66 | Metric learning algorithms in Python. 67 | 68 | Maintained by [CJ Carey](https://github.com/perimosocordiae), [Yuan Tang](https://github.com/terrytangyuan), [William de Vazelhes](https://github.com/wdevazelhes), [Aurélien Bellet](https://github.com/bellet) and [Nathalie Vauquier](https://github.com/nvauquie). 69 | 70 | ## [polylearn](https://github.com/scikit-learn-contrib/polylearn) 71 | 72 | Factorization machines and polynomial networks for classification and regression in Python. 73 | 74 | Maintained by [Vlad Niculae](https://github.com/vene). 75 | 76 | ## [py-earth](https://github.com/scikit-learn-contrib/py-earth) 77 | 78 | A Python implementation of Jerome Friedman's Multivariate Adaptive Regression Splines. 79 | 80 | Maintained by [Jason Rudy](https://github.com/jcrudy) and [Mehdi](https://github.com/mehdidc). 81 | 82 | ## [skglm](https://contrib.scikit-learn.org/skglm) 83 | 84 | Fast and modular Generalized Linear Models with support for models missing in scikit-learn. 85 | 86 | Maintained by [Mathurin Massias](https://github.com/mathurinm), [Pierre-Antoine Bannier](https://github.com/PABannier), [Quentin Klopfenstein](https://github.com/Klopfe) and [Quentin Bertrand](https://github.com/QB3). 87 | 88 | ## [sklearn-pandas](https://github.com/scikit-learn-contrib/sklearn-pandas) 89 | 90 | Pandas integration with sklearn. 91 | 92 | Maintained by [Israel Saeta Pérez](https://github.com/dukebody) 93 | 94 | ## [skope-rules](https://github.com/scikit-learn-contrib/skope-rules) 95 | 96 | Machine learning with logical rules in Python. 97 | 98 | Maintained by [Florian Gardin](https://github.com/floriangardin), [Ronan Gautier](https://github.com/RonanGautier), [Nicolas Goix](https://github.com/ngoix) and [Jean-Matthieu Schertzer](https://github.com/datajms). 99 | 100 | ## [stability-selection](https://github.com/scikit-learn-contrib/stability-selection) 101 | 102 | A Python implementation of the stability selection feature selection algorithm. 103 | 104 | Maintained by [Thomas Huijskens](https://github.com/thuijskens) 105 | --------------------------------------------------------------------------------