Metadata-Version: 2.4
Name: polyergalio
Version: 0.1.0
Summary: From-scratch machine learning methods -- encoding, supervised learning, and clustering -- built on NumPy and SciPy
Author-email: David Graey <graeyband@gmail.com>, Dr Charles Anderson <Chuck.Anderson@colostate.edu>
License: MIT
Project-URL: Homepage, https://github.com/Davidgraey/ml-tools
Project-URL: Repository, https://github.com/Davidgraey/ml-tools
Project-URL: Changelog, https://github.com/Davidgraey/ml-tools/blob/main/CHANGES.md
Project-URL: Bug Tracker, https://github.com/Davidgraey/ml-tools/issues
Keywords: machine-learning,numpy,clustering,self-organizing-map,neural-network
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: matplotlib
Requires-Dist: numpy
Requires-Dist: scipy
Provides-Extra: gui
Requires-Dist: matplotlib; extra == "gui"
Provides-Extra: audio
Requires-Dist: librosa; extra == "audio"
Provides-Extra: test
Requires-Dist: pytest; extra == "test"
Provides-Extra: dev
Requires-Dist: pytest; extra == "dev"
Requires-Dist: coverage; extra == "dev"
Requires-Dist: build; extra == "dev"
Requires-Dist: twine; extra == "dev"
Dynamic: license-file

# PolyerGalio
![Python](https://img.shields.io/badge/python-3.10%2B-blue.svg)
![NumPy](https://img.shields.io/badge/numpy-%3E%3D1.20-blue)
![SciPy](https://img.shields.io/badge/scipy-%3E%3D1.7-blue)
![License](https://img.shields.io/github/license/davidgraey/ml-tools)
![Last Commit](https://img.shields.io/github/last-commit/davidgraey/ml-tools)
![Repo Size](https://img.shields.io/github/repo-size/davidgraey/ml-tools)
![Stars](https://img.shields.io/github/stars/davidgraey/ml-tools?style=social)

---

## Overview

**PolyerGalio** (Greek for "multiple tools") is a collection of implemented machine learning methods ranging from  
data encoding and processing pipelines to supervised learning and clustering.

The focus of this repository is:
- **Classic and alternative ML algorithms implemented with a unified 
  interface**
- **Numerical stability and performance**
- **Novel extensions and original research contributions**

All algorithms are implemented in **NumPy** and **SciPy**, with minimal external dependencies.

---
## Installation

```bash
pip install polyergalio
```

For local development:

```bash
pip install -e ".[test]"
```

---
## Implemented Methods

### 🔹 Encoding and Embedding Creation
`src/polyergalio/encoders/*`
- Categorical variable pipeline
- Chronological variable (cyclical and absolute) pipeline
- Numeric (normalized and raw) pipeline
- Trainable Fourier Embedding pipeline
- Trainable Text embedding pipeline
- tokenization with sentencepiece

### 🔹 Toy Dataset Generation
`src/polyergalio/generators/*`

### 🔹 Supervised Learning
`src/polyergalio/models/supervised/*`
#### Scaled Conjugate Gradient (SCG)
- SCG for gradient descent applied to regression and logistic regression 
  *(Møller); (Anderson)*
- SCG regression with **Elastic Net regularization** *(novel)*
- SCG classification:
  - Binary
  - Multinomial
  - Multilabel

#### Relative Weights (RW)
- Johnson’s Relative Weights regression *(Johnson)*
- Relative Weights applied to logistic regression  
  *(Solís & Pasquier); (Tonidandel & LeBreton)*

#### Tree Algorithms (EBM / EBTM)
- Tree algorithms - Explainable Boosted-Tree Model (EBM)

### 🔹 Unsupervised Learning & Clustering
`src/polyergalio/models/clustering/*`
#### Self-Organizing Maps
- Self Organizing Maps, Parameterless Self-Organizing Maps - PLSOM  
  *(Kohonen); (Berglund & Sitte)*
  - Clustering and dimensionality reduction without hyperparameter adjustment
- Growing Self Organizing Maps, Parameterless (grid)
- Grid-free Growing Parameterless Self Organizing Maps
  - FreeSOM - grows and shrinks under conditional updates
  - *(novel)* fusion of Neural Gas and PLSOM


#### Centroid Neural Networks (CENTNN)
- Novel **Centroid Neural Network** for fast clustering and optimization  
  *(Park, Dong-Chul)*
- CENTNN with **N-dimensional density modeling**
- *(novel)*

---
## Status

**Active research / experimental**  
APIs may change as methods are refined and extended.

---
## Authors and Contributors
- "David Graey", "graeyband@gmail.com"
- "Dr Charles Anderson", "Chuck.Anderson@colostate.edu"

---
## References

Primary academic references are cited inline.  
Full bibliographic references may be added in `/docs` in the future.

https://packaging.python.org/en/latest/tutorials/packaging-projects/

https://packaging.python.org/en/latest/tutorials/creating-documentation/


# Visuals & Diagrams
https://mermaid.js.org/config/Tutorials.html
```mermaid
flowchart LR;
    A --> B;
    A --> C;
```
