Metadata-Version: 2.1
Name: igel
Version: 0.0.6
Summary: a machine learning tool that allows to train, test and use models without writing code
Home-page: https://github.com/nidhaloff/igel
Author: Nidhal Baccouri
Author-email: nidhalbacc@gmail.com
License: MIT license
Keywords: igel
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Requires-Python: >=3.6
Requires-Dist: pandas (==1.1.1)
Requires-Dist: PyYAML (==5.3.1)
Requires-Dist: scikit-learn (==0.23.2)

====
igel
====

.. image:: assets/cover.png
    :width: 100%
    :scale: 50%
    :align: center
    :alt: igel-icon

|

|


.. image:: https://img.shields.io/pypi/v/igel.svg
        :target: https://pypi.python.org/pypi/igel

.. image:: https://img.shields.io/travis/nidhaloff/igel.svg
        :target: https://travis-ci.com/nidhaloff/igel

.. image:: https://pepy.tech/badge/igel
        :target: https://pepy.tech/project/igel

.. image:: https://pepy.tech/badge/igel/month
        :target: https://pepy.tech/project/igel/month

.. image:: https://readthedocs.org/projects/igel/badge/?version=latest
        :target: https://igel.readthedocs.io/en/latest/?badge=latest
        :alt: Documentation Status

.. image:: https://img.shields.io/pypi/wheel/igel
        :alt: PyPI - Wheel
        :target: https://pypi.python.org/pypi/igel

.. image:: https://img.shields.io/pypi/status/igel
        :alt: PyPI - Status
        :target: https://pypi.python.org/pypi/igel

|
|

A machine learning tool that allows to train/fit, test and use models **without writing code**


* Free software: MIT license
* Documentation: https://igel.readthedocs.io.


.. note::

    The project is still under heavy development. Feel free to open an issue if you encountered any.
    I appreciate any feedback in order to improve the package ;)

Motivation & Goal
------------------

The goal of the project is to provide machine learning for **everyone**, both technical and non technical
users.

I needed a tool sometimes, which I can use to fast create a machine learning prototype. Whether to build
some proof of concept or create a fast draft model to prove a point. I find myself often stuck at writing
boilerplate code and/or thinking too much of how to start this.

Therefore, I decided to create **igel**. Hopefully, it will make it easier for technical and non technical
users to build machine learning models.

Intro
--------

igel is built on top of scikit-learn. It provides a simple way to use machine learning without writing
a **single line of code**

All you need is a yaml file, where you need to describe what you are trying to do. That's it!

Installation
-------------

- The easiest way is to install igel using `pip <https://packaging.python.org/guides/tool-recommendations/>`_

.. code-block:: console

    $ pip install igel

- Check the docs for other ways to install igel from source

Quick Start
------------

- First step is to provide a yaml file:

.. code-block:: yaml

        # model definition
        model:
            # in the type field, you can write the type of problem you want to solve. Whether regression or classification
            # Then, provide the algorithm you want to use on the data. Here I'm using the random forest algorithm
            type: regression
            algorithm: random forest

        # target you want to predict
        # Here, as an example, I'm using a dataset, where I want to predict the GPA values.
        # Depending on your data, you need to provide the target(s) you want to predict here
        target:
            - GPA

In the example above, we declare that we have a regression
problem and we want to use the random forest model
to solve it. Furthermore, the target we want to
predict is GPA (since I'm using this simple `dataset <https://www.kaggle.com/luddarell/101-simple-linear-regressioncsv>`_ )
`
- Run this command in Terminal, where you provide the **path to your dataset** and the **path to the yaml file**

.. code-block:: console

    $ igel fit --data_path 'path_to_your_csv_dataset.csv' --yaml_file 'path_to_your_yaml_file.yaml'

    # or shorter
    $ igel fit -dp 'path_to_your_csv_dataset.csv' -yml 'path_to_your_yaml_file.yaml'


you can run this command to get instruction on how to use the model:

.. code-block:: console

    $ igel -h


That's it. Your "trained" model can be now found in the model_results folder
(automatically created for you in your current working directory).
Furthermore, a description can be found in the description.json file inside the model_results folder.

Examples
----------
Check the examples folder, where you can use the csv data to run a simple example from terminal

TODO
-----
- add option as arguments to the models
- add multiple file support
- provide an api to evaluate models

Contributors
------------

None yet. Why not be the first?
Contributions are always welcome. Please check the contribution guidelines first.


=======
History
=======

0.0.6 (2020-09-01)
------------------
* Added validation on arguments and provided an example

0.0.5 (2020-08-31)
------------------
* Added logging and changed file keyword to yaml_file

0.0.3 (2020-08-30)
------------------
* First functional package

0.0.1 (2020-08-27)
------------------
* First release on PyPI.


