Skip to content

Commit

Permalink
readme updated [ci skip]
Browse files Browse the repository at this point in the history
  • Loading branch information
lukapecnik committed Dec 8, 2020
1 parent 9274f96 commit 9e16cae
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 8 deletions.
6 changes: 5 additions & 1 deletion COMPONENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,4 +35,8 @@

### Categorical Feature Encoders

* One-Hot Encoder (OneHotEncoder).
* One-Hot Encoder (OneHotEncoder).

### Feature Imputers

* Simple Imputer (SimpleImputer).
15 changes: 11 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@

NiaAML is a framework for Automated Machine Learning based on nature-inspired algorithms for optimization. The framework is written fully in Python. The name NiaAML comes from the Automated Machine Learning method of the same name [[1]](#1). Its goal is to compose the best possible classification pipeline for the given task efficiently using components on the input. The components are divided into three groups: feature selection algorithms, feature transformation algorithms and classifiers. The framework uses nature-inspired algorithms for optimization to choose the best set of components for the classification pipeline, and optimize their hyperparameters. We use the <a href="https://github.com/NiaOrg/NiaPy">NiaPy framework</a> for the optimization process, which is a popular Python collection of nature-inspired algorithms. The NiaAML framework is easy to use and customize or expand to suit your needs.

The NiaAML framework allows you not only to run full pipeline optimization, but also to separate implemented components such as classifiers, feature selection algorithms, etc. **It supports numerical and categorical features.**
The NiaAML framework allows you not only to run full pipeline optimization, but also to separate implemented components such as classifiers, feature selection algorithms, etc. **It supports numerical and categorical features as well as missing values in datasets.**

* **Free software:** MIT license
* **Documentation:** https://niaaml.readthedocs.io/en/latest/
Expand All @@ -42,7 +42,7 @@ There is a simple Graphical User Interface for the NiaAML package available [her

## Components

[Click here](COMPONENTS.md) for a list of currently implemented components divided into groups: classifiers, feature selection algorithms and feature transformation algorithms. At the end you can also see a list of currently implemented fitness functions for the optimization process, and categorical features' encoders. All of the components are passed into the optimization process using their class names. Let's say we want to choose between Adaptive Boosting, Bagging and Multi Layer Perceptron classifiers, Select K Best and Select Percentile feature selection algorithms and Normalizer as the feature transformation algorithm (may not be selected during the optimization process).
[Click here](COMPONENTS.md) for a list of currently implemented components divided into groups: classifiers, feature selection algorithms and feature transformation algorithms. At the end you can also see a list of currently implemented fitness functions for the optimization process, categorical features' encoders, and missing values' imputers. All of the components are passed into the optimization process using their class names. Let's say we want to choose between Adaptive Boosting, Bagging and Multi Layer Perceptron classifiers, Select K Best and Select Percentile feature selection algorithms and Normalizer as the feature transformation algorithm (may not be selected during the optimization process).

```python
PipelineOptimizer(
Expand All @@ -53,15 +53,16 @@ PipelineOptimizer(
)
```

The argument of the PipelineOptimizer `categorical_features_encoder` is `None` by default. If your dataset contains any categorical features, you need to specify an encoder to use.
The argument of the PipelineOptimizer `categorical_features_encoder` is `None` by default. If your dataset contains any categorical features, you need to specify an encoder to use. The same goes for `imputer` and features that contain missing values.

```python
PipelineOptimizer(
data=...,
classifiers=['AdaBoost', 'Bagging', 'MultiLayerPerceptron'],
feature_selection_algorithms=['SelectKBest', 'SelectPercentile'],
feature_transform_algorithms=['Normalizer'],
categorical_features_encoder='OneHotEncoder'
categorical_features_encoder='OneHotEncoder',
imputer='SimpleImputer'
)
```

Expand Down Expand Up @@ -153,6 +154,12 @@ The NiaAML framework also allows you to implement your own feature encoder. All

Take a look at the [OneHotEncoder](niaaml/preprocessing/encoding/one_hot_encoder.py) implementation.

### Example of an Imputer's Implementation

The NiaAML framework also allows you to implement your own imputer. All you need to do is implement the [Imputer](niaaml/preprocessing/imputation/imputer.py) class.

Take a look at the [SimpleImputer](niaaml/preprocessing/imputation/simple_imputer.py) implementation.

### More

You can find more examples [here](examples).
Expand Down
11 changes: 8 additions & 3 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ which is a popular Python collection of nature-inspired algorithms. The
NiaAML framework is easy to use and customize or expand to suit your
needs.

The NiaAML framework allows you not only to run full pipeline optimization, but also separate implemented components such as classifiers, feature selection algorithms, etc. **It supports numerical and categorical features.**
The NiaAML framework allows you not only to run full pipeline optimization, but also separate implemented components such as classifiers, feature selection algorithms, etc. **It supports numerical and categorical features as well as missing values in datasets.**

- **Documentation:** https://niaaml.readthedocs.io/en/latest/

Expand Down Expand Up @@ -65,8 +65,8 @@ Components
In the following sections you can see a list of currently implemented
components divided into groups: classifiers, feature selection
algorithms and feature transformation algorithms. At the end you can
also see a list of currently implemented fitness functions for the optimization process
and categorical features' encoders.
also see a list of currently implemented fitness functions for the optimization process,
categorical features' encoders, and missing values' imputers.

Classifiers
~~~~~~~~~~~
Expand Down Expand Up @@ -113,6 +113,11 @@ Categorical Feature Encoders

- One-Hot Encoder (OneHotEncoder).

Feature Imputers
~~~~~~~~~~~~~~~~

- Simple Imputer (SimpleImputer).

Licence
-------

Expand Down

0 comments on commit 9e16cae

Please sign in to comment.