IIS_2023_1/belyaeva_ekaterina_lab_1/README.md

49 lines
3.5 KiB
Markdown
Raw Normal View History

2023-10-10 14:11:18 +04:00
## Задание
Вариант 6:
Данные: make_classification (n_samples=500, n_features=2, n_redundant=0, n_informative=2,
random_state=rs, n_clusters_per_class=1)
Модели:
· Линейную регрессию
· Полиномиальную регрессию (со степенью 4)
· Гребневую полиномиальную регрессию(со степенью 4, alpha= 1.0)
## Как запустить лабораторную
Запустить файл main.py
## Используемые технологии
Библиотеки matplotlib, scikit-learn, их компоненты, все описано ниже
## Описание лабораторной (программы)
Программа генерирует набор данных с помощью функции make_classification с параметрами из задания
Далее происходит разделение данных на обучащей и тестовый наборы с помощью функции train_test_split
Потом происходит обучение моделей на тестовой выборке
И предсказание уже на данных, которые остались
В конце программа строит графики, отображающие данные в задании модели и выводит в консоль оценку их работы
## Результат
В результате программа выводит графики, скриншоты которых находятся в репозитории, а также оценки производительности обучения, полученные через model.score:
Линейная регрессия: 0.92
Полиномиальная регрессия: 0.96
Гребневая полиномиальная регрессия: 0.7958276459808132
Из результата видно, что наиболее качественной для решения данной задачи оказалась полиномиальная регрессия, наименее - гребневая полиномиальная
После полученных результатов я решила провести несколько тестов и вот что из этого вышло:
Если поменять test_size c 0.8 на 0.2, то результат работы моделей ухудшится, и чем хуже он был до этого, тем еще более хуже стал
Линейная регрессия: 0.8725
Полиномиальная регрессия: 0.955
Гребневая полиномиальная регрессия: 0.6678458571780717
Если изменить количество samples с 500 на 2500, то результат работы моделей значительно улучшится:
Линейная регрессия: 0.996
Полиномиальная регрессия: 0.998
Гребневая полиномиальная регрессия: 0.9701030991054763
Несмотря на это, по качеству модели выстроены все в том же порядке, что и при вводе дефолтных данных, хотя по результату все они решают задачу достаточно хорошо при получении достаточного количества данных