> For the complete documentation index, see [llms.txt](https://www.mlcompendium.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://www.mlcompendium.com/deep-learning/meta-learning.md).

# Meta Learning (AutoML)

AutoML is the attempt to automate model choice, hyperparameters, architecture search, and the other steps a practitioner usually does by hand. The page puts the personal caveats first, because automation does not replace looking at the data, then follows the systems curated by automl.org: full ML systems, hyperparameter optimization, architecture search, and auto feature engineering, and ends with PyCaret.

The same notes are in [Model Families](/problem-framing/model-families.md).

[What is?](https://www.automl.org/) Automated Machine Learning provides methods and processes to make Machine Learning available for non-Machine Learning experts, to improve efficiency of Machine Learning and to accelerate research on Machine Learning.

Personal note: automl algorithms in this field will bridge the gap and automate several key processes, but it will not allow a practitioner to do serious research or solve business or product problems easily. The importance of this field is to advance each subfield, whether HPO, NAS, etc. these selective novelties can help us solve specific issues, i.e, lets take HPO, we can use it to save time and money on redundant parameter searches, especially when it comes to resource heavy algorithms such as Deep learning (think GPU costs).

Personal thoughts on optimizations: be advised that optimizing problems will not guarantee a good result, you may over fit your problem in ways you are not aware of, beyond traditional overfitting and better accuracy doesn't guarantee a better result (for example if your dataset is unbalanced, needs imputing, cleaning, etc.).

Always examine the data and results in order to see if they are correct.

With those caveats stated, the projects themselves are backed up in one place: [Automl.org’s github — it has a backup for the following projects.](https://github.com/automl), the AutoML-Freiburg-Hannover organization.

[Automl.org](https://www.automl.org/) is a joint effort between two universitie, freiburg and hannover, their website curates information regarding:

1. HPO — hyper parameter optimization
2. NAS — neural architecture search
3. Meta Learning — learning across datasets, warmstarting of HPO and NAS etc.

Automl aims to automate these processes:

* Preprocess and clean the data.
* Select and construct appropriate features.
* Select an appropriate model family.
* Optimize model hyperparameters.
* Postprocess machine learning models.
* Critically analyze the results obtained.

Historically, AFAIK AutoML’s birth started with several methods to optimize each one of the previous processes in ml. IINM, [weka’s paper (2012](https://arxiv.org/abs/1208.3719)) was the first step in aggregating these ideas into a first public working solution.

The following is referenced from AutoML.org:

### ML Systems

The first group automates the whole pipeline, starting from that WEKA line of work.

The same notes are in [Genetic Algorithms & Genetic Programming](/predictive-ml/genetic-algorithms-and-genetic-programming.md).

[AutoWEKA](http://www.cs.ubc.ca/labs/beta/Projects/autoweka/) is an approach for the simultaneous selection of a machine learning algorithm and its hyperparameters; combined with the [WEKA](http://www.cs.waikato.ac.nz/ml/weka/) package it automatically yields good models for a wide variety of data sets. [Auto-sklearn](https://automl.github.io/auto-sklearn/master/) is an extension of AutoWEKA using the Python library [scikit-learn](http://scikit-learn.org/stable/) which is a drop-in replacement for regular scikit-learn classifiers and regressors. [TPOT](http://epistasislab.github.io/tpot/) is a data-science assistant which optimizes machine learning pipelines using genetic programming.

The platform vendors ship their own. (google) [H2O AutoML](https://docs.h2o.ai/h2o/latest-stable/h2o-docs/automl.html) is the H2O AutoML documentation; it provides automated model selection and ensembling for the [H2O machine learning and data analytics platform](https://docs.h2o.ai/h2o/latest-stable/h2o-docs/welcome.html). Google Brain AutoML is on ( [git](https://github.com/google/automl). [TransmogrifAI](https://github.com/salesforce/TransmogrifAI) is an AutoML library running on top of Spark. [MLBoX](https://github.com/AxeldeRomblay/MLBox) is an AutoML library with three components: preprocessing, optimisation and prediction

For tabular data with reports attached, [MLJar](https://mljar.com/) ([git](https://github.com/mljar/mljar-supervised)) [medium](https://medium.com/@MLJARofficial/mljar-supervised-automl-with-explanations-and-markdown-reports-36d5104e117), 2 — Automated Machine Learning for tabular data mljar builds a complete Machine Learning Pipeline. Perform exploratory analysis, search for a signal in the data, and discover relationships between features in your data with AutoML. Train top ML models with advanced feature engineering, many algorithms, hyper-parameters tuning, Ensembling, and Stacking. Stay ahead of competitors and predict the future with advanced ML. Deploy your models in the cloud or use them locally. The git repo is the mljar-supervised Python package, and the medium post is about its main advantage, the markdown reports produced from model training. On top of the pipeline it adds advanced feature engineering, algorithms selection and tuning, automatic documentation, and ML explanations, as the figure below shows.

<figure><img src="https://83674056-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mgd48oS5_duTKOVE_Et%2Fuploads%2Fgit-blob-bd89682107be34bf0f9ec3acf4da2c59697470f1%2Fgimg-677053d62777.png?alt=media" alt=""><figcaption><p>MLJar AutoML.</p></figcaption></figure>

### Hyper param optimization

A full system hides the search. When only the hyperparameters need automating, which is where the personal note says the money is saved, these are the tools.

The same notes are in [HYPER PARAM GRID SEARCHES](/deep-learning/deep-neural-nets.md#hyper-param-grid-searches) and [Hyper Parameter Optimization](/evals/hyper-parameter-optimization.md).

[Hyperopt](http://jaberg.github.io/hyperopt/) is Hyperopt by jaberg, including the TPE algorithm. [Sequential Model-based Algorithm Configuration (SMAC)](http://aclib.net/SMAC/) is the SMAC page. [Spearmint](https://github.com/JasperSnoek/spearmint) is a package to perform Bayesian optimization according to the algorithms outlined in the paper Practical Bayesian Optimization of Machine Learning Algorithms by Jasper Snoek, Hugo Larochelle and Ryan P. Adams. BOHB: Bayesian Optimization combined with HyperBand, and RoBO – Robust Bayesian Optimization framework, are kept at the end of the page. [SMAC3](https://github.com/automl/SMAC3) – a python re-implementation of the SMAC algorithm.

### Architecture Search

Hyperparameters tune a fixed network; architecture search lets the search choose the network itself.

[Auto-PyTorch](https://github.com/automl/Auto-PyTorch) is automatic architecture search and hyperparameter optimization for PyTorch. [AutoKeras](https://autokeras.com/) is the same idea for Keras. [DEvol](https://github.com/joeddav/devol) is an early POC of genetic neural architecture search. [HyperAS](https://github.com/maxpumperla/hyperas) is Keras + Hyperopt, a very simple wrapper for convenient hyperparameter optimization, and [talos](https://github.com/autonomio/talos) runs hyperparameter experiments with TensorFlow and Keras.

### Auto Feature Engineering

The step before any model is the features, and that can be automated too.

The same notes are in [FEATURE ENGINEERING](/data/processing-intro/feature-engineering.md#feature-engineering).

The reading here is automated feature engineering on medium by will koehrsen: <https://towardsdatascience.com/automated-feature-engineering-in-python-99baf11cc219>.

## PYCARET

After the systems and the separate search tools, PyCaret wraps the whole path in a few calls. [1. What is? by vidhaya](https://www.analyticsvidhya.com/blog/2020/05/pycaret-machine-learning-model-seconds/) is the Analytics Vidhya post on using PyCaret to build a model in seconds when running low on time. [PyCaret](https://pycaret.org/) is an open-source, machine learning library in Python that helps you from data preparation to model deployment. It is easy to use and you can do almost every data science project task with just one line of code.

## Deprecated links

{% hint style="warning" %}
These links and images no longer work. The original wording is kept here. A same-resource copy, when one was checked, is used above.
{% endhint %}

* Auto-sklearn. This address no longer opens: <http://automl.github.io/auto-sklearn/stable/>
* H2O AutoML. This address no longer opens: <http://docs.h2o.ai/h2o/latest-stable/h2o-docs/automl.html>
* H2O machine learning and data analytics platform. This address no longer opens: <http://docs.h2o.ai/h2o/latest-stable/h2o-docs/welcome.html>
* 2 (MLJar TDS). This address no longer opens: <https://towardsdatascience.com/automating-eda-machine-learning-6ddb76c1eb4d>
* BOHB: Bayesian Optimization combined with HyperBand. This address no longer opens: <https://www.automl.org/automl/bohb/>
* RoBO – Robust Bayesian Optimization framework. This address no longer opens: <http://www.automl.org/automl/robo/>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://www.mlcompendium.com/deep-learning/meta-learning.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
