Используя код из пункта «Регуляризация и сеть прямого распространения «из [1] (стр. 228), сгенерируйте определенный тип данных и сравните на нем 3 модели (по варианту)Постройте графики, отобразите качество моделей, объясните полученные результаты.
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>
<imgsrc="Рисунок1.png">
</p>
<p>
<div>Графики регрессии</div>
<imgsrc="Рисунок2.png">
<imgsrc="Рисунок3.png">
<imgsrc="Рисунок4.png">
</p>
Исходя из получивших графиков и точночсти с данным типом генерации данных из этих трех моделей наиболее точной получились полиномиальную регрессия (со степенью 3) и гребневaz полиномиальная регрессия (со степенью 3, alpha= 1.0). Они так же являются идентичными между собой. Чтобы проверить это утверждение я провел дополнительное тестирование и написал скрипт, который для 10 разных random_state (2-11) вычисляет точность для трех разных моделей.