Skip to main content

Data Science Laboratory Toolkit - инструменты для эффективных исследований

Project description

DmDSLab: Data Science Laboratory Toolkit

PyPI version Python 3.8+ License

DmDSLab — это библиотека инструментов для автоматизации рутинных задач в Data Science проектах, с фокусом на удобную работу с датасетами и структурированное управление данными.

🚀 Основные возможности

  • Контейнеры данных: Типизированные структуры для хранения ML данных (ModelData, DataSplit)
  • UCI Dataset Manager: Удобный доступ к датасетам UCI ML Repository с кэшированием
  • Автоматические разбиения: Создание train/validation/test разбиений и k-fold CV
  • Метаданные: Встроенная поддержка информации о датасетах и экспериментах

📦 Установка

pip install DmDSLab

Для работы с UCI датасетами:

pip install DmDSLab[uci]

🔥 Быстрый старт

Работа с контейнерами данных

from dmdslab.datasets import ModelData, create_data_split
import numpy as np

# Создание структуры данных
X = np.random.randn(1000, 10)
y = np.random.randint(0, 2, 1000)

data = ModelData(features=X, target=y)
print(f"Dataset shape: {data.shape}")
print(f"Feature names: {data.feature_names}")

# Автоматическое разбиение данных
split = create_data_split(X, y, test_size=0.2, validation_size=0.1)
print(f"Train: {split.train.n_samples}, Val: {split.validation.n_samples}, Test: {split.test.n_samples}")

Работа с UCI датасетами

from dmdslab.datasets.uci_dataset_manager import UCIDatasetManager, TaskType

# Инициализация менеджера
manager = UCIDatasetManager()

# Поиск датасетов
datasets = manager.filter_datasets(
    task_type=TaskType.BINARY_CLASSIFICATION,
    min_instances=1000,
    max_instances=10000
)

# Загрузка датасета
model_data = manager.load_dataset(73)  # Mushroom dataset
print(f"Loaded: {model_data.info.name}")
print(f"Shape: {model_data.shape}")

# Создание разбиений
split = manager.load_dataset_split(73, test_size=0.2, random_state=42)
kfold_splits = manager.load_dataset_kfold(73, n_splits=5, random_state=42)

📚 Документация

Архитектура

dmdslab/
├── datasets/           # Работа с датасетами
│   ├── ml_data_container.py    # Контейнеры данных
│   └── uci_dataset_manager.py  # UCI Repository integration
└── scripts/           # Утилиты и скрипты инициализации

Основные компоненты

ModelData

Контейнер для хранения признаков и целевой переменной с метаданными:

  • Автоматическое преобразование pandas → numpy
  • Встроенная валидация размерностей
  • Поддержка выборки и копирования
  • Интеграция с DataInfo для метаданных

DataSplit

Структура для организации train/validation/test разбиений:

  • Гибкие конфигурации разбиений
  • Автоматический расчет пропорций
  • Поддержка стратификации
  • Метаинформация о разбиении

UCIDatasetManager

Менеджер для работы с UCI ML Repository:

  • Локальная база метаданных (30+ датасетов)
  • Фильтрация по типу задач, размеру, домену
  • Кэширование загруженных данных
  • Автоматическое создание разбиений

🗄️ База данных UCI датасетов

Проект включает предварительно настроенную базу данных с метаданными популярных UCI датасетов:

# Инициализация базы данных
python scripts/initialize_uci_database.py

# Статистика
manager = UCIDatasetManager()
stats = manager.get_statistics()
print(f"Доступно датасетов: {stats['total_datasets']}")

Включает датасеты из различных доменов:

  • Финансы: Credit scoring, банковский маркетинг
  • Медицина: Диагностика, предсказание осложнений
  • Кибербезопасность: Детекция спама, фишинговых сайтов
  • Физика: Детекция частиц, астрономия
  • И многое другое: 15+ доменов, разные размеры и сложность

🔬 Для исследователей

DmDSLab создан для исследователей, которые хотят:

  • Быстро получать доступ к стандартным датасетам
  • Воспроизводимо создавать разбиения данных
  • Структурированно хранить метаданные экспериментов
  • Фокусироваться на алгоритмах, а не на подготовке данных

🛠️ Разработка

# Клонирование репозитория
git clone https://github.com/Dmatryus/DmDSLab.git
cd DmDSLab

# Установка в режиме разработки
pip install -e .

# Запуск тестов
pytest tests/

📄 Лицензия

Apache License 2.0. См. LICENSE для деталей.

👨‍💻 Автор

Dmatryus Detry - GitHub


DmDSLab - инструменты для эффективных исследований в Data Science

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dmdslab-1.0.1.tar.gz (50.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dmdslab-1.0.1-py3-none-any.whl (23.2 kB view details)

Uploaded Python 3

File details

Details for the file dmdslab-1.0.1.tar.gz.

File metadata

  • Download URL: dmdslab-1.0.1.tar.gz
  • Upload date:
  • Size: 50.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.9

File hashes

Hashes for dmdslab-1.0.1.tar.gz
Algorithm Hash digest
SHA256 72af7be7cc4c214b881337eb53dcd8502952e1b9397d0a77d2c2fdc224a66326
MD5 952e4014155d4629e650e6b3c9739384
BLAKE2b-256 3ecae2c331bcd225447e80f14ac4e7d9d564616459879d25bd67cd0d4ac5d443

See more details on using hashes here.

File details

Details for the file dmdslab-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: dmdslab-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 23.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.9

File hashes

Hashes for dmdslab-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 9eb786dc2b642a0db136ac59e1cf38866fc96157f86110b80a2912921871c8d3
MD5 677c2dd438c67e9418e1c40d7ee5931d
BLAKE2b-256 cdc5fd22f0931494051e8afcdc402865da313fe10cf44c2e7faeeeb78b750cbc

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page