# Данные для курса Датасеты не хранятся в 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 открывается для финальной оценки, а не для ежедневного выбора параметров. - При временной задаче используйте хронологическое, а не случайное разбиение.