gamlet 0.0.1
Framework for meta-optimisation in AutoML tasks

# GAMLET

[![ITMO](https://github.com/ITMO-NSS-team/open-source-ops/blob/add_badge/badges/ITMO_badge_rus.svg)](https://itmo.ru)
[![licence](https://img.shields.io/github/license/itmo-nss-team/metafedot)](https://github.com/itmo-nss-team/metafedot/blob/main/LICENSE)
[![package](https://badge.fury.io/py/metafedot.svg)](https://badge.fury.io/py/metafedot)
[![Build](https://github.com/ITMO-NSS-team/MetaFEDOT/actions/workflows/build.yml/badge.svg)](https://github.com/ITMO-NSS-team/MetaFEDOT/actions/workflows/build.yml)
[![Documentation Status](https://readthedocs.org/projects/gamlet/badge/?version=latest)](https://gamlet.readthedocs.io/en/latest/?badge=latest)
[![codecov](https://codecov.io/gh/ITMO-NSS-team/GAMLET/graph/badge.svg?token=N3Z9YTPHP9)](https://codecov.io/gh/ITMO-NSS-team/GAMLET)
[![Visitors](https://api.visitorbadge.io/api/visitors?path=https%3A%2F%2Fgithub.com%2FITMO-NSS-team%2FMetaFEDOT&countColor=%23263759&style=plastic&labelStyle=lower)](https://visitorbadge.io/status?path=https%3A%2F%2Fgithub.com%2FITMO-NSS-team%2FMetaFEDOT)

GAMLET (previously known as MetaFEDOT) is an open platform for sharing meta-learning experiences in **AutoML** and more
general **Graph Optimization**.
The project has 3 major long-term goals:

1. Provide codebase and utilities for experiments in meta-learning (work in progress)
2. Accumulate metaknowledge for popular application fields, such as tabular classification, tabular regression,
   time series forecasting, etc., based on public datasets and benchmarks (work in progress)
3. Provide user API allowing outer target-independent usage of accumulated meta-knowledge (planned)

## Codebase and utilities for experiments in meta-learning

This framework consists of several key components that automate and enhance the process of meta-learning. It provides
functionalities for dataset and model management, meta-features extraction, dataset similarity assessment. The
components work together to facilitate the initial approximation fitting process.

Each of the components may include different implementations while staying compatible. This is achieved by specification
and maintaining their external interfaces.

### Datasets loader & Dataset

Automate dataset management, including retrieval, caching, and loading into memory. Optimize experiments by minimizing
calls to the dataset source and conserve memory usage.

### Models Loader & Model

Import and consolidate model evaluation data for datasets. Support experiment selection based on predefined criteria,
currently compatible with FEDOT AutoML framework results.

### Meta-features Extractor

Automates the extraction of meta-features from datasets, improving efficiency by caching values. Can load dataset data
if it is necessary for meta-features extraction. For example, one of implementations utilize the PyMFE library for
meta-feature extraction.

### Datasets Similarity Assessor

Assesses dataset similarity based on meta-features. For a given dataset, provides list of similar datasets and optionally calculates
similarity measures. For example, one of implementations uses the "NearestNeighbors" model from scikit-learn.

### Models Advisor

Combines results from Models Loader and Datasets Similarity Assessor. Provides recommendations for models based on
loaded data and similar datasets. Possible implementations allow for heuristic-based suggestions.