Как сделать датасет: пошаговая инструкция для начинающих

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Для кого эта статья:

  • студенты и начинающие аналитики данных
  • практикующие специалисты в области аналитики и машинного обучения
  • предприниматели и специалисты, заинтересованные в анализе данных для бизнеса

Датасеты — это сердце любого проекта в сфере аналитики и машинного обучения. Представьте: у вас есть блестящая идея для прогнозирования рыночных трендов или алгоритма распознавания изображений, но без качественных данных она останется лишь идеей. Создание собственного датасета может показаться сложной задачей, особенно если вы только начинаете свой путь в мире аналитики. Однако с правильным подходом и пошаговыми инструкциями этот процесс станет не только понятным, но и увлекательным. 🚀

Хотите не просто создавать датасеты, но и профессионально их анализировать? Курс «Аналитик данных» с нуля от Skypro даст вам фундаментальные навыки работы с данными, от построения SQL-запросов до визуализации результатов в Tableau и Power BI. За 9 месяцев вы научитесь не только собирать и структурировать данные, но и извлекать из них ценные бизнес-инсайты. Плюс — практические кейсы от реальных компаний для вашего портфолио!

Что такое датасет и зачем его делать

Датасет — это структурированный набор данных, который используется для решения определенных задач в области аналитики и машинного обучения. Проще говоря, это таблица или совокупность таблиц, содержащих информацию, организованную для дальнейшего анализа.

Датасеты могут включать различные типы данных:

  • Числовые значения (например, возраст, доход, температура)
  • Категориальные данные (пол, регион, группа товаров)
  • Временные ряды (даты продаж, почасовые измерения)
  • Текстовые данные (отзывы клиентов, новостные статьи)
  • Медиаданные (изображения, аудио, видео)

Михаил Сергеев, ведущий дата-аналитик

Мой первый самостоятельный датасет я создал еще будучи студентом. Мне нужно было проанализировать факторы, влияющие на продажи в сфере электронной коммерции, но готовых данных не было. Я потратил неделю, вручную собирая информацию с разных маркетплейсов: цены, рейтинги, количество отзывов и другие параметры для 500 товаров. Это был муторный процесс, но когда я построил первую модель и увидел, что она действительно выявляет значимые закономерности — это было непередаваемое ощущение! Сейчас я, конечно, использую автоматизированные инструменты для сбора данных, но тот первый опыт дал мне глубокое понимание структуры данных и их особенностей.

Зачем создавать собственные датасеты, если в интернете доступно множество готовых? Есть несколько веских причин:

ПричинаОписаниеПример применения
Уникальность задачиГотовые датасеты могут не содержать специфических данных для решения вашей конкретной задачиАнализ покупательского поведения для нишевого продукта
АктуальностьМногие публичные датасеты могут быть устаревшимиПрогнозирование трендов на 2025 год
Контроль качестваПри создании собственного датасета вы полностью контролируете процесс сбора и обработки данныхМедицинские исследования, требующие высокой точности
КонфиденциальностьРабота с внутренними данными компании, которые нельзя публиковатьАнализ внутренних бизнес-процессов

Создание собственного датасета также позволяет глубже понять предметную область и особенности данных, что критически важно для корректной интерпретации результатов анализа. 📊

Кинга Идем в IT: пошаговый план для смены профессии

Определение цели и сбор данных для датасета

Прежде чем начать сбор данных, необходимо четко определить цель создания датасета. Этот шаг часто недооценивают, что приводит к неэффективному использованию ресурсов и получению набора данных, не решающего изначальную задачу.

Формулировка четкой цели помогает определить:

  • Какие именно данные нужно собирать
  • В каком объеме они необходимы
  • Какой уровень детализации требуется
  • Какие временные рамки должны быть охвачены

После определения цели можно приступить к сбору данных. Существует несколько основных способов получения информации для датасета:

Анна Климова, руководитель отдела аналитики

В 2023 году наша команда создавала прогностическую модель потребительского спроса для сети магазинов. Мы начали с определения цели: "Создать датасет для прогнозирования ежедневных продаж в разрезе товарных категорий с точностью до 85%". Такая четкая формулировка сразу определила структуру данных и необходимые источники.

