.. | ||
lab1.py | ||
readme.md |
##Задание Сгенерировать определенный тип данных и сравнить на нем 3 модели. Построить графики, отобразить качество моделей, объяснить полученные результаты. Вариант 1. Данные: make_moons (noise=0.3, random_state=rs) Модели: · Линейная регрессия · Полиномиальная регрессия (со степенью 3) · Гребневая полиномиальная регрессия (со степенью 3, alpha = 1.0)
###Запуск программы
Файл lab1.py содержит и запускает программу, аргументов и настройки вроде не требует,
###Описание программы Генерирует один из 10 наборов данных, показывает окно с графиками и пишет оценку моделей обучения по заданию. Использует библиотеки matplotlib для демонстрации графиков и sklearn для создания и использования моделей.
###Результаты тестирования Для различных значений rs результаты следующие: значение - линейная - полиномиальная - гребневая полиномиальная 1 - 0.54 - 0.08 - 0.35 2 - 0.62 - 0.58 - 0.63 3 - 0.6 - 0.67 - 0.65 4 - 0.52 - 0.46 - 0.5 5 - 0.4 - 0.42 - 0.44 Из данных результатов можно заключить, что чёткой зависимости точности от выбранной модели нет.
Однако, после этого я добавил в генератор данных число значений: 500. Результаты оказались более детерминированными: значение - линейная - полиномиальная - гребневая полиномиальная 1 - 0.54 - 0.63 - 0.63 2 - 0.52 - 0.63 - 0.62 3 - 0.56 - 0.64 - 0.64 4 - 0.5 - 0.63 - 0.62 5 - 0.5 - 0.52 - 0.53 Из данных результатов можно заключить, что в общем случае модель линейной регрессии уступает полиномиальным. Гребневая полиномиальная регрессия чаще уступала обычной полиномиальной, однако в незначительном количестве ситуаций была оценена выше - но во всех случаях результаты были близки, поэтому можно с уверенностью предположить, что результаты идентичны и различаются по воле шума обучения.
После изучения число значений в генераторе заменено на 250, поскольку графики становились неразличимыми^ значение - линейная - полиномиальная - гребневая полиномиальная 1 - 0.48 - 0.54 - 0.54 2 - 0.5 - 0.56 - 0.56 3 - 0.57 - 0.6 - 0.6 4 - 0.57 - 0.66 - 0.68 5 - 0.49 - 0.54 - 0.55 По данным результатам видно, что в большинстве ситуаций уже гребневая полиномиальная регрессия показывает лучшую точность.
Результаты объясняются следующим образом: Линейная регрессия будучи математически прямой плохо отражает сложные функции и нелинейные зависимости, в то время как полиномиальная регрессия способна отражать перегибы и изменяющиеся в зависимости от меры значений зависимости. Гребневая полиномиальная вышла идентичной простой полиномиальной из-за одинаковых настроек - обе они по заданию имеют третью степень, а гребневая регрессия имеет слишком малый параметр alpha, что результирует в малом эффекте гребневой функции.