5.7 KiB
Лабораторная работа №1. Бинарная классификация фактографических данных
Цель работы
Получить практические навыки решения задачи бинарной классификации данных в среде Jupyter Notebook. Научиться загружать данные, обучать классификаторы и проводить классификацию. Научиться оценивать точность полученных моделей.
Задание
-
В среде Jupyter Notebook создать новый ноутбук (Notebook)
-
Импортировать необходимые для работы библиотеки и модули
-
Загрузить данные в соответствие с вариантом
-
Вывести первые 15 элементов выборки (координаты точек и метки класса)
-
Отобразить на графике сгенерированную выборку. Объекты разных классов должны иметь разные цвета.
-
Разбить данные на обучающую (
train
) и тестовую (test
) выборки в пропорции 75% - 25% соответственно. -
Отобразить на графике обучающую и тестовую выборки. Объекты разных классов должны иметь разные цвета.
-
Реализовать модели классификаторов, обучить их на обучающем множестве. Применить модели на тестовой выборке, вывести результаты классификации:
- Истинные и предсказанные метки классов
- Матрицу ошибок (
confusion matrix
) - Значения полноты, точности, f1-меры и аккуратности
- Значение площади под кривой ошибок (
AUC ROC
) - Отобразить на графике область принятия решений по каждому классу
В качестве методов классификации использовать:
* Метод к-ближайших соседей (`n_neighbors` = {1, 3, 9})
* Наивный байесовский метод
* Случайный лес (`n_estimators` = {5, 15, 50})
- По результатам п.8 занести в отчет таблицу с результатами классификации всеми методами.
- Изучить, как изменится качество классификации в случае другого разбиения выборки на обучающую и тестовую. Для этого повторить пункты 6, передав в параметр
random_state
новое значение, и пункты 8-9 дважды. - По результатам трех экспериментов составить итоговую таблицу о качестве классификаци каждым методом, включив в нее значения полноты, точности, f1-меры, аккуратности и площади под кривой ошибок. Сделать выводы о наиболее подходящем методе классификации ваших данных
Варианты заданий
Объем выборки для всех вариантов – n_samples = 1000
объектов.
Вариант | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
---|---|---|---|---|---|---|---|---|
Вид классов | blobs | blobs | blobs | blobs | moons | moons | moons | moons |
random_state | 34 | 28 | 41 | 23 | 41 | 23 | 77 | 15 |
cluster_std | 1.5 | 4.5 | 3 | 5 | - | - | - | - |
noise | - | - | - | - | 0.25 | 0.3 | 0.25 | 0.2 |
centers | 2 | 2 | 2 | 2 | - | - | - | - |
Вариант | 9 | 10 | 11 | 12 |
---|---|---|---|---|
Вид классов | classification | classification | classification | classification |
random_state | 78 | 58 | 15 | 30 |
class_sep | 0.45 | 0.7 | 0.6 | 1.0 |
Для всех вариантов, использующих для генерации make_classification
, дополнительные параметры: n_features=2
, n_redundant=0
, n_informative=1
, n_clusters_per_class=1
,
Контрольные вопросы
- Постановка задачи классификации данных. Что такое бинарная классификация?
- Общий алгоритм решения задачи классификации данных.
- Чем отличаются обучающая и тестовая выборки? Какие существуют способы формирования обучающей и тестовой выборок?
- Как рассчитываются значения полноты и точности классификации?
- Как рассчитывается значение площади под кривой ошибок?
- Что показывает и как рассчитывается матрица ошибок?
- Алгоритм и особенности метода к-ближайших соседей.
- Алгоритм и особенности метода случайного леса.