Metadata-Version: 2.4
Name: lancetnic
Version: 4.0.0
Summary: A tool for working with text data
Home-page: https://github.com/Lancet52/lancetnic
Author: Lancet52
Author-email: lancetFPV@yandex.ru
Classifier: Development Status :: 5 - Production/Stable
Classifier: Programming Language :: Python :: 3.12
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: torch==2.5.1
Requires-Dist: scikit-learn==1.6.1
Requires-Dist: pandas==2.2.3
Requires-Dist: matplotlib==3.10.1
Requires-Dist: seaborn==0.13.2
Requires-Dist: tqdm==4.67.1
Requires-Dist: PyYaml==6.0.3
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: license-file
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

# LANCETNIC 4.0.0

[![PyPI Package Version](https://img.shields.io/pypi/v/lancetnic.svg?style=flat-square)](https://pypi.org/project/lancetnic/)
[![PyPi status](https://img.shields.io/pypi/status/lancetnic.svg?style=flat-square)](https://pypi.python.org/pypi/lancetnic)
[![Downloads](https://static.pepy.tech/badge/lancetnic)](https://pepy.tech/project/lancetnic)
[![Downloads](https://img.shields.io/pypi/dm/lancetnic.svg?style=flat-square)](https://pypi.python.org/pypi/lancetnic)
[![MIT License](https://img.shields.io/pypi/l/lancetnic.svg?style=flat-square)](https://opensource.org/licenses/MIT)

### LANCETNIC - это библиотека, которая представляет базовый набор для решения задач по поиску взаимосвязей между признаками объекта и целевой переменной.
Решение построено на парадигме обучения с учителем: модель обучается на размеченных данных, где каждому объекту сопоставлена соответствующая метка (целевая переменная).

<div align="center">

## Решаемые задачи

<img src="lancetnic/docs/images/classreg.png" alt="Классификация" width="500">
</div>

### Библиотека поддерживает два фундаментальных класса задач машинного обучения:

#### 1. Задача классификации
Состоит в предсказании категориальной метки (класса) для объекта.
- **Бинарная классификация** (спам/не спам; выдача кредита/отказ в выдаче и т.д.)
- **Многоклассовая классификация** (определение тональности текста: позитивный/негативный/нейтральный и т.д.)

#### 2. Задача регрессии
Состоит в предсказании непрерывной числовой величины.
- Прогнозирование рыночной стоимости недвижимости
- Оценка времени доставки заказов
- Предсказание любых количественных показателей

#### 3. Многозадачное обучение (Multi-Task Learning) ⭐ НОВОЕ в v4.0.0
Одновременное решение задач классификации и регрессии на одном наборе данных.
- Совместное прогнозирование категории и числового значения
- Оптимизация нескольких целей одновременно
- Настраиваемое соотношение потерь для каждой задачи


## 🛠 Функциональные возможности

LANCETNIC предоставляет комплексный набор инструментов для полного цикла машинного обучения:

- **Предварительная обработка и векторизация данных**
  - Поддержка текстовых данных через TF-IDF векторизацию
  - Поддержка числовых признаков с масштабированием
  - Гибридная обработка комбинированных данных
  
- **Обучение модели на размеченных выборках**
  - Автоматическое разделение на обучающую и валидационную выборки
  - Настраиваемые гиперпараметры (размер скрытого слоя, количество слоев, dropout)
  - Выбор оптимизатора (Adam, SGD, RMSprop)
  - Выбор функции потерь (CrossEntropyLoss и MSELoss)
  
- **Визуализация ключевых метрик качества**
  - Матрица ошибок (Confusion Matrix) для классификации
  - Графики динамики потерь (Train/Val Loss)
  - Графики точности (Train/Val Accuracy)
  - F1-score, Precision, Recall для классификации
  - MAE, RMSE для регрессии
  - Scatter plot с линией регрессии
  - Распределение классов в датасете
  
- **Инференс** - применение обученной модели к новым данным

Библиотека поддерживает работу как с чисто текстовыми данными, так и с гибридными наборами, включающими комбинации различных типов информации.

## 🏗 Архитектуры моделей

### Модели для классификации:
- **ScalpelMC** - полносвязная нейронная сеть для многоклассовой классификации
- **LancetMC** - LSTM-сеть для работы с последовательностями
- **LancetMCA** - LSTM с механизмом внимания (Attention)
- **LancetMCA_gru** - GRU с механизмом внимания

### Модели для регрессии:
- **ScalpelReg** - полносвязная нейронная сеть для регрессии
- **LancetReg** - LSTM-сеть для регрессии на последовательностях

### Модели для многозадачного обучения:
- **ScalpelMTSK** - мультимодель, объединяющая классификацию и регрессию

## ✨ Преимущества

- **Эффективность обучения** - библиотека обеспечивает высокую скорость обучения моделей при сохранении удобства использования
- **Низкие аппаратные требования** - в отличие от крупных языковых моделей (LLM), LANCETNIC не предъявляет высоких требований к вычислительным ресурсам, что делает её доступной для широкого круга пользователей и сценариев
- **Персонализация под данные пользователя** - возможность обучения моделей на собственных размеченных наборах данных, что обеспечивает адаптацию к специфике конкретной предметной области
- **Автоматическое сохранение результатов** - все метрики, графики и модели сохраняются автоматически в структурированные папки
- **Гибкая настройка** - полный контроль над архитектурой модели и параметрами обучения

## 🚀 Установка:
Установка с помощью CUDA

Для работы с графическим процессором рекомендуется установить PyTorch с поддержкой CUDA (ОПЦИОНАЛЬНО):

```bash
pip install torch==2.5.1+cu124 --index-url https://download.pytorch.org/whl/cu124
```

Затем установка lancetnic:

```bash
pip install lancetnic
```

## 👥 Авторы

- [Lancet52](https://github.com/Lancet52)
- e-mail для связи: `lancetFPV@yandex.ru`

## 📄 [Документация](https://github.com/Lancet52/lancetnic/blob/main/lancetnic/docs/images/RU_documentation.md)
