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

магистры / ЛР-2

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

Методические указания по выполнению лабораторной работы № 2 по дисциплине

«Системы искусственного интеллекта» для магистров образовательных программ: 11.04.01 «Радиотехника»,

11.04.02 «Инфокоммуникационные технологии и системы связи»

Цель лабораторной работы – изучение алгоритмов машинного обучения: деревья решений и случайный лес решений.

1. Задание

Каждый студент выполняет индивидуальный вариант данного практикума в соответствии с исходными данными, представленными в п. 3.

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В соотвествии с заданным вариантом (параметр Var1 и Var2) проведите моделирование данных (зарегистрированных азимута X1 и дальности X2 источников радиоизлучения, метки принадлежности к классу ИРИ - target) и отобразите их:

3

1.7 С использованием метода DecisionTreeClassifier библиотеки машинного обучения Scikit-Learn постройте дерево решений, позволяющее провести классификацию (разделение) двух источников радиоизлучения по измерениям их азимута и дальности относительно комплекса радиомониторинга. Оцените точность построенного классификатора и проведите оптимизацию его параметров (глубины дерева max_depth, минимальное количество примеров в листе min_samples_split и другие). Достигните максимальной точности классификатора.

4

1.8 Постройте случайный лес деревьев. Для этого смоделируйте набор случайных данных с использованием функции make_blobs:

Данная функция моделирует кластеры со случайно распределенными данными (по гауссовскому закону). Например, пеленг источников радиоизлучения.

n_samples – общее количество точек (образцов) в кластерах (по умолчанию 100);

n_features – количество признаков для каждого образца (по умолчанию

2);

centers – количество кластеров (по умолчанию 3);

random_state - начальное число, используемое генератором случайных чисел.

1.9Постройте лес решений из 10 деревьев и оцените качество классификации:

1.10Постройте дерево решений для решения задачи классификации тех же данных и сравните качество классификатора с лесом решений. Управляя параметрами дерева решений достигните той же точности классификации (близкой), что и у леса решений. Отобразите дерево решений. Сделайте вывод

отом какой классификатор лучше и почему

2. Теоретические сведения

2.1 Деревья решений

Деревья решений (DT) — это непараметрический контролируемый метод обучения, используемый для классификации и регрессии . Цель состоит в том, чтобы создать модель, которая предсказывает значение целевой переменной, изучая простые правила принятия решений, выведенные из характеристик данных. Дерево можно рассматривать как кусочно-постоянное приближение.

Некоторые преимущества деревьев решений:

Просто понять и интерпретировать. Деревья можно визуализировать.

5

Требуется небольшая подготовка данных. Другие методы часто требуют нормализации данных, создания фиктивных переменных и удаления пустых значений. Однако обратите внимание, что этот модуль не поддерживает отсутствующие значения.

Стоимость использования дерева (т.е. прогнозирования данных) является логарифмической по количеству точек данных, используемых для обучения дерева.

Может обрабатывать как числовые, так и категориальные данные. Однако реализация scikit-learn пока не поддерживает категориальные переменные. Другие методы обычно специализируются на анализе наборов данных, содержащих только один тип переменных.

Способен обрабатывать проблемы с несколькими выходами.

Использует модель белого ящика. Если данная ситуация наблюдаема в модели, объяснение условия легко объяснить с помощью булевой логики. Напротив, в модели черного ящика (например, в искусственной нейронной сети) результаты могут быть труднее интерпретировать.

Возможна проверка модели с помощью статистических тестов. Это позволяет учитывать надежность модели.

Работает хорошо, даже если его предположения несколько нарушаются истинной моделью, на основе которой были сгенерированы данные.

К недостаткам деревьев решений можно отнести:

Обучающиеся дереву решений могут создавать слишком сложные деревья, которые плохо обобщают данные. Это называется переобучением. Чтобы избежать этой проблемы, необходимы такие механизмы, как обрезка, установка минимального количества выборок, необходимых для конечного узла, или установка максимальной глубины дерева.

Деревья решений могут быть нестабильными, поскольку небольшие изменения в данных могут привести к созданию совершенно другого дерева. Эта проблема смягчается за счет использования деревьев решений в ансамбле.

Как видно из рисунка выше, предсказания деревьев решений не являются ни гладкими, ни непрерывными, а являются кусочно-постоянными приближениями. Следовательно, они не годятся для экстраполяции.

Известно, что проблема обучения оптимальному дереву решений является NP-полной с точки зрения нескольких аспектов оптимальности и даже для простых концепций. Следовательно, практические алгоритмы обучения дереву решений основаны на эвристических алгоритмах, таких как жадный алгоритм, в котором локально оптимальные решения принимаются в каждом узле. Такие алгоритмы не могут гарантировать возврат глобального оптимального дерева решений. Это можно смягчить путем обучения нескольких деревьев в учащемся ансамбля, где функции и образцы выбираются случайным образом с заменой.

