1. ЦЕЛЬ РАБОТЫ
Целью лабораторной работы является формирование начальных навыков применения методов машинного обучения для анализа данных с использованием библиотеки Scikit-learn, включая:
· подготовку признаков для построения моделей;
· разделение данных на обучающую и тестовую выборки;
· построение простых моделей регрессии, классификации и кластеризации;
· оценку качества моделей;
· интерпретацию результатов моделирования.
Лабораторная работа завершает этап разведочного анализа данных и демонстрирует переход от анализа данных к построению аналитических моделей.
2. ТЕОРЕТИЧЕСКИЕ ПОЛОЖЕНИЯ
2.1. Постановка задачи машинного обучения
Машинное обучение используется для построения моделей, которые позволяют выявлять закономерности в данных и делать прогнозы. Примеры таких задач приведены в таблице 6.1.
Таблица 6.1 – Основные типы задач машинного обучения
|
Тип задачи |
Пример |
|
Регрессия |
Прогноз популярности трека |
|
Классификация |
Популярный / непопулярный трек |
|
Кластеризация |
Группы похожих треков |
В задачах анализа данных обычно выделяют три основных типа задач: регрессию, классификацию и кластеризацию.
2.2. Подготовка данных для построения модели
Перед обучением модели необходимо выделить:
· матрицу признаков (X) – набор характеристик объектов;
· целевую переменную (y) – показатель, который требуется прогнозировать.
Например, при прогнозировании популярности трека можно использовать:
X = energy, danceability, tempo y = views
Матрица признаков используется для обучения модели, а целевая переменная – для оценки качества прогнозирования.
2.3. Разделение обучающей и тестовой выборки
Для оценки качества модели данные обычно разделяются на две части:
· обучающую выборку – используется для обучения модели;
· тестовую выборку – используется для проверки результатов.
В библиотеке Scikit-learn для этого используется функция:
train_test_split()
Такой подход позволяет проверить, насколько хорошо модель работает на новых данных.
2.4. Линейная регрессия
Линейная регрессия используется для прогнозирования числовых значений на основе линейной зависимости между признаками.
Модель
линейной регрессии имеет вид:
,
где
– признаки,
– коэффициенты модели.
В Python линейная регрессия реализуется с помощью класса:
LinearRegression
2.5. Классификация
Классификация применяется в тех случаях, когда требуется определить принадлежность объекта к определённой категории. Например, можно определить:
· популярный трек;
· непопулярный трек.
Для решения таких задач часто используется логистическая регрессия.
2.6. Кластеризация
Кластеризация позволяет разделить объекты на группы на основе сходства признаков. Один из наиболее распространённых алгоритмов – k-means. Алгоритм:
· выбирает заданное число кластеров;
· распределяет объекты по группам;
· минимизирует расстояние между объектами внутри кластера.
2.7. Оценка качества модели
Для оценки качества модели используются различные метрики. Для задач регрессии обычно применяются:
· MSE – средняя квадратичная ошибка;
· R² – коэффициент детерминации.
· Для задач классификации используется:
· accuracy – доля правильно классифицированных объектов.
2.8. Использование внешних наборов данных
Во второй части лабораторной работы обучающийся применяет изученные методы анализа к новому набору данных, полученному из открытых источников. Цель данной части работы – показать, что методы анализа данных:
· не зависят от конкретного набора данных;
· могут применяться к различным типам задач.
3. ИСХОДНЫЕ ДАННЫЕ
В лабораторной работе используется учебный набор данных:
data/spotify_edu_dataset_ru_complex.csv
Набор данных содержит характеристики музыкальных треков, включая:
· длительность композиции (duration_sec);
· энергичность (energy);
· танцевальность (danceability);
· темп (tempo);
· количество просмотров (views).
Данные были подготовлены и исследованы в предыдущих лабораторных работах: ЛР2 – очистка и подготовка данных; ЛР3 – численный анализ с использованием NumPy; ЛР4 – табличный анализ с использованием Pandas; ЛР5 – визуализация данных. В данной лабораторной работе эти данные используются для построения аналитических моделей.
4. ДОПОЛНИТЕЛЬНЫЕ УЧЕБНЫЕ РЕСУРСЫ
Для изучения примеров анализа данных могут использоваться дополнительные учебные ресурсы (таблицы 6.2, 6.3).
Таблица 6.2 – Видеолекции по анализу данных
|
Наименование |
Ссылка |
|
Анализ данных на Python за 2 недели |
|
|
Почему Python – лучший язык для анализа данных |
|
|
Инструменты аналитика |
Таблица 6.3 – Примеры проектов анализа данных
|
Dataset |
Ссылка |
|
Weather dataset |
|
|
Cars dataset |
|
|
Police dataset |
|
|
COVID-19 dataset |
|
|
London Housing dataset |
|
|
Census dataset |
|
|
Spotify-YouTube dataset |
|
|
HR dataset |
|
|
Salary dataset |
Каждый обучающийся выполняет индивидуальный вариант задания, назначенный преподавателем. Лабораторная работа состоит из двух частей:
– Часть 1 – работа с учебным набором данных;
– Часть 2 – работа с реальным набором данных.
Часть 1. Работа с учебным набором данных
Все варианты выполняются на основе одного и того же набора данных:
data/spotify_edu_dataset_ru_complex.csv
При выполнении работы допускается использование библиотек:
· NumPy
· Pandas
· Scikit-learn
· Matplotlib / Seaborn
Соответствие вариантов и заданий приведено в таблице 6.4. В рамках задания необходимо:
· подготовить данные для построения модели;
· построить модель машинного обучения;
· оценить качество модели;
· выполнить интерпретацию полученных результатов.
Таблица 6.4 – Индивидуальные варианты заданий (часть 1)
|
№ вари-анта |
Тема задания |
Требуемые действия |
|
1 |
Построить модель прогнозирования популярности трека (views) по признакам energy, danceability, tempo, duration_sec |
1. Подготовить
матрицу признаков. |
|
2 |
Построить модель прогнозирования популярности трека (views) |
1. Подготовить
признаки для модели. |
|
3 |
Исследовать зависимость между показателями energy и danceability |
1. Построить
диаграмму рассеяния (scatter plot). |
|
4 |
Построить модель прогнозирования tempo по признакам energy, danceability и duration_sec |
1. Подготовить
признаки для модели. |
|
5 |
Исследовать влияние длительности трека (duration_sec) на популярность (views) |
1. Построить
диаграмму рассеяния. |
|
6 |
Построить модель классификации популярных и непопулярных треков |
1. Сформировать
бинарный признак популярности (views > медианы). |
|
7 |
Выполнить кластеризацию треков по признакам energy, danceability и tempo |
1. Подготовить
данные для кластеризации. |
|
8 |
Исследовать корреляционную структуру признаков |
1. Рассчитать
матрицу корреляций. |
|
9 |
Исследовать распределение популярности треков (views) |
1. Построить
гистограмму распределения views. |
|
10 |
Построить модель прогнозирования показателя danceability по признакам energy, tempo и duration_sec |
1. Подготовить
данные для моделирования. |
Часть 2. Работа с реальным набором данных
Во второй части лабораторной работы обучающийся выполняет анализ реального набора данных, полученного из открытых источников. В качестве источников наборов данных могут использоваться:
· Kaggle Datasets – https://www.kaggle.com/datasets
· UCI Machine Learning Repository – https://archive.ics.uci.edu
· Google Dataset Search – https://datasetsearch.research.google.com
Перед выполнением задания необходимо выбрать набор данных, содержащий:
· не менее 200 наблюдений;
· не менее 3–5 признаков.
Требуемые действия. Для выбранного набора данных необходимо:
1) Загрузить dataset в среду Python.
2) Выполнить первичный анализ данных:
· определить типы признаков;
· выявить наличие пропусков.
3) Подготовить данные для анализа и построения модели.
4) Построить одну из моделей машинного обучения:
· линейная регрессия;
· логистическая регрессия;
· кластеризация.
5) Оценить качество полученной модели.
6) Построить графическую интерпретацию результатов.
7) Сделать аналитический вывод по результатам анализа.
Соответствие вариантов заданий и рекомендуемых наборов данных приведено в таблице 6.5.
Таблица 6.5 – Индивидуальные варианты заданий (часть 2)
|
№ вари-анта |
Набор данных |
Задание |
|
1 |
Weather dataset |
Построить модель прогнозирования температуры |
|
2 |
Cars dataset |
Исследовать зависимость цены автомобиля от его характеристик |
|
3 |
Police dataset |
Выполнить анализ факторов полицейских остановок |
|
4 |
COVID-19 dataset |
Проанализировать динамику распространения заболевания |
|
5 |
Housing dataset |
Построить модель прогнозирования стоимости жилья |
|
6 |
Census dataset |
Выполнить классификацию уровня дохода |
|
7 |
HR dataset |
Исследовать факторы увольнения сотрудников |
|
8 |
Spotify dataset |
Исследовать факторы популярности музыкальных треков |
|
9 |
Salary dataset |
Построить модель прогнозирования заработной платы |
|
10 |
Любой dataset, выбранный обучающимся |
Выполнить регрессионный или кластерный анализ |
5. ИСПОЛЬЗОВАНИЕ ЭТАЛОНА
Для выполнения лабораторной работы допускается использование эталонного кодового каркаса, приведённого в Приложении 7 («Эталон выполнения лабораторной работы №6»). Эталон демонстрирует пример построения простой модели машинного обучения, включая подготовку данных, обучение модели, оценку её качества и визуализацию результатов. Использование эталона не освобождает обучающегося от самостоятельной реализации индивидуального задания и интерпретации полученных результатов.
6. ТРЕБОВАНИЯ К ОТЧЁТУ
Отчёт по лабораторной работе должен содержать:
1) Цель работы;
2) Краткое изложение теоретических положений;
3) Код программы с комментариями;
4) Описание выбранного индивидуального варианта;
5) Результаты построения модели;
6) Оценку качества модели;
7) Интерпретацию полученных результатов;
8) Ответы на контрольные вопросы;
9) Выполнение заданий к сро;
10) Итоговый вывод.
7. КОНТРОЛЬНЫЕ ВОПРОСЫ
1) Что такое машинное обучение и какие задачи оно решает?
2) Чем отличается задача регрессии от задачи классификации?
3) Для чего используется разделение данных на обучающую и тестовую выборки?
4) Что показывает коэффициент детерминации R2R^2R2?
5) Для чего применяется кластеризация данных?
8. ЗАДАНИЯ К САМОСТОЯТЕЛЬНОЙ РАБОТЕ ОБУЧАЮЩЕГОСЯ
1) Построить модель линейной регрессии для прогнозирования одного из числовых признаков.
2) Изменить набор признаков и сравнить результаты модели.
3) Построить scatter plot зависимости реальных и предсказанных значений.
4) Проанализировать влияние выбранных признаков на результат модели.
5) Сделать вывод о качестве полученной модели.
9. ВЫВОД
В выводе необходимо показать:
· роль машинного обучения в анализе данных;
· какие закономерности удалось выявить при построении моделей;
· каким образом результаты моделирования дополняют методы численного, табличного и визуального анализа данных.
10. МЕТОДИЧЕСКАЯ СВЯЗЬ
В лабораторной работе №6 обучающийся применяет методы машинного обучения для анализа данных и построения моделей. Освоенные методы являются основой для дальнейшего изучения более сложных методов анализа данных и машинного обучения, включая задачи классификации, прогнозирования и интеллектуального анализа данных.