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.0.tar.gz (54.5 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.0-py3-none-any.whl (23.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: dmdslab-1.0.0.tar.gz
  • Upload date:
  • Size: 54.5 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.0.tar.gz
Algorithm Hash digest
SHA256 3fbc8f16fb3d7d21ee143f9d130ce13cad2fde5e6e5e9ccdefebb8e942f8c714
MD5 3b9750fe7bffd6c842e8ad7d60c82039
BLAKE2b-256 4d1888b93a0d38f8586796dd85408eb756c89acfcdca8a9051d89de48de6f36a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dmdslab-1.0.0-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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5115ff711fd680dde09f7dc9b030c3fd09c22f52da228540bf7e59d37209941e
MD5 8a35d37c5e4d6c8231e41c70db978c18
BLAKE2b-256 c219718f944501d6d7af541d0d1c7a30790ea3c7ec6a824e569daf8a06890736

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