Мы собирали данные из трех источников: истории продаж, маркетинговых акций и погодных условий. Критичным моментом стало объединение этих разрозненных данных — мы потратили почти две недели только на то, чтобы правильно синхронизировать временные метки и устранить несоответствия между системами. Но когда мы запустили первые тесты модели, точность прогнозов превзошла ожидания, достигнув 91%. Этот кейс научил меня одному: четкость в определении цели перед сбором данных экономит недели работы на последующих этапах.

Методы сбора данных для датасета:

МетодПреимуществаНедостаткиПримеры инструментов
Веб-скрейпингАвтоматизация сбора данных из открытых источниковЮридические ограничения, изменения в структуре сайтовBeautiful Soup, Scrapy (Python)
API-интеграцииСтруктурированные данные, официальный доступОграничения по количеству запросов, платный доступRequests (Python), Postman
Опросы и анкетыЦелевые данные, контроль вопросовВременные затраты, субъективность ответовGoogle Forms, SurveyMonkey
Сенсоры и IoT-устройстваТочные измерения, реальное времяСтоимость оборудования, техническая сложностьArduino, Raspberry Pi
Открытые источники данныхГотовые наборы данных, экономия времениМожет требоваться дополнительная обработкаKaggle, Data.gov, UCI Repository

При сборе данных важно учитывать этические и правовые аспекты. В 2025 году законодательство о защите персональных данных стало еще строже, поэтому убедитесь, что ваш процесс сбора данных соответствует требованиям GDPR, CCPA и других применимых регуляторных норм. 🔒

Определите заранее объем выборки — слишком маленький датасет может не отражать реальные закономерности, а слишком большой потребует дополнительных вычислительных ресурсов. В большинстве случаев оптимальный размер датасета зависит от:

  • Сложности выявляемых закономерностей
  • Количества признаков (features)
  • Вариативности данных
  • Типа используемого алгоритма машинного обучения

Обработка и структурирование данных в датасете

После сбора "сырых" данных начинается, пожалуй, самый трудоемкий этап — обработка и структурирование. По статистике, аналитики тратят до 70% рабочего времени именно на очистку и подготовку данных, и лишь 30% — на анализ и моделирование.

Основные шаги обработки данных включают:

  1. Очистка данных — удаление или корректировка некорректных, неполных, дублирующихся или нерелевантных записей
  2. Обработка пропущенных значений — заполнение пробелов или удаление строк с отсутствующими данными
  3. Нормализация и стандартизация — приведение числовых значений к одному масштабу
  4. Кодирование категориальных переменных — преобразование текстовых категорий в числовой формат
  5. Создание новых признаков — генерация дополнительных информативных переменных на основе имеющихся данных

Рассмотрим пример обработки "сырого" датасета с информацией о продажах:

Python
Скопировать код
# Пример кода на Python для обработки данных
import pandas as pd
import numpy as np

# Загрузка "сырого" датасета
df = pd.read_csv('raw_sales_data.csv')

# Удаление дубликатов
df = df.drop_duplicates()

# Обработка пропущенных значений
df['price'] = df['price'].fillna(df['price'].median()) # Заполнение медианой
df = df.dropna(subset=['customer_id']) # Удаление строк с отсутствующим ID

# Преобразование типов данных
df['purchase_date'] = pd.to_datetime(df['purchase_date'])
df['is_promotion'] = df['is_promotion'].astype(bool)

# Создание новых признаков
df['month'] = df['purchase_date'].dt.month
df['day_of_week'] = df['purchase_date'].dt.dayofweek

# Кодирование категориальных переменных
df = pd.get_dummies(df, columns=['product_category'], drop_first=True)

# Сохранение обработанного датасета
df.to_csv('processed_sales_data.csv', index=False)

При структурировании датасета важно учитывать конечную цель его использования. Например, для задач машинного обучения может потребоваться разделение данных на обучающую, валидационную и тестовую выборки.

Структурированный датасет должен удовлетворять следующим требованиям:

  • Консистентность — данные должны быть согласованы и непротиворечивы
  • Полнота — все необходимые поля должны быть заполнены
  • Точность — значения должны соответствовать реальности
  • Уникальность — отсутствие повторяющихся записей (если это не предусмотрено форматом)
  • Релевантность — все данные должны соответствовать цели исследования

Особое внимание стоит уделить обработке выбросов — аномальных значений, которые могут существенно исказить результаты анализа. Для выявления выбросов можно использовать визуальные методы (диаграммы размаха, гистограммы) или статистические тесты (Z-score, метод межквартильного размаха). 📝

