Файл: северокавказский федеральный университет методы машинного обучения учебное пособие.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 10.01.2024
Просмотров: 307
Скачиваний: 4
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
15 4. Экранные формы (консольный вывод) и листинг программного кода с комментариями, показывающие порядок выполнения лабораторной работы, и результаты, полученные в ходе её выполнения.
Отчет о выполнении лабораторной работы подписывается студентом и сдается преподавателю.
5. Контрольные вопросы
1. Какие инструментальные средства используются для организации рабочего места специалиста Data Science?
2. Какие библиотеки Python используются для работы в области машинного обучения? Дайте краткую характеристику каждой библиотеке.
3. Почему при реализации систем машинного обучения широкое распространение получили библиотеки Python?
6. Список литературы
Для выполнения лабораторной работы, при подготовке к защите, а также для ответа на контрольные вопросы рекомендуется использовать следующие источники: [1-3, 9, 10].
16
ЛАБОРАТОРНАЯ РАБОТА 2. ВИЗУАЛИЗАЦИЯ ДАННЫХ
1. Цели и задачи
Цель лабораторной работы: изучение программных средств для визуализации наборов данных.
Основные задачи:
– установка и настройка matplotlib, seaborn;
–изучение основных типов графиков библиотеки matplotlib;
–изучение основных типов графиков библиотеки seaborn;
– получение навыков анализа данных по визуальным представлениям данных.
2. Теоретическое обоснование
Перед выполнением лабораторной работы необходимо ознакомиться с базовыми принципами языка Python, используя следующие источники: [1-5].
Особое внимание необходимо уделить репозитарию [5] с исходными кодами.
3. Методика и порядок выполнения работы
Перед выполнением индивидуального задания рекомендуется выполнить все пункты учебной задачи.
3.1 Учебная задача
Выполним анализ набора данных «Предсказание ухода клиента».
Данный набор данных используется в качестве учебного набора при изучении методов прогнозирования. Набор представляет собой данные об активности клиентаов телекоммуникационной компании (количество часов разговоров, видеозвонков, ночные и дневные разговоры и прочие). Набор данных подходит для обучения моделей логистической регрессии, моделей
17 классификации (CNN, kNN, Logic tree). Набор данных можно получить в репозитории [5] или на портале Kaggle [4].
Рассмотрим основные признаки, представленный в наборе. Загрузим набор данных с использованием pandas и выведем признаки набора данных
(рисунок 2.1).
Рисунок 2.1 – Загрузка данныхи получение и превичный анализ признаков
Набор данных telecom_churn.csv содержит большое количество признаков. Для детального изучения воспользуемся методом info() класса
DataFrame (рисунок 2.2).
18
Рисунок 2.2 – Информаия о признаках набора данных
Графики, используемые при анализе данных, делят не по библиотекам, с использованием которых они строятся, а по типам признаков, для анализа которых предназначены графики.
3.1.1. Визуализация количественных признаков
Для представления распределения простого коичественного признака подходит обычная гистограмма, содержащаяся во всех библиотеках
(рисунок 2.3).
19
Рисунок 2.3 – Информаия о признаках набора данных
Для построения гистограммы вызывается метод hist() класса DataFtrame.
На соамом деле используется метод из библиотеки matplotlib. Метод hist() можно использовать для построения гистограмм по нескольким признакам
(рисунок 2.4). При этом неколичественные признаки игнорируются.
Рисунок 2.4 – Применение метода hist() для визуализации распределения нескольких признаков
Аналогичный тип графика можно получить с использованием matplotlib
(рисунок 2.5). Если необходимо построить график распределения, аналогичный представленному на рисунке 2.3, то нужно выполнить дополнительные расчеты (рисунок 2.6).
20
Рисунок 2.5 – Построение гистограммы с использованием matplotlib
Рисунок 2.6 – Использование matplotlib для представления распределения значений признака
Один из эффективных типов графиков для анализа количественных признаков – это «ящие с усами» (boxplot). На рисунке 2.7 показан код и реализованный график. Для анализа нескольких признаков графики boxplot также эффективны. На рисунке 2.8 представлен код и результат построения графиков для анализа пяти штатов с максимальным объемом дневных звонков.
21
Рисунок 2.7 – График «ящик с усами» для отдельного признака
Рисунок 2.8 – Использование boxplot для анализа признака для пяти штатов
График boxplot состоит из коробки, усов и точек. Коробка показывает интерквартильный размах распределения, то есть соответственно 25% ( первая квартиль, ????1) и 75% (????3) перцентили. Черта внутри коробки обозначает медиану распределения (можно получить с использованием метода median() в pandas и numpy). Усы отображают весь разброс точек кроме выбросов, то есть минимальные и максимальные значения, которые попадают в промежуток
(????1 − 1,5 ∙ ????????????, ????3 + 1,5 ∙ ????????????), где ???????????? = ????3 − ????1 – интерквартильный размах. Точками на графике обозначаются выбросы (outliers), то есть те
22 значения, которые не вписываются в промежуток значений, заданный усами графика (рисунок 2.9).
Рисунок 2.9 – Структура графика типа «ящик с усами»
3.1.2. Категориальные признаки
Типичным категориальным признаком в анализируемом наборе данных является «Штат» (State). Под категориальный признак подходит также
«Отказ» (Churn) (хотя он является логическим). На рисунке 2.10 представлены графики типа countplot() из библиотеки seaborn, которые строят гистограммы, но не по сырым данным, а по расчитанному количеству разных значений признака. а) б)
23
Рисунок 2.10 – График countplot: а) визуализация распределения признака
Churn; б) визуализация пяти популярных штатов
3.1.3. Визуализация соотношения количественных признаков
Одним из вариантов визуализации соотношения количественных признаков является диаграмма по нескольким признакам (рисунки 2.4, 2.8).
Рассмотрим пример демонстрирующий сравнениераспределений показателей, связанных с финансовыми затратами клиентов. Упрощенно, можно сказать, что это все показатели, содержащие подстроку «charge» в имени показателя.
На рисунке 2.11 представлен код для отбора требуемых показателей.
Рисунок 2.11 – Отбор показателей, связанных с затратами клиентов
После отбора интересующих показателей можно построить диаграммы для сравнения (рисунок 2.12).
Рисунок 2.12 – Диаграммы для сравнения распределения числовых показателей
24
Часто используют попарное сравнение признаков для обеспечения широкого взгляда на набор данных (рисунок 2.13). На диаганальных графиках рисунка 2.13 представлены гистограммы распределения отдельного признака, на внедиаганальных позициях – попарные распределения.
Рисунок 2.13 – Попарное распределение признаков
Можно реализовать более сложные графики. Например, если требуется добавить к существующим признакам, целевой признак Churn (количество отказов) и раскрасить разные типы элементов, то можно воспользоваться попарными распределениями, но с отображением подмножеств отказов
(рисунок 2.14).
25
До сих пор использовались возможности библиотеки seaborn, а также методы pandas (которые производят визуализацию, оращаясь к библиотеке matplotlib). Библиотека matplotlib наиболее известная и широко применяемая при анализе данных в рамках стека технологий python.
Рисунок 2.14 – Попарное распределение признаков с визуализацией отказов
На рисунке 2.15 показан пример использования графика scatter библиотеки matplotlib, предназначенного для вывода множества точек.
26
Рисунок 2.15 – График scatter библиотеки matplotlib
На рисунке 2.16 показан пример более тонкой настройки параметров графика.
Рисунок 2.16 – Настройка графика: цвет точки зависит от целевого значения признака
27
График на рисунке 2.16 можно построить различными способами, например, можно добавлять множества точек отдельными подмножествами, указывая параметры визуализации для каждого подмножества (рисунок 2.17).
а)
б)
Рисунок 2.17 – Построение отдельных подмножеств с легендой; а) исходный код; б) полученный график
В реальных задачах машинного обучения при первичном анализе данных необходимо выявить корреляции признаков обучающей выборки. В пакете Pandas имеется встроенный инструмент для этого – метод
corr() класса
DataFrame. На рисунке 2.18 показан фрагмент вывода этой функции.
Рисунок 2.18 – Определение коррелирующих признаков набора данных
Полученная матрица имеет размер 17 × 17. Это незначительный размер
(в реальных задачах машинного обучения размеры матриц корреляции имеют порядки 10 6
− 10 10
и более), но даже для матрицы рассматриваемого набора
28 данных проанализировать корреляцию признаков вручную – трудоемкая задача. Например, можно использовать скрипты, для выделения больших коэффициентов корреляции. Но лучше использовать специальный тип графика – heatmap (рисунок 2.19).
Рисунок 2.19 – Визуализация матрица корреляции с использованием графика типа heatmap
Коррелирующие признаки обычно удаляются и не рассматриваются в процессе обучения.
3.2 Важные замечания
1. Статья о типах графиков при первичном анализе данных: https://medium.com/open-machine-learning-course/open-machine-learning-course- topic-2-visual-data-analysis-in-python-846b989675cd
2. В качестве среды разработки используйте языки программирования
Python, Java или C#. По согласованию с преподавателем студент может самостоятельно может выбрать язык программирования и среду разработки
(при этом студенту необходимо критически обосновать свой выбор).
29 2. При выборе набора данных (data set) на ресурсах [3, 4] необходимо согласовать свой выбор с другими студентами группы и преподавателем, так как работа над одинаковыми наборами данных недопустима.
3. В рамках данного лабораторного курса рекомендуется использовать инструментарий Python (библиотеки, среду разработки) для решения поставленных задач.
3.3 Индивидуальное задание
1. Подберите набор данных на ресурсах [3, 4] и согласуйте свой выбор с преподавателем. Студент может предложить синтезированный набор данных.
2. Проведите первичный анализ данных. Особое внимание следует уделить графическому представлению распрееделений признаков, визуализации взаимосвзей, позволяющие судить о наборе данных. Построение графиков желательно произвести по нескольким проекциям. При анализе данных использовать как можно более разнообразные типы графиков.
4. Содержание отчета и его форма
Отчет по лабораторной работе должен содержать:
1. Номер и название лабораторной работы; задачи лабораторной работы.
2. Реализация каждого пункта подраздела «Индивидуальное задание» с приведением исходного кода программы, диаграмм и графиков для визуализации данных.
3. Ответы на контрольные вопросы.
4. Экранные формы (консольный вывод) и листинг программного кода с комментариями, показывающие порядок выполнения лабораторной работы, и результаты, полученные в ходе её выполнения.
30
Отчет о выполнении лабораторной работы подписывается студентом и сдается преподавателю.
5. Контрольные вопросы
1. Какие инструментальные средства используются для организации рабочего места специалиста Data Science?
2. Какие библиотеки Python используются для работы в области машинного обучения? Дайте краткую характеристику каждой библиотеке.
3. Почему при реализации систем машинного обучения широкое распространение получили библиотеки Python?
4. Перечислите функции Python, которые были изучены в рамках данной лабораторной работы и которые используются для визуализации данных.
5. Какая библиотека python предназначена для управления наборами данных: numpy, pandas, sklearn, opencv, matplotlib?
6. Какая стратегия является нежелательной при обработке пропусков в данных? а) замена пропущенных значений в столбце медианным значением по данному столбцу; б) удаление строк, содержащих пропуски в данных; в) замена пропущенных значений в столбце средним арифметическим значением по данному столбцу; г) замена пропущенных значений в столбце наиболее часто встречающимся значением по данному столбцу;
7. Обоснуйте ответ на следующую проблему предварительной обработки данных: имеется независимая категориальная переменная y, которая представляет собой категориальный признак, опеределнный на домене {C#, Java, Python, R}. Нужно ли применять к данному целевому признаку OneHotEncoder?
31 8. Поясните принцип разбиения набора данных на обучающую и тестовую выборку. Какое соотношение «тестовая:обучающая» наиболее оптимально: 20:80, 50:50, 25:75, 5:95, 40:30?
9. Какой код лучше использовать при загрузке данных из csv-файла? а) dataset = read_csv(“data.csv”) б) dataset = import(“data.csv”) в) dataset = read.csv(“data.csv”) г) dataset = import.csv(“data.csv”) д) dataset = read_xls(“data.csv”)
6. Список литературы
Для выполнения лабораторной работы, при подготовке к защите, а также для ответа на контрольные вопросы рекомендуется использовать следующие источники: [1-4].
32
ЛАБОРАТОРНАЯ РАБОТА 3. МЕТРИЧЕСКИЕ МЕТОДЫ
КЛАССИФИКАЦИИ
1. Цели и задачи
Цель лабораторной работы: изучение принципов построения информационных систем с использованием метрических методов классификации.
Основные задачи:
– изучение инструментария Python для реализации алгоритмов метрической классификации;
– изучение методов оптимизации параметров метрической классификации;
– освоение модификаций kNN-метода.
2. Теоретическое обоснование
Перед выполнением лабораторной работы необходимо ознакомиться с теорией построения метрических классификаторов, используя следующие источники: [1-5]. Особое внимание необходимо уделить репозитарию [5] с исходными кодами.
3. Методика и порядок выполнения работы
Перед выполнением индивидуального задания рекомендуется выполнить все пункты учебной задачи.
3.1 Учебная задача
В рамках данной задачи рассматривается построение классификатора с использованием метода ближайших соседей. В качестве набора данных используются данные об ирисах Фишера.