Skip to content

Commit ab1d483

Browse files
authored
Merge pull request #100 from HDI-Project/issue-90-explore-pipelines-and-primitives
Issue 90 explore pipelines and primitives
2 parents 319eac4 + c189a7f commit ab1d483

File tree

7 files changed

+488
-41
lines changed

7 files changed

+488
-41
lines changed

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ test: ## run tests quickly with the default Python
112112

113113
.PHONY: test-all
114114
test-all: ## run tests on every Python version with tox
115-
tox
115+
tox -r
116116

117117
.PHONY: coverage
118118
coverage: ## check code coverage quickly with the default Python

README.md

Lines changed: 73 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@
33
<i>An open source project from Data to AI Lab at MIT.</i>
44
</p>
55

6-
7-
86
<p align="left">
97
<img width=20% src="https://dai.lids.mit.edu/wp-content/uploads/2018/06/mlblocks-icon.png" alt=“MLBlocks” />
108
</p>
@@ -13,21 +11,16 @@
1311
Pipelines and Primitives for Machine Learning and Data Science.
1412
</p>
1513

16-
[![PyPi][pypi-img]][pypi-url]
17-
[![Travis][travis-img]][travis-url]
18-
[![CodeCov][codecov-img]][codecov-url]
19-
20-
[pypi-img]: https://img.shields.io/pypi/v/mlblocks.svg
21-
[pypi-url]: https://pypi.python.org/pypi/mlblocks
22-
[travis-img]: https://travis-ci.org/HDI-Project/MLBlocks.svg?branch=master
23-
[travis-url]: https://travis-ci.org/HDI-Project/MLBlocks
24-
[codecov-img]: https://codecov.io/gh/HDI-Project/MLBlocks/branch/master/graph/badge.svg
25-
[codecov-url]: https://codecov.io/gh/HDI-Project/MLBlocks
14+
[![PyPi](https://img.shields.io/pypi/v/mlblocks.svg)](https://pypi.python.org/pypi/mlblocks)
15+
[![Travis](https://travis-ci.org/HDI-Project/MLBlocks.svg?branch=master)](https://travis-ci.org/HDI-Project/MLBlocks)
16+
[![CodeCov](https://codecov.io/gh/HDI-Project/MLBlocks/branch/master/graph/badge.svg)](https://codecov.io/gh/HDI-Project/MLBlocks)
17+
[![Downloads](https://pepy.tech/badge/mlblocks)](https://pepy.tech/project/mlblocks)
2618

2719
* Free software: MIT license
2820
* Documentation: https://HDI-Project.github.io/MLBlocks
21+
- Homepage: https://github.com/HDI-Project/MLBlocks
2922

30-
# Overview
23+
# MLBlocks
3124

3225
MLBlocks is a simple framework for composing end-to-end tunable Machine Learning Pipelines by
3326
seamlessly combining tools from any python library with a simple, common and uniform interface.
@@ -44,24 +37,82 @@ Features include:
4437
outputs per primitive.
4538
* Easy save and load Pipelines using JSON Annotations.
4639

47-
# Installation
40+
# Install
41+
42+
## Requirements
43+
44+
**MLBlocks** has been developed and tested on [Python 3.5 and 3.6](https://www.python.org/downloads/)
45+
46+
Also, although it is not strictly required, the usage of a
47+
[virtualenv](https://virtualenv.pypa.io/en/latest/) is highly recommended in order to avoid
48+
interfering with other software installed in the system where **MLBlocks** is run.
49+
50+
These are the minimum commands needed to create a virtualenv using python3.6 for **MLBlocks**:
51+
52+
```bash
53+
pip install virtualenv
54+
virtualenv -p $(which python3.6) mlblocks-venv
55+
```
56+
57+
Afterwards, you have to execute this command to have the virtualenv activated:
58+
59+
```bash
60+
source mlblocks-venv/bin/activate
61+
```
62+
63+
Remember about executing it every time you start a new console to work on **MLBlocks**!
64+
65+
## Install with pip
4866

49-
The simplest and recommended way to install MLBlocks is using `pip`:
67+
After creating the virtualenv and activating it, we recommend using
68+
[pip](https://pip.pypa.io/en/stable/) in order to install **MLBlocks**:
5069

5170
```bash
5271
pip install mlblocks
5372
```
5473

55-
Alternatively, you can also clone the repository and install it from sources
74+
This will pull and install the latest stable release from [PyPi](https://pypi.org/).
75+
76+
## Install from source
77+
78+
Alternatively, with your virtualenv activated, you can clone the repository and install it from
79+
source by running `make install` on the `stable` branch:
5680

5781
```bash
5882
git clone git@github.com:HDI-Project/MLBlocks.git
5983
cd MLBlocks
84+
git checkout stable
6085
make install
6186
```
6287

63-
For development, you can use `make install-develop` instead in order to install all
64-
the required dependencies for testing and code linting.
88+
## Install for Development
89+
90+
If you want to contribute to the project, a few more steps are required to make the project ready
91+
for development.
92+
93+
First, please head to [the GitHub page of the project](https://github.com/HDI-Project/MLBlocks)
94+
and make a fork of the project under you own username by clicking on the **fork** button on the
95+
upper right corner of the page.
96+
97+
Afterwards, clone your fork and create a branch from master with a descriptive name that includes
98+
the number of the issue that you are going to work on:
99+
100+
```bash
101+
git clone git@github.com:{your username}/MLBlocks.git
102+
cd MLBlocks
103+
git branch issue-xx-cool-new-feature master
104+
git checkout issue-xx-cool-new-feature
105+
```
106+
107+
Finally, install the project with the following command, which will install some additional
108+
dependencies for code linting and testing.
109+
110+
```bash
111+
make install-develop
112+
```
113+
114+
Make sure to use them regularly while developing by running the commands `make lint` and `make test`.
115+
65116

66117
## MLPrimitives
67118

@@ -75,12 +126,12 @@ with this command:
75126
pip install mlprimitives
76127
```
77128

78-
# Usage Example
129+
# Quickstart
79130

80131
Below there is a short example about how to use MLBlocks to create a simple pipeline, fit it
81132
using demo data and use it to make predictions.
82133

83-
Please make sure to having installed [MLPrimitives](https://github.com/HDI-Project/MLPrimitives)
134+
Please make sure to also having installed [MLPrimitives](https://github.com/HDI-Project/MLPrimitives)
84135
before following it.
85136

86137
For advance usage and more detailed explanation about each component, please have a look
@@ -153,7 +204,7 @@ its `get_hyperparameters` method:
153204
}
154205
```
155206

156-
### Making predictions
207+
## Making predictions
157208

158209
Once we have created the pipeline with the desired hyperparameters we can fit it
159210
and then use it to make predictions on new data.
@@ -180,7 +231,7 @@ to obtain predictions from the pipeline.
180231
array([3, 2, 1, ..., 1, 1, 2])
181232
```
182233

183-
## What's Next?
234+
# What's Next?
184235

185236
If you want to learn more about how to tune the pipeline hyperparameters, save and load
186237
the pipelines using JSON annotations or build complex multi-branched pipelines, please

docs/getting_started/quickstart.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ them to the `MLPipeline class`_:
2424
2525
from mlblocks import MLPipeline
2626
primitives = [
27+
'mlprimitives.custom.feature_extraction.CategoricalEncoder',
2728
'mlprimitives.custom.feature_extraction.StringVectorizer',
2829
'sklearn.ensemble.RandomForestClassifier',
2930
]

0 commit comments

Comments
 (0)