Планируете карьеру в аналитике данных, но не знаете, с чего начать? Пройдите Тест на профориентацию от Skypro! Всего за 5 минут вы узнаете, подходит ли вам профессия аналитика, и получите персональные рекомендации по развитию навыков работы с данными. Тест разработан экспертами с учетом актуальных требований рынка труда 2025 года и поможет определить, какие аспекты создания и анализа датасетов стоит изучить в первую очередь.

Инструменты для создания датасета с нуля

Выбор инструментов для создания датасета зависит от ваших навыков программирования, объема данных и конкретных задач. Рассмотрим наиболее популярные и эффективные решения 2025 года. 🛠️

Программные языки и библиотеки:

  • Python — безусловный лидер в обработке данных благодаря простоте синтаксиса и богатой экосистеме библиотек:
  • Pandas — мощный инструмент для манипуляций с табличными данными
  • NumPy — библиотека для научных вычислений
  • Scrapy и Beautiful Soup — для веб-скрейпинга
  • Dask — для обработки больших массивов данных, не помещающихся в оперативную память
  • R — специализированный язык для статистической обработки:
  • tidyverse — набор пакетов для обработки и визуализации данных
  • data.table — для эффективной работы с большими таблицами
  • SQL — для работы с реляционными базами данных:
  • PostgreSQL, MySQL — для хранения и запросов к структурированным данным
  • SQLite — для локального хранения небольших датасетов

Среды для работы с данными:

  • Jupyter Notebook/JupyterLab — интерактивная среда для экспериментов и визуализации
  • Google Colab — бесплатная облачная версия Jupyter с доступом к GPU
  • RStudio — интегрированная среда разработки для R
  • VSCode с расширениями для данных — универсальная среда с поддержкой различных языков

Инструменты без программирования (No-code/Low-code):

  • Airtable — гибрид таблиц и базы данных с интуитивным интерфейсом
  • Excel/Google Sheets — для создания небольших датасетов и базового анализа
  • Tableau Prep — визуальный инструмент для подготовки данных
  • KNIME — платформа для анализа данных на основе визуального программирования

Сравнение инструментов по ключевым параметрам:

ИнструментСкорость работыОбъем данныхПорог входаГибкость
Python (Pandas)ВысокаяДо нескольких ГБСреднийОчень высокая
RСредняяДо нескольких ГБСреднийВысокая
SQLОчень высокаяСотни ГБ и большеСреднийСредняя
Excel/Google SheetsНизкаяДо 1-2 млн строкНизкийНизкая
KNIMEСредняяДо десятков ГБНизкийСредняя
BigQuery (Google)Очень высокаяТерабайтыВысокийСредняя

Для масштабных проектов с большими объемами данных в 2025 году становятся все популярнее облачные решения:

  • Google BigQuery — для аналитики больших данных
  • Amazon Athena — для запросов к данным в S3
  • Snowflake — облачное хранилище данных с высокой производительностью
  • Databricks — платформа для инженерии данных на основе Apache Spark

Оптимальный выбор инструмента зависит от ваших конкретных потребностей, бюджета и технических навыков. Для начинающих рекомендуется начать с Python и библиотеки Pandas, которая обеспечивает хороший баланс между доступностью и функциональностью.

Python
Скопировать код
# Пример создания простого датасета с нуля в Python
import pandas as pd
import numpy as np
from datetime import datetime, timedelta

# Генерация синтетических данных о продажах
np.random.seed(42) # для воспроизводимости результатов

# Создаем базовые параметры
n_records = 1000
start_date = datetime(2025, 1, 1)
product_categories = ['Electronics', 'Clothing', 'Home', 'Books', 'Food']
customer_segments = ['New', 'Regular', 'VIP']
regions = ['North', 'South', 'East', 'West', 'Central']

# Генерируем датасет
dates = [start_date + timedelta(days=i) for i in range(n_records)]
categories = np.random.choice(product_categories, n_records)
prices = np.round(np.random.uniform(10, 500, n_records), 2)
quantities = np.random.randint(1, 10, n_records)
customer_ids = np.random.randint(1000, 9999, n_records)
segments = np.random.choice(customer_segments, n_records)
regions = np.random.choice(regions, n_records)
ratings = np.round(np.random.uniform(1, 5, n_records), 1)

