Файл: северокавказский федеральный университет методы машинного обучения учебное пособие.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 10.01.2024
Просмотров: 310
Скачиваний: 4
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
33
В рамках данной лабораторной работы рекомендуется использование библиотеки pandas. Pandas – это библиотека Python, предоставляющая широкие возможности для анализа данных. Данные, с которыми работают специалисты Data Science, часто хранятся в табличном формате (.csv, .tsv,
.xlsx, …). С помощью библиотеки Pandas данные удобно загружать, обрабатывать и анализировать с помощью SQL-подобных запросов. Pandas предоставляет широкие возможности визуального анализа табличных данных в связке с библиотеками Matplotlib и Seaborn.
Основными структурами данных в Pandas являются классы Series и
DataFrame. Первый из них представляет собой одномерный индексированный массив данных некоторого фиксированного типа. Второй – это двухмерная структура данных, представляющая собой таблицу, каждый столбец которой содержит данные одного типа. Можно представлять её как словарь объектов типа Series. Структура DataFrame отлично подходит для представления реальных данных: строки соответствуют признаковым описаниям отдельных объектов, а столбцы соответствуют признакам.
1.
На рис. 3.1 представлен код в Python Notebook для загрузки исходного набора данных.
Рисунок 3.1 – Использование pandas для загрузки данных
Слудует обратить внимание, что первая строка набора данных интерпретировалась как шапка таблицы (название столбцов). Данную неточность необходимо исправить следующим образом (рис. 3.2). В таком случае столбцы получат порядковые номера в качестве названий столбцов.
34
Рисунок 3.2 – Добавление шапки DataFrame по умолчанию
Исследователь также может дать символьные имена столбцам при загрузке (рис. 3.3).
Рисунок 3.3 – Добавление шапки DataFrame с символьными именами столбцов
2.
После загрузки данных можно визуализировать полученныйы набор данных. Для визуализации будем использовать библиотеку seaborn
(рис. 3.4).
Рисунок 3.4 – Добавление шапки DataFrame по умолчанию
35
В результате будет выведен график, отображающий распределение объектов попарно по различным признакам (рис. 3.5).
Рисунок 3.5 – Попарное признаковое распределение ирисов
На графике попарного распределения видно преимущество символьного обозначения столбцов – график легче интерпретировать. Отдельные классы не отмечаются различными цветами, но видно, что на отдельных подграфиках множества точек разделены. Следует обратить внимание на подграфики, расположенные по диаганали. Подумайте, что они отображают?
3.
Для придания отдельным классам своих цветов необходимо указать, по какому признаку разделяются точки (рис. 3.6).
36
Рисунок 3.6 – Построение графика с указанием признака отдельных классов
Результат представлен на рис. 3.7.
Рисунок 3.7 – Попарное признаковое распределение ирисов с разделением на классы
Можно изменить маркеры каждого класса. Для этого необходимо использовать код: sb.pairplot(d, hue='answer', markers=["o", "s", "D"]).
4.
Перейдем к построению модели. Модель метрической классификации должна обеспечивать следующий алгоритм работы: пользователь вводит новое признаковое описание объекта (объект отсутствует
37 в обучающей выборке), а алгоритм классификации относит новый объект к одному из классов ирисов.
5.
Существует несколько вариаций метода ближайших соседей.
Каждая модель предполагает наличие различных параметров для оптимизации.
Воспользуемся библиотекой scikit для построения классификатора (рис. 3.8).
Рисунок 3.8 – Основные этапы решения задачи классификации методом ближайших соседей с использованием библиотеки scikit
Для прелставленного объекта X_test попробуйте поменять значение признаков и проследите за изменением значения выходного класса.
6.
Модель построена и выдает ответ для новых (отсутствующих в исходной выборке) объектов. Но, анализируя код на рис. 3.8, следует отметить следующие недостатки такого подхода:
– в качестве количества ближайших соседей выбрано значение K=3, выбор данного значения не обосновывается, но в данном методе именно данный параметр должен оптимизироваться;
38
– отсутствует какое-либо графическое представление модели, нет визуализации процесса принятия решения.
Исправим данные недостатки.
7.
Займемся обоснованием выбора оптимального значения количества ближайших соседей. Для этого будем использовать простейшую оценку качества hold-out (рис. 3.9).
Рисунок 3.9 – Оценка точности классификатора с использованием методики hold-out
В качестве эксперимента попробуйте поменять значение количества соседей и расмотрите изменение точности класификатора.
8.
Еще одна оценка качества – cross validation (CV) error. На рис. 3.10 показан алгоритм получения оценки точности классификации CV и процедура выбора оптимального значения количества соседей в алгоритме kNN на основе данной оценки.
39
Рисунок 3.10 – Реализация процедуры выбора оптимального параметра на основе cross validation error
Вывод для данного кода представлен на рис. 3.11.
Рисунок 3.11 – Визуализация выбора оптимального параметра на основе cross validation error
40 3.2 Важные замечания
1. При выборе набора данных (data set) на ресурсах [3, 4] необходимо согласовать свой выбор с другими студентами группы и преподавателем с целью недопустимости выбора одинаковых вариантов.
2. В рамках данного лабораторного курса рекомендуется использовать инструментарий Python (библиотеки, среду разработки) для решения поставленных задач.
3. При выборе набора данных следует отдавать предпочтение тем наборам, которые имеют следующие характеристики: содержат не более 5 признаков на объект; все признаки – числовые; желательно отсутствие пропусков в данных.
3.3 Индивидуальное задание
1. Студент самостоятельно выбирает набор данных на ресурсах [3, 4] для построения классификатора с использованием метода ближайших соседей и согласует свой выбор с преподавателем.
2. Выполните построение модели классификации на основе метода ближайших соседей. В ходе решения задачи необходимо решить следующие подзадачи:
2.1 Построение классификатора с заданием K (количества ближайших соседей) пользователем;
2.2 Вычисление оценки hold-out для различнх значений K, а также для различных долей обучающей и тестирующей подвыборок;
2.3 Вычисление оценки cross validation для различных значений K, а также для различных значений fold (количества подмножеств при кросс- валидации).
2.4 Вычислите оптимальные значения K. Обоснуйте свой выбор.
Продемонстрируйте использование полученного классификатора.
41
4. Содержание отчета и его форма
Отчет по лабораторной работе должен содержать:
1. Номер и название лабораторной работы; задачи лабораторной работы.
2. Реализация каждого пункта подраздела «Индивидуальное задание» с приведением исходного кода программы, диаграмм и графиков для визуализации данных.
3. Ответы на контрольные вопросы.
4. Экранные формы (консольный вывод) и листинг программного кода с комментариями, показывающие порядок выполнения лабораторной работы, и результаты, полученные в ходе её выполнения.
Отчет о выполнении лабораторной работы подписывается студентом и сдается преподавателю.
5. Контрольные вопросы
1.
Поясните особенности основных методов метрической классификации: метод ближайшего соседа, метод k ближайших соседей.
2. Поясните основные принципы и этапы реализации метода kNN.
3. Поясните принцип выбора количества соседних объектов, по которым определяется принадлежность целевого объекта к результирующему классу.
4. В чем заключается метод парзеновского окна?
5. Поясните принцип метода потенциальных функций.
6. Назовите, какие параметры оптимизируют в методах kNN?
6. Список литературы
Для выполнения лабораторной работы, при подготовке к защите, а также для ответа на контрольные вопросы рекомендуется использовать следующие источники: [1-5].
42
ЛАБОРАТОРНАЯ РАБОТА 4. ЛОГИЧЕСКИЕ МЕТОДЫ
КЛАССИФИКАЦИИ
1. Цели и задачи
Цель лабораторной работы: изучение принципов построения информационных систем с использованием логических методов классификации.
Основные задачи:
– освоение технологии внедрения алгоритмов на онове решающих списков в приложения;
– освоение технологии внедрения алгоритмов на онове решающих деревьев в приложения;
– изучение параметров логической классификации;
– освоение модификаций логических методов классификации.
2. Теоретическое обоснование
Перед выполнением лабораторной работы необходимо ознакомиться с теорией построения логических классификаторов, используя следующие источники: [1-5].
3. Методика и порядок выполнения работы
3.1 Учебная задача
В рамках учебной задачи необходимо произвести построение классификатора на основе логического дерева. В качестве набора данных используется набор данных об ирисах Фишера.
1.
Подключим библиотеки, которые потребуются для загрузки и первичного анализа данных (рис. 4.1).
43
Рисунок 4.1 – Использование pandas для загрузки набора данных
2.
Для построения дерева классификации воспользуемся специальным классом sklearn.tree.DecisionTreeClassifier. Оценими точность модели методом hold-out (рис. 4.2). Следует обратить внимание, что если в методе ближайших соседей производилась оптимизация по одному параметру
K – количеству ближайших соседей, то при создании модели
DecisionTreeClassifier необходимо указать два параметра: максимальную глубину дерева (max_depth) и количество признаков разделения дерева
(max_features).
44
Рисунок 4.2 – Обучение модели классификации и оценка ее точности методом hold-out
3.
Произведем оценку точности модели по методу cross validation
(рис. 4.3), а также сделаем выводы об оптимальном значении параметра max_depth.
45
Рисунок 4.3 – Оценка точности модели методом cross validation и нахождение оптимального значения параметра max_depth
В результате работы данного кода будет получен вывод (рис. 4.4).
Рисунок 4.4 – Вывод зависимости значения MSE от параметра max_depth
4.
Оптимальное значение параметра max_depth модели получено, но в модели присутствует еще один параметр max_features, который был установлен в значение 2 (не изменялся и не оптимизировался). Для проведения cross validation по всем параметрам воспользуемся классом GridSearchCV пакета sklearn.model_selection (рис. 4.5).
46
Рисунок 4.5 – Находждение оптимальных параметров модели логической классификации
Поясните вывод данного фрагмента. Поясните значение таких величин как fold, candidate, fit. Какие значения принимают данные величины в данном коде и почему?
Следует обратить внимание, что в результате оценки оптимальных параметров, фактически, было построено оптимальное дерево классификации.
Доступ к данному дереву производится через поле best_estimator_ класса
GridSearchCV. В коде (рис. 4.5) производится экспорт полученного дерева в формат .dot. Полученный формат можно преобразовать в .png через сервис сайта http://webgraphviz.com
. Полученное дерево представлено на рис. 4.6.
47
Рисунок 4.6 – Находждение оптимальных параметров модели логической классификации
Поясните значения переменных в узлах полученного дерева: gini, samples, value.
5.
Оптимальные параметры определены, можно обучить модель и использовать ее для классификации (рис. 4.7).
Рисунок 4.7 – Использование модели логической классификации
6.
В заключении построим еще одну визуализацию процесса логической классификации – покажем решающие границы модели классификации (рис. 4.8).
48
Рисунок 4.8 – Построение решающих границ
Вывод данного кода представлен на рис. 4.9.
49
Рисунок 4.9 – Решающие границы логической модели классификации
7.
Выполните индивидуальное задание.
3.2 Важные замечания
1. При выборе набора данных (data set) на ресурсах [3, 4] необходимо согласовать свой выбор с другими студентами группы и преподавателем с целью недопустимости выбора одинаковых вариантов.
2. В рамках данного лабораторного курса рекомендуется использовать инструментарий Python (библиотеки, среду разработки) для решения поставленных задач.
50 3.3 Индивидуальное задание
1. Студент самостоятельно выбирает набор данных на ресурсах [3, 4] для построения классификатора с использованием метода логической классификации и согласует свой выбор с преподавателем.
2. Выполните построение модели классификации на основе дерева классификации. В ходе решения задачи необходимо решить следующие подзадачи:
2.1 Построение логического классификатора с заданием max_depth
(максимальной глубины) и max_features (максимального количества признаков) пользователем (установить любые); визуализация дерева решений для выбранных исследователем параметров (в формате .png)
2.2 Вычисление оценки cross validation (MSE) для различнх значений max_depth (построить график зависимости);
2.3 Вычисление оценки cross validation (MSE) для различнх значений max_features (построить график зависимости);
2.4 Вычислите оптимальные значения max_depth и max_features.
Обоснуйте свой выбор. Продемонстрируйте использование полученного классификатора.
2.5 Выведите дерево в формате .png;
2.6 Выведите решающие границы полученной модели.
1 2 3 4