Использует библиотеки 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, что результирует в малом эффекте гребневой функции.