Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

магистры / ЛР-4+СИИ.docx

.pdf
Скачиваний:
0
Добавлен:
13.05.2026
Размер:
635.23 Кб
Скачать

Методические указания по выполнению лабораторной работы № 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

Соседние файлы в папке магистры