магистры / ЛР-4+СИИ.docx
.pdf
Методические указания по выполнению лабораторной работы № 4 по дисциплине
«Системы искусственного интеллекта» для магистров образовательных программ: 11.04.01, 11.04.02
Цель лабораторной работы – изучение алгоритмов машинного обучения в Scikit-Learn. Метод опорных векторов.
1. Задание
1.1 Произведите запуск программной среды "Anaconda Navigator". На экране отобразится окно программы (см. рисунок 1).
Рисунок 1
1.2 Перейдите в вкладку "Environments" и выберите среду "Lab" (см. рисунок 2).
Рисунок 2
1.3 Из среды "Lab" запустите блокнот для программирования "Jupiter" (см. рисунок 3). На экране отобразится браузер с окном блокнота (см. рисунок 4).
Рисунок 3
2
Рисунок 4
1.4Создайте новый файл проекта и переименуйте его из Untitled (см. рисунок 5).
1.5Загрузите все необходимые для работы библиотеки и сформируйте данные для обучения:
1.6Создаем экземпляр SVM и обучаем модель с использованием линейного ядра
1.7Создаем экземпляр SVM и обучаем модель с использованием RBF-
ядра
1.8 Создаем экземпляр SVM и обучаем модель с использованием
3
полиномиального ядра
1.9Создаем экземпляр SVM и обучаем модель с использованием сигмоидного ядра
1.10Оцениваем качество моделей
1.11Сделайте вывод какая модель подошла больше под ваши
данные.
1.12Постройте график для каждой из моделей
2. Теоретические сведения
SVM (Support Vector Machines) — это алгоритм машинного обучения, используемый для решения задач классификации, который строит гиперплоскость в n-мерном пространстве для разделения объектов двух или более классов. Гиперплоскость выбирается таким образом, чтобы максимизировать расстояние между гиперплоскостью и ближайшими объектами разных классов (зазор). Объекты, которые расположены ближе всего к гиперплоскости, называются опорными векторами.
Одна из главных идей SVM заключается в том, чтобы преобразовать данные в пространство большей размерности, где объекты могут быть более
4
легко разделены гиперплоскостью. Это достигается через ядро, которое позволяет выполнить нелинейное преобразование данных, сохраняя при этом вычислительную эффективность.
SVM показывает хорошие результаты в задачах классификации, особенно в задачах с большим количеством признаков. Он также может быть эффективен при обучении на небольшом количестве данных.
В функции потерь SVM используется концепция зазора (margin), которая представляет собой расстояние между гиперплоскостью и ближайшими точками разных классов. Цель состоит в том, чтобы максимизировать зазор, при этом допустимо допускать ошибки классификации. Если объекты невозможно разделить линейной гиперплоскостью, то используется мягкая граница (soft margin), которая позволяет допустить ошибки классификации и при этом сохранить разделяющую гиперплоскость.
Для построения SVM используется оптимизационный подход, который заключается в поиске оптимальной гиперплоскости. В общем случае, SVM может быть формализован как задача квадратичного программирования, которая заключается в минимизации функции потерь и максимизации зазора между классами.
SVM является гибким алгоритмом, который позволяет использовать различные ядра для выполнения нелинейного преобразования данных. Классические ядра, такие как линейное, полиномиальное и радиальнобазисное, могут быть использованы для преобразования данных в более высокое измерение. Также возможно создание собственных ядер, которые позволяют адаптировать алгоритм SVM к конкретным задачам.
Метод опорных векторов (SVM) использует ядро (kernel) для преобразования пространства данных, в котором находятся объекты, чтобы разделить их на классы. Ядро определяет функцию сходства между объектами в новом пространстве признаков.
Четыре основных ядра, которые используются чаще всего:
Линейное ядро (Linear kernel) — это самое простое ядро, которое строит гиперплоскость для разделения данных. Оно часто используется в задачах с линейно разделимыми данными. В математическом смысле линейное ядро вычисляет скалярное произведение между векторами признаков объектов.
Ядро Radial Basis Function (RBF) — это наиболее распространенное ядро, которое может разделять данные, не являющиеся линейно разделимыми. Оно создает границу принятия решений в виде радиально-симметричного колокола.
Ядро с полиномиальной функцией (Polynomial kernel) — это ядро,
которое вводит полиномиальную функцию в пространство признаков для разделения данных. Это может быть полезно для данных, которые не могут быть разделены гиперплоскостью.
5
Ядро с сигмоидной функцией (Sigmoid kernel) — это ядро, которое используется для моделирования нейронных сетей. Оно может работать с нелинейными данными, но не так эффективно, как RBF-ядро.
Каждое ядро может иметь свои параметры, которые могут быть настроены для улучшения производительности модели.
В целом, SVM — это мощный алгоритм машинного обучения, который может использоваться для решения различных задач классификации и регрессии. Он имеет несколько преимуществ и недостатков, которые необходимо учитывать при выборе алгоритма машинного обучения для конкретной задачи.
Преимущества:
•Высокая точность: SVM является одним из наиболее точных алгоритмов машинного обучения, которые могут обучаться на больших наборах данных.
•Хорошая работа с высокоразмерными данными: SVM может хорошо работать с данными, которые имеют большое количество признаков.
•Работает с небольшими выборками данных: SVM может работать с малым количеством данных и хорошо обобщать.
•Малое количество гиперпараметров: SVM имеет только несколько
гиперпараметров, что делает его относительно простым для настройки.
Недостатки:
•Чувствительность к шуму: SVM может быть чувствителен к шуму в данных. Шум в данных может привести к тому, что SVM строит границу принятия решений, которая не обобщается хорошо на новые данные.
•Вычислительная сложность: SVM может быть вычислительно сложным для обучения на больших наборах данных.
•Выбор функции ядра: Выбор правильной функции ядра может быть сложной задачей. Некоторые ядра работают лучше на определенных типах данных, и выбор неправильного ядра может привести к плохим результатам.
6
Рекомендованная литература
1.Жерон Орельен, «Прикладное машинное обучение с помощью ScikitLearn и TensorFlow: концепции, инструменты и техники для создания интеллектуальных систем». Пер. с англ. - СпБ.: ООО «Альфа-книга»: 2018. - 688 с.
Контрольные вопросы:
1.Преимущества SVM.
2.Недостатки SVM.
3.Основные ядра SVM и их характеристики.
7