# Создаем DataFrame
sales_df = pd.DataFrame({
'date': dates,
'product_category': categories,
'price': prices,
'quantity': quantities,
'total_amount': prices * quantities,
'customer_id': customer_ids,
'customer_segment': segments,
'region': regions,
'rating': ratings
})

# Сохраняем датасет
sales_df.to_csv('synthetic_sales_data.csv', index=False)
print("Датасет создан и сохранен успешно!")

Валидация и использование готового датасета

После создания датасета необходимо убедиться в его пригодности для решения поставленных задач. Валидация — критически важный этап, который поможет выявить скрытые проблемы перед использованием данных в аналитических моделях.

Основные методы валидации датасета:

  1. Статистический анализ — проверка распределения данных, выявление аномалий и корреляций:
    • Описательная статистика (среднее, медиана, стандартное отклонение)
    • Корреляционный анализ между переменными
    • Тесты на нормальность распределения
  2. Визуальный анализ — построение графиков для оценки качества данных:
    • Гистограммы и плотности распределения
    • Диаграммы размаха (boxplot) для выявления выбросов
    • Тепловые карты корреляций
  3. Проверка бизнес-правил — верификация данных на соответствие логике предметной области:
    • Проверка диапазонов значений (например, цена не может быть отрицательной)
    • Проверка логических ограничений (например, дата доставки не может быть раньше даты заказа)
  4. Валидация через модель — оценка работы простой модели на данных для выявления проблем:
    • Построение базовой модели (baseline)
    • Анализ ошибок модели для выявления проблемных данных

Для валидации датасета можно использовать следующий чек-лист:

  • ⬜ Отсутствуют неправильные типы данных
  • ⬜ Пропущенные значения обработаны корректно
  • ⬜ Выбросы идентифицированы и обработаны
  • ⬜ Данные соответствуют бизнес-логике
  • ⬜ Распределение значений логично и ожидаемо
  • ⬜ Размер выборки достаточен для статистической значимости
  • ⬜ Категориальные переменные закодированы правильно
  • ⬜ Временные ряды не имеют разрывов (если это необходимо)

После успешной валидации ваш датасет готов к использованию. В зависимости от цели создания, датасет может применяться для:

  • Аналитики и бизнес-отчетности — для выявления трендов и закономерностей
  • Машинного обучения — для тренировки прогностических моделей
  • Научных исследований — для проверки гипотез
  • Визуализации — для создания дашбордов и презентаций
  • Обогащения других данных — как дополнительный источник информации

Если вы планируете использовать датасет для задач машинного обучения, следует разделить его на несколько выборок:

Python
Скопировать код
# Пример кода для разделения датасета на обучающую, 
# валидационную и тестовую выборки
from sklearn.model_selection import train_test_split

# Предполагаем, что df — наш подготовленный датасет,
# target — целевая переменная, features — признаки

# Сначала отделяем тестовую выборку (20% данных)
X_train_val, X_test, y_train_val, y_test = train_test_split(
features, target, test_size=0.2, random_state=42
)

# Затем разделяем оставшиеся данные на обучающую и валидационную выборки
X_train, X_val, y_train, y_val = train_test_split(
X_train_val, y_train_val, test_size=0.25, random_state=42 # 0.25 * 0.8 = 0.2 от всего датасета
)

print(f"Размеры выборок: обучающая – {X_train.shape}, "
f"валидационная – {X_val.shape}, тестовая – {X_test.shape}")

Для использования датасета коллегами или распространения в сообществе важно обеспечить хорошую документацию, которая должна включать:

  • Описание источников данных и методологии сбора
  • Словарь данных с описанием всех переменных
  • Информацию о предобработке и трансформациях
  • Примеры использования и потенциальные ограничения
  • Лицензию и условия использования

Не забывайте об этических аспектах работы с данными. Если ваш датасет содержит персональную информацию, убедитесь в соблюдении требований законодательства и безопасности данных. 🔐

Создание качественного датасета — это фундамент успешного аналитического проекта. Следуя описанным в статье шагам, вы сможете собрать, обработать и структурировать данные, которые действительно помогут в решении поставленных задач. Помните, что в работе с данными важна не только техническая сторона, но и понимание предметной области. Качественный датасет, созданный с учетом всех нюансов, даст вам преимущество в любой аналитической задаче и поможет принимать более обоснованные решения.