https://github.com/n1k1f0rm/ml-predicts
Place where you can find in transparent way how ML algos works
https://github.com/n1k1f0rm/ml-predicts
machine-learning ml numpy python
Last synced: 8 months ago
JSON representation
Place where you can find in transparent way how ML algos works
- Host: GitHub
- URL: https://github.com/n1k1f0rm/ml-predicts
- Owner: N1k1f0rM
- License: apache-2.0
- Created: 2025-03-25T21:28:29.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2025-04-03T15:02:56.000Z (10 months ago)
- Last Synced: 2025-06-14T09:05:45.194Z (8 months ago)
- Topics: machine-learning, ml, numpy, python
- Language: Python
- Homepage:
- Size: 22.5 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ML-From-Scratch 🧠⚙️
**Чистый Python фреймворк для машинного обучения**
Платформа с модульной архитектурой, реализующая алгоритмы "с нуля".
Вдохновлено scikit-learn, но под капотом — только стандартная библиотека Python, Pandas и NumPy.




---
## 🧻 Что уже реализовано?
### 🔨 **Ядро системы (core/)**
Базовые абстракции для единого API:
- `BaseClassifier`: Интерфейс для всех классификаторов
- `BaseRegressor`: Шаблон для регрессионных моделей
- `BaseOptimizer`: Контракт методов оптимизации
- `BaseMetric`: Абстракция для метрик качества
- `BaseTransformer`: Каркас для преобразователей данных
Модели:
- `Linear Regression`
- `Logistic Regression`
## 🏎️ Что в процессе
### 📈 **Метрики (metrics/)**
**Классификация:**
- Accuracy (доля верных предсказаний)
- Precision, Recall, F1-Score
- Confusion Matrix (визуализация через ASCII-таблицы)
**Регрессия:**
- MSE (Mean Squared Error)
- RMSE (Root Mean Squared Error)
- RMSLE (Root Mean Squared Log Error)
- MAE (Mean Absolute Error)
- MAPE (Mean Absolute Percentage Error)
- SMAPE ()
- WAPE (Weightned Absolute Percentage Error)
- R² Score (Determination)
### 🧠 **Модели (models/)**
**Линейные алгоритмы:**
- Линейная регрессия
- Линейная регрессия + L1 + L2 + ElasticNet
- Логистическая регрессия
**Деревья:**
- Дерево решений (CART-алгоритм)
- Критерии разделения: Энтропия, Джини
- Ограничение глубины и минимального числа образцов
- Случайный лес (бэггинг над деревьями)
**SVM:**
- Линейный SVM (реализация через SGD)
- Ядровой трюк (полиномиальное/RBF ядро)
**Ансамбли:**
- AdaBoost (адаптивное бустирование)
### ⚙️ **Оптимизаторы (optimizers/)**
- GD (просто градиентный спуск)
- SGD (стохастический градиентный спуск)
- Momentum GD
- Nesterov GD
- AdaGrad
- Adam (адаптивная оценка моментов)
- RMSprop (экспоненциальное затухание)
---
## 🛠️ Примеры кода
**Обучение модели:**
```python
from models.linear import RidgeRegression
from optimizers import SGD
model = RidgeRegression(
optimizer=SGD()
)
model.fit(X_train, y_train)
```
## 🔍 Детали реализаций
### 🧪 Тестирование
- Юнит-тесты для всех компонентов (pytest)
- Сравнение с эталонными реализациями (sklearn)
- Проверка численной стабильности (edge-cases)
---
## 📌 Что планируется в будущем?
- Препроцессинг (Нормализация, кодирование признаков итд)
- Кластеризация (Kmeans, DBSCAN, HDBSCAN, Aglomerative, Spectral)
- PCA: снижение размерности
- Gradient Boosting
- Blending, Stacking
- Визуализация (t-sne, mds, isomap)
---