ai_learning/DATASETS.md

77 lines
5.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Данные для курса
Датасеты не хранятся в Git: они большие, имеют отдельные лицензии и иногда требуют
согласия с условиями использования. Для каждого задания используется один из трёх
режимов.
## 1. Генерируем сами
Это позволяет знать правильный ответ и проверять реализацию:
- NumPy, линейная алгебра и оптимизация — случайные матрицы и заданные функции;
- классификация/кластеризация — `sklearn.datasets.make_classification`,
`make_blobs`, `make_moons`, `make_circles`;
- вероятность — симуляции Монте-Карло;
- звук — синусоиды, шум, импульсы и click track с известным BPM;
- нейросети — XOR и небольшие синтетические выборки.
Синтетические данные нужны для проверки математики, но не заменяют итоговую
проверку на реальных данных.
## 2. Загружаем готовые открытые наборы
Загрузка выполняется при начале модуля, обычно через sklearn, torchvision,
Hugging Face Datasets или официальный архив.
- Табличный ML: Breast Cancer Wisconsin, Wine, California Housing либо OpenML.
- PCA/кластеры: sklearn Digits и синтетические геометрии.
- Computer Vision: Fashion-MNIST, CIFAR-10 и Oxford-IIIT Pet. Последний подходит
для эксперимента с кошками/собаками и transfer learning.
- Рукописные символы: MNIST и EMNIST.
- Речь: собственные записи, LibriSpeech/Multilingual LibriSpeech или Common Voice
после проверки актуальной лицензии и условий.
- NLP: Tiny Shakespeare для учебной LM; AG News/IMDb для классификации.
- LLM fine-tuning: небольшой самостоятельно проверенный instruction-набор из
источников с совместимой лицензией.
Перед загрузкой проверяйте официальный источник, лицензию и объём. В отчёте
фиксируйте версию/дату, способ получения и checksum либо идентификатор dataset.
## 3. Выбираем самостоятельно
Самостоятельный выбор нужен только там, где он является частью навыка:
- EDA — выбрать интересный открытый табличный набор;
- transfer learning — можно заменить Oxford-IIIT Pet своим небольшим набором;
- транскрибация — записать собственную речь или выбрать разрешённый корпус;
- osu! — использовать собственную либо Creative Commons музыку;
- capstone — подобрать данные под самостоятельно сформулированную задачу.
Это не означает «найти что-нибудь и надеяться». Перед работой нужно согласовать:
источник, лицензию, target, объём, качество и схему разбиения. Если выбор вызывает
сомнение, сначала пришлите ссылку или описание — я помогу проверить пригодность.
## Правила хранения
Рекомендуемая локальная структура:
```text
data/
raw/ # неизменённые исходники
interim/ # промежуточные преобразования
processed/ # готовые признаки и splits
external/ # сторонние наборы
```
В Git сохраняются только скрипты загрузки, метаданные, маленькие тестовые fixtures
и checksums. Персональные данные, голоса других людей, коммерческая музыка, веса
моделей и токены доступа не коммитятся.
## Разбиение данных
- Разделяйте данные до подбора модели.
- Изображения одного объекта, фрагменты одной записи и куски одной песни должны
попадать только в один split.
- Test-set открывается для финальной оценки, а не для ежедневного выбора параметров.
- При временной задаче используйте хронологическое, а не случайное разбиение.