# SEGA_LEARN

[![PyPI version](https://badge.fury.io/py/sega_learn.svg)](https://badge.fury.io/py/sega_learn)
[![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/SantiagoEnriqueGA/sega_learn/.github/workflows/core-tests.yml?branch=main)](https://github.com/SantiagoEnriqueGA/sega_learn/actions/workflows/core-tests.yml)
[![Python Versions](https://img.shields.io/pypi/pyversions/sega_learn.svg)](https://pypi.org/project/sega_learn/)
[![Code style: ruff](https://img.shields.io/badge/code%20style-ruff-blue.svg)](https://github.com/charliermarsh/ruff)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

SEGA_LEARN is a Python package for machine learning and data science, offering from-scratch implementations of various algorithms. It's designed primarily for educational purposes, allowing users to explore the mechanics of ML models, inspired by libraries like scikit-learn and PyTorch.

## Core Features
*   **Wide Range of Algorithms**: Implements models for:
    *   Automated Machine Learning (AutoML)
    *   Clustering (e.g., KMeans, DBSCAN)
    *   Linear Models (e.g., OLS, Ridge, Lasso, Logistic Regression, LDA, QDA)
    *   Nearest Neighbors (KNeighborsClassifier, KNeighborsRegressor)
    *   Neural Networks (flexible architecture with NumPy, Numba, and CuPy backends)
    *   Support Vector Machines (Linear, Generalized with Kernels, One-Class)
    *   Tree-based Models (Decision Trees, Random Forests, Gradient Boosting, AdaBoost, Isolation Forest)
    *   Time Series Analysis (ARIMA, SARIMA, Decomposition, Exponential Smoothing)
*   **Pipelines**: Generic and forecasting pipelines for streamlining ML workflows.
*   **Utilities**: A rich set of tools for:
    *   Data preparation and preprocessing (scaling, encoding, imputation)
    *   Model evaluation metrics
    *   Model selection (Grid Search, Random Search)
    *   Data augmentation (SMOTE, over/under-sampling)
    *   Visualization and animation helpers

## Installation

You can install SEGA_LEARN directly from PyPI:

```bash
pip install sega_learn
```

## Quick Links

*   **Homepage & Repository**: [https://github.com/SantiagoEnriqueGA/sega_learn](https://github.com/SantiagoEnriqueGA/sega_learn)
*   **Full Documentation**: [https://santiagoenriquega.github.io/sega_learn/sega_learn](https://santiagoenriquega.github.io/sega_learn/sega_learn)
*   **Contributing/Development**: [https://github.com/SantiagoEnriqueGA/sega_learn/blob/main/DEVELOPMENT.md](https://github.com/SantiagoEnriqueGA/sega_learn/blob/main/DEVELOPMENT.md)

## License

This project is licensed under the MIT License - see the [LICENSE.txt](https://github.com/SantiagoEnriqueGA/sega_learn/blob/main/LICENSE.txt) file on GitHub for details.
