47 lines
4.4 KiB
Markdown
47 lines
4.4 KiB
Markdown
|
## Задание
|
|||
|
Сгенерировать определенный тип данных и сравнить на нем 3 модели. Построить графики, отобразить качество моделей, объяснить полученные результаты.
|
|||
|
Вариант 1.
|
|||
|
Данные: make_moons (noise=0.3, random_state=rs)
|
|||
|
Модели:
|
|||
|
· Линейная регрессия
|
|||
|
· Полиномиальная регрессия (со степенью 3)
|
|||
|
· Гребневая полиномиальная регрессия (со степенью 3, alpha = 1.0)
|
|||
|
|
|||
|
### Запуск программы
|
|||
|
Файл lab1.py содержит и запускает программу, аргументов и настройки ~~вроде~~ не требует,
|
|||
|
|
|||
|
### Описание программы
|
|||
|
Генерирует один из 50 наборов данных, показывает окно с графиками и пишет оценку моделей обучения по заданию.
|
|||
|
Использует библиотеки 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, что результирует в малом эффекте гребневой функции.
|