6

Существуют концепции, которые трудно изучить, поскольку деревья решений не выражают их легко, например проблемы XOR, четности или мультиплексора.

DecisionTreeClassifier — это класс, способный выполнять мультиклассовую классификацию набора данных.

Как и в случае с другими классификаторами, DecisionTreeClassifier принимает в качестве входных данных два массива: массив X, разреженный или плотный, формы (n_samples, n_features), содержащий обучающие образцы, и массив Y целочисленных значений, формы (n_samples,), содержащий метки классов для обучающих образцов:

from sklearn import tree X = [[0, 0], [1, 1]]

Y = [0, 1]

clf = tree.DecisionTreeClassifier() clf = clf.fit(X, Y)

После подбора модель можно использовать для прогнозирования класса образцов:

clf.predict([[2., 2.]]) array([1])

Вслучае, если существует несколько классов с одинаковой и самой высокой вероятностью, классификатор предскажет класс с самым низким индексом среди этих классов.

Вкачестве альтернативы выводу определенного класса можно предсказать вероятность каждого класса, которая представляет собой долю обучающих выборок класса в листе:

clf.predict_proba([[2., 2.]]) array([[0., 1.]])

DecisionTreeClassifier поддерживает как двоичную (где метки — [-1, 1]), так и мультиклассовую (где метки — [0, … , K-1]) классификацию.

Используя набор данных Iris, мы можем построить дерево следующим образом:

from sklearn.datasets import load_iris from sklearn import tree

iris = load_iris()

X, y = iris.data, iris.target

clf = tree.DecisionTreeClassifier() clf = clf.fit(X, y) tree.plot_tree(clf)

Более подробная информация представлена на сайте: https://scikit-learn.ru/1-10-decision-trees/

https://scikitlearn.org/stable/modules/generated/sklearn.tree.DecisionTreeClassifier.html

2.2 Случайный лес решений

7

Цель ансамблевых методов классификации — объединить прогнозы нескольких базовых оценок, построенных с заданным алгоритмом обучения, чтобы улучшить обобщаемость / надежность по сравнению с одной оценкой.

Модуль sklearn.ensemble включает в себя два алгоритма усреднения, основанные на рандомизированных деревьев решений: RandomForest и Extra-Trees. Оба алгоритма представляют собой методы «возмущать и комбинировать», специально разработанные для деревьев. Это означает, что разнообразный набор классификаторов создается путем введения случайности в конструкцию классификатора. Прогноз для ансамбля дается как усредненный прогноз отдельных классификаторов.

Как и другие классификаторы, классификаторы на основе леса решений должны быть оснащены двумя массивами: массивом X формы (n_samples, n_features), содержащим обучающие образцы, и массивом Y формы (n_samples), содержащим целевые значения (метки классов) для обучающих образцов:

Количество гиперпараметров RandomForestClassifier достаточно большое:

RandomForestClassifier(n_estimators=10, criterion='gini', max_depth=None, min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0.0, max_features='auto', max_leaf_nodes=None, min_impurity_split=1e-07, bootstrap=True, oob_score=False, n_jobs=1, random_state=None, verbose=0, warm_start=False, class_weight=None)

где

min_samples_split - минимальное число объектов, при котором выполняется расщепление (по умолчанию 2),

min_samples_leaf - ограничение на число объектов в листьях (по умолчанию 1),

max_depth — максимальная глубина деревьев;

criterion — критерий расщепления. Для классификации реализованы критерии “gini” и “entropy”, которые соответствуют классическим критериям расщепления: Джини и энтропийному. По умолчанию используется “gini”.

8

3. Индивидуальные варианты практикума

№ варианта

Var1

Var2

1

0

0.5

2

0.2

0.5

3

0

0.7

4

0.5

0

5

0.7

0

6

0.5

0.2

7

0.1

0.6

8

0.6

0.1

9

-0.1

0.4

10

-0.4

0.4

Рекомендованная литература

1.Жерон Орельен, «Прикладное машинное обучение с помощью ScikitLearn и TensorFlow: концепции, инструменты и техники для создания интеллектуальных систем». Пер. с англ. - СпБ.: ООО «Альфа-книга»: 2018. - 688 с.

2.https://scikit-learn.ru/1-10-decision-trees/

3.https://scikitlearn.org/stable/modules/generated/sklearn.tree.DecisionTreeClassifier.ht ml

Контрольные вопросы:

1.Преимущества деревьев решений.

2.Недостатки деревьев решений.

3.Перечислите параметры настройки класса DecisionTreeClassifier.

4.Цель ансамблевых методов классификации. Какие ансамблевые методы классификации реализованы в библиотеке Scikit-learn.

9

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