Файл: северокавказский федеральный университет методы машинного обучения учебное пособие.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 10.01.2024
Просмотров: 306
Скачиваний: 4
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
1
МИНИCTEPCTBO НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное автономное образовательное учреждение высшего образования
«СЕВЕРО-КАВКАЗСКИЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ»
МЕТОДЫ МАШИННОГО ОБУЧЕНИЯ
УЧЕБНОЕ ПОСОБИЕ (ЛАБОРАТОРНЫЙ ПРАКТИКУМ)
Направление подготовки:
09.03.02 «Информационные системы и технологии»
Квалификация выпускника: бакалавр
Ставрополь, 2022
2
УДК 004.41 (075.8)
Печатается по решению
ББК 22.18я73 учебно-методического совета
Н 63
Северо-Кавказского федерального университета
Н 63 Методы машинного обучения: учебное пособие (лабораторный практикум) для студентов направления 09.03.02 «Информационные системы и технологии» /
Николаев Е.И.
– Ставрополь: Изд-во СКФУ, 2022. – 86 с.
Учебное пособие (лабораторный практикум) по дисциплине «Методы машинного обучения» для студентов направления 09.03.02 «Информационные системы и технологии». Пособие охватывает практические аспекты построения информационных систем на основе методов искусственного интеллекта с применением современных технологий разработки информационных систем и инструментария анализа данных. Основное внимание уделяется теории обучения машин (машинное обучение, machine learning). Пособие предназначено для студентов, обладающих теоретическими знаниями в области проектирования приложений и практическими навыками программирования (предпочтительно языки C++, C#, Python, Java, R). Цель учебного пособия: сформировать у студентов практические навыки разработки информационных систем на основе методов машинного обучения, искусственного интеллекта, анализа данных; сформировать систему компетенций.
УДК 004.41 (075.8)
ББК 22.18я73
Автор:
канд. техн. наук, доцент Е.И. Николаев
Рецензенты
© Издательство Северо-Кавказского федерального университета, 2022
3
ОГЛАВЛЕНИЕ
ВВЕДЕНИЕ ................................................................................................. 4
ЛАБОРАТОРНАЯ РАБОТА 1. ПЕРВИЧНЫЙ АНАЛИЗ
ДАННЫХ .................................................................................................... 6
ЛАБОРАТОРНАЯ РАБОТА 2. ВИЗУАЛИЗАЦИЯ ДАННЫХ ...... 16
ЛАБОРАТОРНАЯ РАБОТА 3. МЕТРИЧЕСКИЕ МЕТОДЫ
КЛАССИФИКАЦИИ ............................................................................. 32
ЛАБОРАТОРНАЯ РАБОТА 4. ЛОГИЧЕСКИЕ МЕТОДЫ
КЛАССИФИКАЦИИ ............................................................................. 42
ЛАБОРАТОРНАЯ РАБОТА 5. РАЗРАБОТКА ЕДИНОГО
ПОДХОДА К ПРЕДВАРИТЕЛЬНОЙ ОБРАБОТКИ ДАННЫХ .. 52
ЛАБОРАТОРНАЯ РАБОТА 6. ПОСТРОЕНИЕ ПАЙПЛАЙНА
ОДНОМЕРНОЙ РЕГРЕССИИ ............................................................. 60
ЛАБОРАТОРНАЯ РАБОТА 7. ИСПОЛЬЗОВАНИЕ
РАЗРАБОТАННОГО ПАЙПЛАЙНА ДЛЯ МНОГОМЕРНОЙ
РЕГРЕССИИ ............................................................................................ 65
ЛАБОРАТОРНАЯ РАБОТА 8. ПОЛИНОМИАЛЬНАЯ
РЕГРЕССИЯ ............................................................................................ 72
ЛАБОРАТОРНАЯ РАБОТА 9. КЛАСТЕРИЗАЦИЯ ....................... 78
ЗАКЛЮЧЕНИЕ ....................................................................................... 83
СПИСОК ЛИТЕРАТУРЫ ..................................................................... 84
4
ВВЕДЕНИЕ
1. Цели и задачи освоения дисциплины. Учебное пособие по дисциплине «Методы машинного обучения» для студентов направления
09.03.02 «Информационные системы и технологии». Пособие охватывает теоретические аспекты построения информационных систем на основе методов искусственного интеллекта. Основное внимание уделяется теории обучения машин (машинное обучение, machine learning).
Основная задача науки и реальной жизни – получение правильных предсказаний о будущем поведении сложных систем на основании их прошлого поведения. Многие задачи, возникающие в практических приложениях, не могут быть решены заранее известными методами или алгоритмами. Это происходит по той причине, что нам заранее не известны механизмы порождения исходных данных или же известная нам информация недостаточна для построения модели источника, генерирующего поступающие к нам данные. Как говорят, мы получаем данные из «черного ящика». В этих условиях ничего не остается, как только изучать доступную нам последовательность исходных данных и пытаться строить предсказания совершенствуя нашу схему в процессе предсказания. Подход, при котором про- шлые данные или примеры используются для первоначального формирования и совершенствования схемы предсказания, называется методом машинного обучения (Machine Learning). Машинное обучение – чрезвычайно широкая и динамически развивающаяся область исследований, использующая огромное число теоретических и практических методов. Данное пособие ни в какой мере не претендует на какое-либо исчерпывающее изложение содержания данной области. Основная цель – дать студентам теоретическое представление о современных математических проблемамах в области систем искусственного интеллекта, а также познакомить с путями их решения.
5
Пособие предназначено для студентов, обладающих теоретическими знаниями в области проектирования приложений и практическими навыками программирования (предпочтительно языки C, C++, C#, Python, R). Цель учебного пособия: сформировать у студентов целостный взгляд на современные тенденции в областях машинного обучения, искусственного интеллекта, анализа данныз; сформировать систему компетенций.
2. Перечень планируемых результатов обучения по дисциплине
(модулю), соотнесённых с планируемыми результатами освоения
образовательной программы.
ПК-2 – Cпособен использовать современные инструментальные средства и технологии программирования при разработке прикладного программного обеспечения вычислительных средств и систем различного функционального назначения.
6
ЛАБОРАТОРНАЯ РАБОТА 1. ПЕРВИЧНЫЙ АНАЛИЗ ДАННЫХ
1. Цели и задачи
Цель лабораторной работы: изучение программных средств для организации рабочего места специалиста по анализу данных и машинному обучению.
Основные задачи:
– получение программного доступа к данным, содержащимся в источниках различного типа;
– выполнение предварительного анализа данных и получение обобщенных характеристик наборов данных;
– исследование простых методов визуализации данных;
– изучение основных библиотек Python для работы с данными.
2. Теоретическое обоснование
Перед выполнением лабораторной работы необходимо ознакомиться с базовыми принципами языка Python, используя следующие источники: [1-5].
Особое внимание необходимо уделить репозитарию [5] с исходными кодами.
3. Методика и порядок выполнения работы
Перед выполнением индивидуального задания рекомендуется выполнить все пункты учебной задачи.
3.1 Учебная задача
Необходимо организовать подготовку данных для построения модели
(допустим модели классификации). В качестве данных выбран набор данных об ирисах Фишера. Это, пожалуй, самый известный набор данных, с которого многие начинают исследование алгоритмов машинного обучения.
7
Данный набор данных предназначен для построения модели классификации. Данные о 150 экземплярах ириса (рис. 1.1), по 50 экземпляров из трёх видов – Ирис щетинистый (Iris setosa), Ирис виргинский (Iris virginica) и Ирис разноцветный (Iris versicolor). Для каждого экземпляра измерялись четыре характеристики (в сантиметрах):
1) длина наружной доли околоцветника (sepal length);
2) ширина наружной доли околоцветника (sepal width);
3) длина внутренней доли околоцветника (petal length);
4) ширина внутренней доли околоцветника (petal width).
На основании этого набора данных требуется построить правило классификации, определяющее вид растения по данным измерений. Это задача многоклассовой классификации, так как имеется три класса – три вида ириса. а) б) в)
Рисунок 1.1 – Внешний вид классифицируемых ирисов: а) Iris setosa; б) Iris virginica; в) Iris versicolor
1.
Необходимо скачать набор данных из репозитория Center for
Machine Learning and Intelligent Systems (необходим только один текстовый файл с данными измерений): http://archive.ics.uci.edu/ml/datasets/Iris
Файл Iris.data при просмотре выглядит следующим образом (рис. 1.2):
8
Рисунок 1.2 – Внешний вид данных файла Iris.data
2.
Использовать текстовые редакторы для просмотра и анализа данных из определенных наборов – нерациональный вариант. Поэтому запустим Jupyter Notebook и начнем работать с загруженным набором с использованием среды Python. Используем метод genfromtxt() из пакета scipy.
Рисунок 1.3 – Загрузка данных файла Iris.data
Метод genfromtxt() возвращает массив numpy (тип numpy.ndarray).
Следует обратить внимание, что пятый столбец содержит неопределенные значения numpy.NaN (объясните – почему?).
3.
Производить вывод всего источника данных – нерациональный путь. В реальных задачах данных может оказаться слишком много, поэтому
9 чаще всего используют подвыборку данных для поверхностного обзора исследуемой обучающей выборки (рис. 1.4).
Рисунок 1.4 – Начальное исследование Iris.data
Из представленного фрагмента видно, что data – это двумерный массив размером 150x5, или можно сказать, что это одномерный массив, каждый элемент которого также одномерный массив размером 5 элементов.
4.
В рамках данной задачи необходимо все-таки получить значения пятого столбца. Для этого желательно использовать другой подход (рис. 1.5):
Рисунок 1.5 – Загрузка даных разного типа в массив
Сразу же желательно (на первоначальных этапах изучения Python) проводить анализ типов различных значений. На рис. 1.6 представлен еще один вариант загрузки данных в массив numpy.ndarray.
10
Рисунок 1.6 – Загрузка даных в массив с типом, определяемым пользователем
Поясните различие в структурах данных, получаемых с использованием представленных листингов.
5.
Было загружено 150 элементов данных, но даже при такой маленькой выборке невозможно что-либо сказать о наборе данных. Для получения дополнительной информации небходимо визуализировать загруженные данные. В нашем случае каждый элемент данных представлен вещественными признаками – это существенно упрощает визуализацию
(рис. 1.7). Но сложность заключается в том, что приходится работать с элементами 4-мерного пространства, поэтому строится не графическое представление распределения, а отдельные проекции.
6.
Уже из графического распределения на рис. 1.7 видно, что тип ирисов Setosa хорошо отделяется. На данном графике представлено отображение в плоскости признаков (‘Sepal Width’, ‘Sepal Length’) Но исследователь имеет возможность построить столько графиков, сколько необходимо для глубокого анализа данных. Изменим ячейку In[72] в соответствии с листингом, представленным на рис. 1.8.
11
Рисунок 1.7 – Простейший анализ данных по графическому представлению
12
Рисунок 1.8 – Построение простейшего графика для отображения различных проекций данных
Вывод данного кода представлен на рис. 1.9.
Рисунок 1.9 – Вывод графика для отображения различных проекций данных
13
Из графиков 1.9 уже хорошо видно, что множество Setosa хорощо отделимо, а множества Versicolor и Verginica представляют собой множества, разделение которых является непростой задачей.
Постройте другие проекции исходных данных. Сколько всего различных проекций можно построить для данного набора данных?
3.2 Важные замечания
1. Несмотря на кажущуюся простоту и «понятность» данных в результате визуализации, исследователь не должен делать поспешных выводов (например, было бы ошибочно делать вывод по рис. 1.9 о том, что ирисы Setosa те, у которых petal width менее 0,75). Следует помнить, что цель первичного исследования данных – получение представления о структуре и природе данных, а не построение модели предсказания, классификации и т.п.
1. В качестве среды разработки используйте языки программирования
Python, Java или C#. По согласованию с преподавателем студент может самостоятельно может выбрать язык программирования и среду разработки
(при этом студенту необходимо критически обосновать свой выбор).
2. При выборе набора данных (data set) на ресурсах [9, 10] необходимо согласовать свой выбор с другими студентами группы и преподавателем, так как работа над одинаковыми наборами данных недопустима.
3. В рамках данного лабораторного курса рекомендуется использовать инструментарий Python (библиотеки, среду разработки) для решения поставленных задач.
14 3.3 Индивидуальное задание
1. Подберите набор данных на ресурсах [9, 10] и согласуйте свой выбор с преподавателем. Студент может предложить синтезированный набор данных.
2. Проведите первичный анализ данных. В результате анализа данных студент должен предоставить следующую информацию о наборе данных:
2.1. Описание набора данных, пояснения, позволяющие лучше понять природу данных. Назначение набора данных и возможные модели, которые можно построить на основе данного набора данных (практические задачи, решаемые с использованием данного обучающего набора данных). Описание каждого признака и его тип.
2.2. Форма набора данных: количество элементов набора, количество признаков, количество пропущенных значений, среднее значение отдельных признаков, максимальные и минимальные значения отдельных признаков и прочие показатели. Предположения, которые можно сделать, проведя первичный анализ.
2.3.
Графические представления, позволяющие судить о неоднородности исследуемого набора данных. Построение графиков желательно произвести по нескольким проекциям.
4. Содержание отчета и его форма
Отчет по лабораторной работе должен содержать:
1. Номер и название лабораторной работы; задачи лабораторной работы.
2. Реализация каждого пункта подраздела «Индивидуальное задание» с приведением исходного кода программы, диаграмм и графиков для визуализации данных.
3. Ответы на контрольные вопросы.