51 lines
4.2 KiB
Markdown
51 lines
4.2 KiB
Markdown
|
Вариант 2
|
|||
|
|
|||
|
Задание:
|
|||
|
Используя код из пункта «Регуляризация и сеть прямого распространения «из [1] (стр. 228), сгенерируйте определенный тип данных и сравните на нем 3 модели (по варианту)Постройте графики, отобразите качество моделей, объясните полученные результаты.
|
|||
|
|
|||
|
Данные:
|
|||
|
make_circles (noise=0.2, factor=0.5, random_state=rs) Модели: · Линейную регрессию · Полиномиальную регрессию (со степенью 3) · Гребневую полиномиальную регрессию (со степенью 3, alpha= 1.0)
|
|||
|
|
|||
|
Запуск:
|
|||
|
Запустите файл lab1.py
|
|||
|
|
|||
|
Описание программы:
|
|||
|
1. Генерирует набор данных с использованием функции make_circles из scikit-learn. Этот набор данных представляет собой два класса, где точки одного класса окружают точки другого класса с добавленным шумом.
|
|||
|
2. Разделяет данные на обучающий и тестовый наборы с помощью функции train_test_split.
|
|||
|
3. Создает три разные модели для классификации данных:
|
|||
|
4. Линейная регрессия (Logistic Regression).
|
|||
|
5. Полиномиальная регрессия третьей степени (Polynomial Regression).
|
|||
|
6. Гребневая полиномиальная регрессия третьей степени с регуляризацией и альфой равной единице (Ridge Polynomial Regression).
|
|||
|
7. Обучаем каждую из этих моделей на обучающем наборе данных и оцениваем их точность на тестовом наборе данных.
|
|||
|
8. Выводит результаты точности каждой модели.
|
|||
|
9. Разделение областей предсказаний моделей (границы решения).
|
|||
|
10. Тестовые и обучающие точки, окрашенные в соответствии с классами. (красным и синим)
|
|||
|
|
|||
|
Результаты:
|
|||
|
|
|||
|
<p>
|
|||
|
<div>Точность</div>
|
|||
|
<img src="Рисунок1.png">
|
|||
|
</p>
|
|||
|
|
|||
|
<p>
|
|||
|
<div>Графики регрессии</div>
|
|||
|
<img src="Рисунок2.png">
|
|||
|
<img src="Рисунок3.png">
|
|||
|
<img src="Рисунок4.png">
|
|||
|
</p>
|
|||
|
|
|||
|
|
|||
|
Исходя из получивших графиков и точночсти с данным типом генерации данных из этих трех моделей наиболее точной получились полиномиальную регрессия (со степенью 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
|