<img src="others/luma.png" alt="logo" width="75" height="75">

# LUMA
<!-- ------------------ -->
LUMA is a powerful and flexible Python module designed to simplify and streamline 
various machine learning tasks. It is specifically created to enhance the ease of 
building, training, and deploying machine learning models while offering extensive 
customization options for data scientists and developers.

## luma.classifier
<!-- ------------------- -->
The `luma.classifier` submodule is a comprehensive toolkit for building, training,
and evaluating classification models. It provides a wide range of classification algorithms, 
including naive bayes, decision trees, and support vector machines.

## luma.clustering
<!-- ------------------- -->
The `luma.clustering` submodule focuses on unsupervised machine learning tasks, 
specifically clustering. It encompasses algorithms such as K-Means, hierarchical clustering, etc. It simplifies cluster 
creation, analysis, and visualization, allowing users to gain insights from their data without the need for labels.

## luma.core
<!-- ------------- -->
The `luma.core` submodule serves as the foundational backbone for the entire LUMA framework. 
It provides essential data structures and utility functions that are used throughout the LUMA ecosystem.

## luma.ensemble
<!-- ------------------- -->
The `luma.ensemble` submodule empowers users to harness the strength of ensemble learning for improved model performance. 
Ensemble learning combines the predictions of multiple base models to enhance overall accuracy and robustness. 
The submodule includes popular ensemble methods such as Random Forests.

## luma.interface
<!-- ------------------ -->
The `luma.interface` submodule contains files that define protocols and custom data types used internally within the luma 
framework. These files are not intended for direct external use but play a crucial role in the functionality and 
communication between various luma components.

## luma.metric
<!-- --------------- -->
The `luma.metric` submodule provides a rich collection of performance metrics for evaluating 
machine learning models. It includes metrics for classification tasks like ROC-AUC, log-loss, 
and confusion matrices. For regression tasks, it offers metrics such as mean squared error (MSE) 
and R-squared. These metrics are essential for assessing model quality and guiding model selection.

## luma.migrate
<!-- --------------- -->
The `luma.migrate` submodule is specifically designed to facilitate the import and export of machine 
learning models within the LUMA framework. This submodule is crucial for preserving and transferring 
the state of models across different platforms and environments, enhancing the portability and 
scalability of machine learning solutions.

## luma.model_selection
<!-- ----------------------- -->
The `luma.model_selection` submodule streamlines the process of selecting the best machine learning 
model and optimizing hyperparameters. It offers tools for hyperparameter tuning, cross-validation, 
and model selection, enabling users to find the optimal model configuration for their specific task.

## luma.pipe
<!-- --------------- -->
The `luma.pipe` submodule is dedicated to creating and managing machine learning pipelines, streamlining 
the process from data preprocessing to model evaluation. It offers a seamless interface for combining 
different stages of machine learning workflows into a coherent and efficient pipeline. 
This includes integrating preprocessing steps, model fitting, and post-processing tasks into a unified workflow.

## luma.preprocessing
<!-- ---------------------- -->
The `luma.preprocessing` submodule includes a variety of data preprocessing functions to ensure data 
is properly prepared for machine learning tasks. It covers tasks like feature scaling, one-hot encoding, 
handling missing values, and data splitting. Proper data preprocessing is crucial for model performance 
and accuracy.

## luma.reduction
<!-- --------------------- -->
The `luma.reduction` submodule specializes in dimensionality reduction techniques. It provides methods 
for feature selection and extraction, reducing the dimensionality of high-dimensional datasets. 
This not only improves model performance but also reduces computational time and complexity.

## luma.regressor
<!-- ------------------ -->
The `luma.regressor` submodule is tailored for regression tasks. It offers a comprehensive range of 
regression algorithms, such as linear regression, decision tree regression, and support vector regression. 
Additionally, it includes a suite of regression-specific evaluation metrics to assess model 
accuracy and performance.

## luma.visual
<!-- ------------------- -->
The `luma.visual` submodule simplifies model visualization. It includes tools for plotting data,
visualizing decision boundaries, and creating performance charts. These visualization aids help 
users gain insights from their machine learning models and communicate results effectively.
##

### Latest Version
`0.3.5`

### Dependencies
`NumPy`, `SciPy`, `Matplotlib`, `Seaborn`

### Python Version
`Python 3.10` or later

### Document
[LUMA Notion Document](https://lumerico284.notion.site/LUMA-76330376b0e64cc1b95874c469aeb327?pvs=4)
