54 lines
4.3 KiB
Markdown
54 lines
4.3 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
|
||
|
||
Утверждение также подтвердилось.
|