Giter Site home page Giter Site logo

yacth / autogoal Goto Github PK

View Code? Open in Web Editor NEW

This project forked from autogoal/autogoal

0.0 0.0 0.0 11.46 MB

A Python framework for program synthesis with a focus on Automated Machine Learning.

Home Page: https://autogoal.github.io

License: MIT License

Python 99.12% Makefile 0.83% Dockerfile 0.05%

autogoal's Introduction

AutoGOAL Logo

PyPI PyPI - Python Version PyPI - License GitHub stars Twitter Follow

GitHub Workflow Status (branch) Docker Cloud Build Status Docker Image Size (CPU) Docker Pulls

AutoGOAL

Automatic Generation, Optimization And Artificial Learning

AutoGOAL is a Python library for automatically finding the best way to solve a given task. It has been designed mainly for Automated Machine Learning (aka AutoML) but it can be used in any scenario where you have several possible ways to solve a given task.

Technically speaking, AutoGOAL is a framework for program synthesis, i.e., finding the best program to solve a given problem, provided that the user can describe the space of all possible programs. AutoGOAL provides a set of low-level components to define different spaces and efficiently search in them. In the specific context of machine learning, AutoGOAL also provides high-level components that can be used as a black-box in almost any type of problem and dataset format.

Quickstart

AutoGOAL is first and foremost a framework for Automated Machine Learning. As such, it comes pre-packaged with hundreds of low-level machine learning algorithms that can be automatically assembled into pipelines for different problems.

The core of this functionality lies in the AutoML class.

To illustrate the simplicity of its use we will load a dataset and run an automatic classifier in it.

from autogoal.datasets import cars
from autogoal.ml import AutoML

X, y = cars.load()
automl = AutoML()
automl.fit(X, y)

Sensible defaults are defined for each of the many parameters of AutoML. Make sure to read the documentation for more information.

Installation

Installation is very simple:

pip install autogoal

However, autogoal comes with a bunch of optional dependencies. You can install them all with:

pip install autogoal[contrib]

To fine-pick which dependencies you want, read the dependencies section.

Using Docker

The easiest way to get AutoGOAL up and running with all the dependencies is to pull the development Docker image, which is somewhat big:

docker pull autogoal/autogoal

Instructions for setting up Docker are available here.

Once you have the development image downloaded, you can fire up a console and use AutoGOAL interactively.

NOTE: By installing through pip you will get the latest release version of AutoGOAL, while by installing through Docker, you will get the latest development version. The development version is mostly up-to-date with the main branch, hence it will probably contain more features, but also more bugs, than the release version.

CLI

You can use AutoGOAL directly from the CLI. To see options just type:

python -m autogoal

Read more in the CLI documentation.

Demo

An online demo app is available at autogoal.github.io/demo. This app showcases the main features of AutoGOAL in interactive case studies.

To run the demo locally, simply type:

docker run -p 8501:8501 autogoal/autogoal

And navigate to localhost:8501.

Documentation

This documentation is available online at autogoal.github.io. Check the following sections:

  • User Guide: Step-by-step showcase of everything you need to know to use AuoGOAL.
  • Examples: The best way to learn how to use AutoGOAL by practice.
  • API: Details about the public API for AutoGOAL.

The HTML version can be deployed offline by downloading the AutoGOAL Docker image and running:

docker run -p 8000:8000 autogoal/autogoal mkdocs serve -a 0.0.0.0:8000

And navigating to localhost:8000.

Publications

If you use AutoGOAL in academic research, please cite the following paper:

@article{estevez2020general,
  title={General-purpose hierarchical optimisation of machine learning pipelines with grammatical evolution},
  author={Est{\'e}vez-Velarde, Suilan and Guti{\'e}rrez, Yoan and Almeida-Cruz, Yudivi{\'a}n and Montoyo, Andr{\'e}s},
  journal={Information Sciences},
  year={2020},
  publisher={Elsevier},
  doi={10.1016/j.ins.2020.07.035}
}

The technologies and theoretical results leading up to AutoGOAL have been presented at different venues:

Contribution

Code is licensed under MIT. Read the details in the collaboration section.

Contributors


Suilan Estevez-Velarde

๐Ÿ’ป โš ๏ธ ๐Ÿค” ๐Ÿ“–

Alejandro Piad

๐Ÿ’ป โš ๏ธ ๐Ÿ“–

Yudiviรกn Almeida Cruz

๐Ÿค” ๐Ÿ“–

ygutierrez

๐Ÿค” ๐Ÿ“–

Ernesto Luis Estevanell Valladares

๐Ÿ’ป โš ๏ธ

Alexander Gonzalez

๐Ÿ’ป โš ๏ธ

Anshu Trivedi

๐Ÿ’ป

Alex Coto

๐Ÿ“–

Guillermo Blanco

๐Ÿ›

autogoal's People

Contributors

apiad avatar sestevez avatar eestevanell avatar allcontributors[bot] avatar alexfertel avatar anshutrivedi avatar alxrcs avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.