4.3 KiB
Вариант 2
Задание: Используя код из пункта «Регуляризация и сеть прямого распространения «из [1] (стр. 228), сгенерируйте определенный тип данных и сравните на нем 3 модели (по варианту)Постройте графики, отобразите качество моделей, объясните полученные результаты.
Данные: make_circles (noise=0.2, factor=0.5, random_state=rs) Модели: · Линейную регрессию · Полиномиальную регрессию (со степенью 3) · Гребневую полиномиальную регрессию (со степенью 3, alpha= 1.0)
Запуск: Запустите файл lab1.py
Описание программы:
- Генерирует набор данных с использованием функции make_circles из scikit-learn. Этот набор данных представляет собой два класса, где точки одного класса окружают точки другого класса с добавленным шумом.
- Разделяет данные на обучающий и тестовый наборы с помощью функции train_test_split.
- Создает три разные модели для классификации данных:
- Линейная регрессия (Logistic Regression).
- Полиномиальная регрессия третьей степени (Polynomial Regression).
- Гребневая полиномиальная регрессия третьей степени с регуляризацией и альфой равной единице (Ridge Polynomial Regression).
- Обучаем каждую из этих моделей на обучающем наборе данных и оцениваем их точность на тестовом наборе данных.
- Выводит результаты точности каждой модели.
- Разделение областей предсказаний моделей (границы решения).
- Тестовые и обучающие точки, окрашенные в соответствии с классами. (красным и синим)
Результаты:
Исходя из получивших графиков и точночсти с данным типом генерации данных из этих трех моделей наиболее точной получились полиномиальную регрессия (со степенью 3) и гребневaz полиномиальная регрессия (со степенью 3, alpha= 1.0). Они так же являются идентичными между собой. Чтобы проверить это утверждение я провел дополнительное тестирование и написал скрипт, который для 10 разных random_state (2-11) вычисляет точность для трех разных моделей.
Результаты:
Значения точности для каждой модели: Линейная регрессия 0.40 0.52 0.44 0.56 0.48 0.49 0.50 0.49 0.46 0.40 Полиномиальная регрессия (со степенью 3) 0.63 0.67 0.74 0.64 0.80 0.73 0.64 0.81 0.46 0.62 Гребневая полиномиальная регрессия (со степенью 3, alpha = 1.0) 0.63 0.67 0.74 0.64 0.80 0.73 0.64 0.81 0.46 0.62
Средние значения точности: Линейная регрессия - Средняя точность: 0.47 Полиномиальная регрессия (со степенью 3) - Средняя точность: 0.68 Гребневая полиномиальная регрессия (со степенью 3, alpha = 1.0) - Средняя точность: 0.68
Утверждение также подтвердилось.