Файл: северокавказский федеральный университет методы машинного обучения учебное пособие.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 10.01.2024
Просмотров: 311
Скачиваний: 4
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
4. Содержание отчета и его форма
Отчет по лабораторной работе должен содержать:
1. Номер и название лабораторной работы; задачи лабораторной работы.
2. Реализация каждого пункта подраздела «Индивидуальное задание» с приведением исходного кода программы, диаграмм и графиков для визуализации данных.
51 3. Ответы на контрольные вопросы.
4. Экранные формы (консольный вывод) и листинг программного кода с комментариями, показывающие порядок выполнения лабораторной работы, и результаты, полученные в ходе её выполнения.
Отчет о выполнении лабораторной работы подписывается студентом и сдается преподавателю.
5. Контрольные вопросы
1. Поясните принцип построения дерева решений.
2. Укажите статистическое определение информативности.
3. Поясните энтропийное определение информативности.
4. Что такое многоклассовая информативность? Для чего она применяется?
5. Поясните назначение и алгоритм бинаризации количественных признаков.
6. Поясните порядок поиска закономерностей в форме конъюнкций.
6. Список литературы
Для выполнения лабораторной работы, при подготовке к защите, а также для ответа на контрольные вопросы рекомендуется использовать следующие источники: [1–5].
52
ЛАБОРАТОРНАЯ РАБОТА 5. РАЗРАБОТКА ЕДИНОГО
ПОДХОДА К ПРЕДВАРИТЕЛЬНОЙ ОБРАБОТКИ ДАННЫХ
1. Цели и задачи
Цель лабораторной работы: изучение теоретических принципов и инструментальных редств для построения пайплайна для предварительной обработки данных.
Основные задачи:
– предварительная обработка данных;
– изучение библиотек для предварительной обработки данных;
– масштабирование признаков;
– представление категориальных данных;
– построение пайплайна для предварительной обработки данных.
2. Теоретическое обоснование
В предыдущих работах уже были представлены алгоритмы, позволяющие представить последовательность решения задач методами машинного обучения. Но для различных моделей очень часто приходится повторять одни и те же действия. Это делает возможным выработку некторого унифицированного подхода к последовательности действий, которые реализует исследователь. В данной работе рассмотрим унифицированную последовательность действий, которую обычно выполняет исследователь по предварительной обработке данных.
Для решения задач машинного обучения часто приходится повторять различные блоки кода, которые являются единоообразными для разных задач, принадлежащих одному классу (регрессия, классификация, кластеризация и т.д.). Данное обстоятельство приводит к повторяющемуся шаблонному коду.
Такой код называется boilerplate-код или просто boilerplate. С другой стороны, единообразная последовательность действий, которую выполняет
53 разработчик при решении задач машинного обучения часто называется пайплайном (machine learning pipeline).
Рассмотрим простейший пайплан для решения задачи регрессии. Для решения задачи регрессии небходимо реализовать (в общем случае) следующие стадии:
1. Загрузка набора данных.
2. Заполнение пропусков данных в соответствии с выбранной стратегией.
3. Масштабирование признаков.
4. Обработка категоривальных признаков.
5. Разделение на тестовую и тренировочную выборку.
6. Обучение модели.
7. Интерпретация и визуализация результатов.
Заполнение пропусков в данных missingvalues = SimpleImputer(missing_values = np.nan, strategy = 'mean', verbose = 0) missingvalues = missingvalues.fit(X[:, 1:3])
X[:, 1:3]=missingvalues.transform(X[:, 1:3])
Масштабирование признаков (standartisation и normalization) from sklearn.preprocessing import StandardScaler
Разделение на тестовую и обучающую выборки: from sklearn.model_selection import train_test_split from sklearn.cross_validation import train_test_split
Перед выполнением лабораторной работы необходимо ознакомиться с базовыми принципами языка Python, используя следующие источники: [1-5].
54
3. Методика и порядок выполнения работы
Для тестирования универсального пайплайна будет использоваться модель линейоной регрессии (LinearRegression из библиотеки sklearn).
3.1 Учебная задача
Устовие. Построить пайплайн, реализующий первичную обработку данных.
Решение. Для решения задачи необходимо написать скрипт на яыке
Python (рисунок 5.1).
55
Рисунок 5.1 – Код Python, отражающий общий пайплайн для предварительной обработки данных
На рисунке 5.1 показан устаревший метод работы с трансформатором
OneHotEncoder. На рисунке 5.2 показан метод. Который используется в настоящее время. Данный подход предполагает применение класса
ColumnTransformer, который осуществляет преобразование значений столбцов с использованием переданных ему классов-трансформеров. В
56 качестве классов-трансформеров можно использовать классы FeatureHasher,
MinMaxScaler, SimpleImputer, OneHotEncoder, Normalizer и прочие.
Рисунок 5.2 – Код Python, отражающий применение ColumnTransformer
Следует обратить внимание, что большинство методов трансформации приводит к получению результата в виде массива. Для конвертации массива в
DataFrame можно воспользоваться следующим подходом:
57
Рисунок 5.3 – Преобразование массива в DataFrame
3.2 Индивидуальное задание
1. Подберите набор данных на ресурсах [5-7] и согласуйте свой выбор с преподавателем. Студент может предложить синтезированный набор данных.
2. Реализуйте первичную обработку данных загруженного набора.
Выполните полный спектр операций для загруженного набора данны: загрузка, визуализация, обработка пропущенных значений, обработка категориальных данных и разделение выборки на тестовую и тренировочную.
7. Содержание отчета и его форма
Отчет по лабораторной работе должен содержать:
1. Номер и название лабораторной работы; задачи лабораторной работы.
2. Реализация каждого пункта подраздела «Индивидуальное задание» с приведением исходного кода программы, диаграмм и графиков для визуализации данных.
58 3. Ответы на контрольные вопросы.
4. Экранные формы (консольный вывод) и листинг программного кода с комментариями, показывающие порядок выполнения лабораторной работы, и результаты, полученные в ходе её выполнения.
Отчет о выполнении лабораторной работы подписывается студентом и сдается преподавателю.
8. Контрольные вопросы
1. Какая библиотека python предназначена для управления наборами данных: numpy, pandas, sklearn, opencv, matplotlib?
2. Какая стратегия является нежелательной при обработке пропусков в данных? а) замена пропущенных значений в столбце медианным значением по данному столбцу; б) удаление строк, содержащих пропуски в данных; в) замена пропущенных значений в столбце средним арифметическим значением по данному столбцу; г) замена пропущенных значений в столбце наиболее часто встречающимся значением по данному столбцу;
3. Обоснуйте ответ на следующую проблему предварительной обработки данных: имеется независимая категориальная переменная y, которая представляет собой категориальный признак, опеределнный на домене {C#, Java, Python, R}. Нужно ли применять к данному целевому признаку OneHotEncoder?
4. Поясните принцип разбиения набора данных на обучающую и тестовую выборку. Какое соотношение «тестовая:обучающая» наиболее оптимально: 20:80, 50:50, 25:75, 5:95, 40:30?
5. Какой код лучше использовать при загрузке данных из csv-файла? а) dataset = read_csv(“data.csv”)
59 б) dataset = import(“data.csv”) в) dataset = read.csv(“data.csv”) г) dataset = import.csv(“data.csv”) д) dataset = read_xls(“data.csv”)
9. Список литературы
Для выполнения лабораторной работы, при подготовке к защите, а также для ответа на контрольные вопросы рекомендуется использовать следующие источники: [1, 2, 5-7].
60
ЛАБОРАТОРНАЯ РАБОТА 6. ПОСТРОЕНИЕ ПАЙПЛАЙНА
ОДНОМЕРНОЙ РЕГРЕССИИ
1. Цели и задачи
Цель лабораторной работы: разработка единого пайплайна для решения задачи регрессии.
Основные задачи:
– реализовать каонвейер для выполнения всех стадий обработки данных при решении задачи одномерной регрессии;
– получение теоретических представлений о задаче регресии;
– получение навыков использования пайплайна при решении задачи машинного обучения;
– получение навыков рефакторинга кода в задачах машинного обучения.
2. Теоретическое обоснование
Для решения задачи одномерной регрессии необходимо использовать универсальный пайплайн предварительной обработки данных.
К имеющемусяя шаблонному коду необходимо добавить код для обучения модели, интерпретации и визуализации результатов.
Линейная регрессия – метод восстановления зависимости между двумя переменными. Пусть задана модель регрессии – параметрическое семейство функций ????(????, ????), где ???? ∈ ℝ
????
– вектор параметров модели. Определим функционал качества аппроксимации целевой зависимости на выборке ????
ℓ
как сумму квадратов ошибок:
????(????, ????
ℓ
) = ∑(????(????
????
, ????) − ????
????
)
2
ℓ
????=1
(6.1)
61
Обучение по методу наименьших квадратов (МНК) состоит в том, чтобы найти вектор параметров ????
∗
, при котором достигается минимум среднего квадрата ошибки на заданной обучающей выборке ????
ℓ
:
????
∗
= arg min
????∈ℝ
????
????(????, ????
ℓ
).
(6.2)
Стандартный способ решения этой оптимизационной задачи – воспользоваться необходимым условием минимума. Если функция ????(????, ????) достаточное число раз дифференцируема по ????, то в точке минимума выполняется система ???? уравнений относительно ???? неизвестных:
????????
????????
(????, ????
ℓ
) = 2 ∑(????(????
????
, ????) − ????
????
)
????????
????????
(????
????
, ????)
ℓ
????=1
= 0.
(6.3)
С использованием библиотек машинного обучения формулы (6.1) – (6.2) можно реализовать автоматически, но следует понимать, что конкретно реализует каждый метод.
3. Методика и порядок выполнения работы
Перед выполнением индивидуального задания рекомендуется выполнить все пункты учебной задачи.
3.1 Учебная задача
Устовие. Построить пайплайн, реализующий решение задачи линейной одномерной регрессии.
Решение. Для решения задачи необходимо написать скрипт на яыке
Python (рисунок 6.1).
62
63
Рисунок 6.1 – Код Python, отражающий общий пайплайн для задачи одномерной регрессии
3.2 Индивидуальное задание
1. Подберите набор данных на ресурсах [5-7] и согласуйте свой выбор с преподавателем. Студент может предложить синтезированный набор данных.
2. Постройте модель регрессии на основе универсального пайплайна.
7. Содержание отчета и его форма
Отчет по лабораторной работе должен содержать:
64 1. Номер и название лабораторной работы; задачи лабораторной работы.
2. Реализация каждого пункта подраздела «Индивидуальное задание» с приведением исходного кода программы, диаграмм и графиков для визуализации данных.
3. Ответы на контрольные вопросы.
4. Экранные формы (консольный вывод) и листинг программного кода с комментариями, показывающие порядок выполнения лабораторной работы, и результаты, полученные в ходе её выполнения.
Отчет о выполнении лабораторной работы подписывается студентом и сдается преподавателю.
8. Контрольные вопросы
1. Почему при реализации линейной модели регрессии нет необходимости выполнять масштабирование признаков?
2. Почему при реализации модели линейной регрессии в качестве функции потерь используется квадратичное отклонение, а не модуль отклонения?
3. Что именно реализовано в методе fit(X, y) класса LinearRegression?
4. Что такое p-значение? Как p-значение используется при оптимизации моделей регрессии?
5. Поясните назначение метода predict класса LinearRegression.
6. Поясните назначение метода plot и scatter класса pyplot.
7. По какой подвыборке необходимо оценивать точность модели машинного обучения: тестовой или тренировочной?
9. Список литературы
Для выполнения лабораторной работы, при подготовке к защите, а также для ответа на контрольные вопросы рекомендуется использовать следующие источники: [1, 2, 5-7].
65
ЛАБОРАТОРНАЯ РАБОТА 7. ИСПОЛЬЗОВАНИЕ
РАЗРАБОТАННОГО ПАЙПЛАЙНА ДЛЯ МНОГОМЕРНОЙ
РЕГРЕССИИ
1. Цели и задачи
Цель лабораторной работы: научиться применять разработанный пайплайн для тиражирования кода с целью решения широкого круга задач машинного обучения.
Основные задачи:
– получение навыков рефакторинга кода в проектах машинного обучения;
– получение навыков определения ключевых признаков в задачах машинного обучения;
– получение навыков реализации ключевых стратегий оптимизации моделей регрессии.
2. Теоретическое обоснование
При решении задач многомерной регресси исследователю необходимо решить ряд подзадач:
1. Определить коррелированность признаков.
2. Определить, какие признаки существенны при построении модели регрессии.
Проблема определения значимых признаков мвязана с проблемой снижения размерности.
Важное значение при многомерной регресси приобретает обработка категориальных признаов. Часто необходимо заменить категориальный признак на набор фиктивных переменных.
66
К проблеме выбора значимых переменных существует несколько стратегий (фактически это методы построения модели многомерной регрессии):
1. All-in. В данном подходе производится включение веех признаков в модель.
2. Backward Elimination. В подходе предполагается обучение модели с учетом всех признаков и удаление признаков по одному на основе их значимости до достижения ситуации, когда останутся только значимые признаки.
3. Forward Selection. Подход предполагает начальное тестирование модели с одним признаком (тестируется каждый признак). Затем добавляются по одному наиболее значимые признаки.
4. Bidirectional Elimination. Подход совмещает стратегии 2 и 3.
5. Score Comparison.
3. Методика и порядок выполнения работы
Перед выполнением индивидуального задания рекомендуется выполнить все пункты учебной задачи.
3.1 Учебная задача
Задание. На основе разработанного пайплайна для линейной одномерной регрессии разработать многомерную модель регрессии.
Решение. Для разработки модели необходимо реализовать следующий код:
67
68
Рисунок 7.1 – Код Python для построения модели многомерной регрессии
На данный момент произведено обучение модели на всем наборе признаков. Для оптимизации модели реализуем стратегию Back Elimination
(рисунк 7.2).
69
Рисунок 7.2 – Оптимизация модели многомерной регрессии
Выполните индивидуальное задание.
Отчет по лабораторной работе должен содержать:
1. Номер и название лабораторной работы; задачи лабораторной работы.
2. Реализация каждого пункта подраздела «Индивидуальное задание» с приведением исходного кода программы, диаграмм и графиков для визуализации данных.
51 3. Ответы на контрольные вопросы.
4. Экранные формы (консольный вывод) и листинг программного кода с комментариями, показывающие порядок выполнения лабораторной работы, и результаты, полученные в ходе её выполнения.
Отчет о выполнении лабораторной работы подписывается студентом и сдается преподавателю.
5. Контрольные вопросы
1. Поясните принцип построения дерева решений.
2. Укажите статистическое определение информативности.
3. Поясните энтропийное определение информативности.
4. Что такое многоклассовая информативность? Для чего она применяется?
5. Поясните назначение и алгоритм бинаризации количественных признаков.
6. Поясните порядок поиска закономерностей в форме конъюнкций.
6. Список литературы
Для выполнения лабораторной работы, при подготовке к защите, а также для ответа на контрольные вопросы рекомендуется использовать следующие источники: [1–5].
52
ЛАБОРАТОРНАЯ РАБОТА 5. РАЗРАБОТКА ЕДИНОГО
ПОДХОДА К ПРЕДВАРИТЕЛЬНОЙ ОБРАБОТКИ ДАННЫХ
1. Цели и задачи
Цель лабораторной работы: изучение теоретических принципов и инструментальных редств для построения пайплайна для предварительной обработки данных.
Основные задачи:
– предварительная обработка данных;
– изучение библиотек для предварительной обработки данных;
– масштабирование признаков;
– представление категориальных данных;
– построение пайплайна для предварительной обработки данных.
2. Теоретическое обоснование
В предыдущих работах уже были представлены алгоритмы, позволяющие представить последовательность решения задач методами машинного обучения. Но для различных моделей очень часто приходится повторять одни и те же действия. Это делает возможным выработку некторого унифицированного подхода к последовательности действий, которые реализует исследователь. В данной работе рассмотрим унифицированную последовательность действий, которую обычно выполняет исследователь по предварительной обработке данных.
Для решения задач машинного обучения часто приходится повторять различные блоки кода, которые являются единоообразными для разных задач, принадлежащих одному классу (регрессия, классификация, кластеризация и т.д.). Данное обстоятельство приводит к повторяющемуся шаблонному коду.
Такой код называется boilerplate-код или просто boilerplate. С другой стороны, единообразная последовательность действий, которую выполняет
53 разработчик при решении задач машинного обучения часто называется пайплайном (machine learning pipeline).
Рассмотрим простейший пайплан для решения задачи регрессии. Для решения задачи регрессии небходимо реализовать (в общем случае) следующие стадии:
1. Загрузка набора данных.
2. Заполнение пропусков данных в соответствии с выбранной стратегией.
3. Масштабирование признаков.
4. Обработка категоривальных признаков.
5. Разделение на тестовую и тренировочную выборку.
6. Обучение модели.
7. Интерпретация и визуализация результатов.
Заполнение пропусков в данных missingvalues = SimpleImputer(missing_values = np.nan, strategy = 'mean', verbose = 0) missingvalues = missingvalues.fit(X[:, 1:3])
X[:, 1:3]=missingvalues.transform(X[:, 1:3])
Масштабирование признаков (standartisation и normalization) from sklearn.preprocessing import StandardScaler
Разделение на тестовую и обучающую выборки: from sklearn.model_selection import train_test_split from sklearn.cross_validation import train_test_split
Перед выполнением лабораторной работы необходимо ознакомиться с базовыми принципами языка Python, используя следующие источники: [1-5].
54
3. Методика и порядок выполнения работы
Для тестирования универсального пайплайна будет использоваться модель линейоной регрессии (LinearRegression из библиотеки sklearn).
3.1 Учебная задача
Устовие. Построить пайплайн, реализующий первичную обработку данных.
Решение. Для решения задачи необходимо написать скрипт на яыке
Python (рисунок 5.1).
55
Рисунок 5.1 – Код Python, отражающий общий пайплайн для предварительной обработки данных
На рисунке 5.1 показан устаревший метод работы с трансформатором
OneHotEncoder. На рисунке 5.2 показан метод. Который используется в настоящее время. Данный подход предполагает применение класса
ColumnTransformer, который осуществляет преобразование значений столбцов с использованием переданных ему классов-трансформеров. В
56 качестве классов-трансформеров можно использовать классы FeatureHasher,
MinMaxScaler, SimpleImputer, OneHotEncoder, Normalizer и прочие.
Рисунок 5.2 – Код Python, отражающий применение ColumnTransformer
Следует обратить внимание, что большинство методов трансформации приводит к получению результата в виде массива. Для конвертации массива в
DataFrame можно воспользоваться следующим подходом:
57
Рисунок 5.3 – Преобразование массива в DataFrame
3.2 Индивидуальное задание
1. Подберите набор данных на ресурсах [5-7] и согласуйте свой выбор с преподавателем. Студент может предложить синтезированный набор данных.
2. Реализуйте первичную обработку данных загруженного набора.
Выполните полный спектр операций для загруженного набора данны: загрузка, визуализация, обработка пропущенных значений, обработка категориальных данных и разделение выборки на тестовую и тренировочную.
7. Содержание отчета и его форма
Отчет по лабораторной работе должен содержать:
1. Номер и название лабораторной работы; задачи лабораторной работы.
2. Реализация каждого пункта подраздела «Индивидуальное задание» с приведением исходного кода программы, диаграмм и графиков для визуализации данных.
58 3. Ответы на контрольные вопросы.
4. Экранные формы (консольный вывод) и листинг программного кода с комментариями, показывающие порядок выполнения лабораторной работы, и результаты, полученные в ходе её выполнения.
Отчет о выполнении лабораторной работы подписывается студентом и сдается преподавателю.
8. Контрольные вопросы
1. Какая библиотека python предназначена для управления наборами данных: numpy, pandas, sklearn, opencv, matplotlib?
2. Какая стратегия является нежелательной при обработке пропусков в данных? а) замена пропущенных значений в столбце медианным значением по данному столбцу; б) удаление строк, содержащих пропуски в данных; в) замена пропущенных значений в столбце средним арифметическим значением по данному столбцу; г) замена пропущенных значений в столбце наиболее часто встречающимся значением по данному столбцу;
3. Обоснуйте ответ на следующую проблему предварительной обработки данных: имеется независимая категориальная переменная y, которая представляет собой категориальный признак, опеределнный на домене {C#, Java, Python, R}. Нужно ли применять к данному целевому признаку OneHotEncoder?
4. Поясните принцип разбиения набора данных на обучающую и тестовую выборку. Какое соотношение «тестовая:обучающая» наиболее оптимально: 20:80, 50:50, 25:75, 5:95, 40:30?
5. Какой код лучше использовать при загрузке данных из csv-файла? а) dataset = read_csv(“data.csv”)
59 б) dataset = import(“data.csv”) в) dataset = read.csv(“data.csv”) г) dataset = import.csv(“data.csv”) д) dataset = read_xls(“data.csv”)
9. Список литературы
Для выполнения лабораторной работы, при подготовке к защите, а также для ответа на контрольные вопросы рекомендуется использовать следующие источники: [1, 2, 5-7].
60
ЛАБОРАТОРНАЯ РАБОТА 6. ПОСТРОЕНИЕ ПАЙПЛАЙНА
ОДНОМЕРНОЙ РЕГРЕССИИ
1. Цели и задачи
Цель лабораторной работы: разработка единого пайплайна для решения задачи регрессии.
Основные задачи:
– реализовать каонвейер для выполнения всех стадий обработки данных при решении задачи одномерной регрессии;
– получение теоретических представлений о задаче регресии;
– получение навыков использования пайплайна при решении задачи машинного обучения;
– получение навыков рефакторинга кода в задачах машинного обучения.
2. Теоретическое обоснование
Для решения задачи одномерной регрессии необходимо использовать универсальный пайплайн предварительной обработки данных.
К имеющемусяя шаблонному коду необходимо добавить код для обучения модели, интерпретации и визуализации результатов.
Линейная регрессия – метод восстановления зависимости между двумя переменными. Пусть задана модель регрессии – параметрическое семейство функций ????(????, ????), где ???? ∈ ℝ
????
– вектор параметров модели. Определим функционал качества аппроксимации целевой зависимости на выборке ????
ℓ
как сумму квадратов ошибок:
????(????, ????
ℓ
) = ∑(????(????
????
, ????) − ????
????
)
2
ℓ
????=1
(6.1)
61
Обучение по методу наименьших квадратов (МНК) состоит в том, чтобы найти вектор параметров ????
∗
, при котором достигается минимум среднего квадрата ошибки на заданной обучающей выборке ????
ℓ
:
????
∗
= arg min
????∈ℝ
????
????(????, ????
ℓ
).
(6.2)
Стандартный способ решения этой оптимизационной задачи – воспользоваться необходимым условием минимума. Если функция ????(????, ????) достаточное число раз дифференцируема по ????, то в точке минимума выполняется система ???? уравнений относительно ???? неизвестных:
????????
????????
(????, ????
ℓ
) = 2 ∑(????(????
????
, ????) − ????
????
)
????????
????????
(????
????
, ????)
ℓ
????=1
= 0.
(6.3)
С использованием библиотек машинного обучения формулы (6.1) – (6.2) можно реализовать автоматически, но следует понимать, что конкретно реализует каждый метод.
3. Методика и порядок выполнения работы
Перед выполнением индивидуального задания рекомендуется выполнить все пункты учебной задачи.
3.1 Учебная задача
Устовие. Построить пайплайн, реализующий решение задачи линейной одномерной регрессии.
Решение. Для решения задачи необходимо написать скрипт на яыке
Python (рисунок 6.1).
62
63
Рисунок 6.1 – Код Python, отражающий общий пайплайн для задачи одномерной регрессии
3.2 Индивидуальное задание
1. Подберите набор данных на ресурсах [5-7] и согласуйте свой выбор с преподавателем. Студент может предложить синтезированный набор данных.
2. Постройте модель регрессии на основе универсального пайплайна.
7. Содержание отчета и его форма
Отчет по лабораторной работе должен содержать:
64 1. Номер и название лабораторной работы; задачи лабораторной работы.
2. Реализация каждого пункта подраздела «Индивидуальное задание» с приведением исходного кода программы, диаграмм и графиков для визуализации данных.
3. Ответы на контрольные вопросы.
4. Экранные формы (консольный вывод) и листинг программного кода с комментариями, показывающие порядок выполнения лабораторной работы, и результаты, полученные в ходе её выполнения.
Отчет о выполнении лабораторной работы подписывается студентом и сдается преподавателю.
8. Контрольные вопросы
1. Почему при реализации линейной модели регрессии нет необходимости выполнять масштабирование признаков?
2. Почему при реализации модели линейной регрессии в качестве функции потерь используется квадратичное отклонение, а не модуль отклонения?
3. Что именно реализовано в методе fit(X, y) класса LinearRegression?
4. Что такое p-значение? Как p-значение используется при оптимизации моделей регрессии?
5. Поясните назначение метода predict класса LinearRegression.
6. Поясните назначение метода plot и scatter класса pyplot.
7. По какой подвыборке необходимо оценивать точность модели машинного обучения: тестовой или тренировочной?
9. Список литературы
Для выполнения лабораторной работы, при подготовке к защите, а также для ответа на контрольные вопросы рекомендуется использовать следующие источники: [1, 2, 5-7].
65
ЛАБОРАТОРНАЯ РАБОТА 7. ИСПОЛЬЗОВАНИЕ
РАЗРАБОТАННОГО ПАЙПЛАЙНА ДЛЯ МНОГОМЕРНОЙ
РЕГРЕССИИ
1. Цели и задачи
Цель лабораторной работы: научиться применять разработанный пайплайн для тиражирования кода с целью решения широкого круга задач машинного обучения.
Основные задачи:
– получение навыков рефакторинга кода в проектах машинного обучения;
– получение навыков определения ключевых признаков в задачах машинного обучения;
– получение навыков реализации ключевых стратегий оптимизации моделей регрессии.
2. Теоретическое обоснование
При решении задач многомерной регресси исследователю необходимо решить ряд подзадач:
1. Определить коррелированность признаков.
2. Определить, какие признаки существенны при построении модели регрессии.
Проблема определения значимых признаков мвязана с проблемой снижения размерности.
Важное значение при многомерной регресси приобретает обработка категориальных признаов. Часто необходимо заменить категориальный признак на набор фиктивных переменных.
66
К проблеме выбора значимых переменных существует несколько стратегий (фактически это методы построения модели многомерной регрессии):
1. All-in. В данном подходе производится включение веех признаков в модель.
2. Backward Elimination. В подходе предполагается обучение модели с учетом всех признаков и удаление признаков по одному на основе их значимости до достижения ситуации, когда останутся только значимые признаки.
3. Forward Selection. Подход предполагает начальное тестирование модели с одним признаком (тестируется каждый признак). Затем добавляются по одному наиболее значимые признаки.
4. Bidirectional Elimination. Подход совмещает стратегии 2 и 3.
5. Score Comparison.
3. Методика и порядок выполнения работы
Перед выполнением индивидуального задания рекомендуется выполнить все пункты учебной задачи.
3.1 Учебная задача
Задание. На основе разработанного пайплайна для линейной одномерной регрессии разработать многомерную модель регрессии.
Решение. Для разработки модели необходимо реализовать следующий код:
67
68
Рисунок 7.1 – Код Python для построения модели многомерной регрессии
На данный момент произведено обучение модели на всем наборе признаков. Для оптимизации модели реализуем стратегию Back Elimination
(рисунк 7.2).
69
Рисунок 7.2 – Оптимизация модели многомерной регрессии
Выполните индивидуальное задание.