ai_learning/DATASETS.md

5.2 KiB
Raw Blame History

Данные для курса

Датасеты не хранятся в 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, объём, качество и схему разбиения. Если выбор вызывает сомнение, сначала пришлите ссылку или описание — я помогу проверить пригодность.

Правила хранения

Рекомендуемая локальная структура:

data/
  raw/          # неизменённые исходники
  interim/      # промежуточные преобразования
  processed/    # готовые признаки и splits
  external/     # сторонние наборы

В Git сохраняются только скрипты загрузки, метаданные, маленькие тестовые fixtures и checksums. Персональные данные, голоса других людей, коммерческая музыка, веса моделей и токены доступа не коммитятся.

Разбиение данных

  • Разделяйте данные до подбора модели.
  • Изображения одного объекта, фрагменты одной записи и куски одной песни должны попадать только в один split.
  • Test-set открывается для финальной оценки, а не для ежедневного выбора параметров.
  • При временной задаче используйте хронологическое, а не случайное разбиение.