# Лабораторная работа №1. Вариант 4. ## Задание Сгенерируйте определенный тип данных и сравните на нем 3 модели (по варианту). Постройте графики, отобразите качество моделей, объясните полученные результаты. ## Содержание - [Лабораторная работа №1. Вариант 4.](#лабораторная-работа-1-вариант-4) - [Задание](#задание) - [Содержание](#содержание) - [Введение](#введение) - [Зависимости](#зависимости) - [Запуск приложения](#запуск-приложения) - [Описание кода](#описание-кода) - [Создание данных](#создание-данных) - [Создание моделей](#создание-моделей) - [Обучение и оценка моделей](#обучение-и-оценка-моделей) - [Веб-приложение](#веб-приложение) - [Использование](#использование) - [Модели](#модели) - [Линейная регрессия](#линейная-регрессия) - [Полиномиальная регрессия](#полиномиальная-регрессия) - [Гребневая полиномиальная регрессия](#гребневая-полиномиальная-регрессия) - [Заключение](#заключение) ## Введение Это Flask-приложение создано для демонстрации работы различных моделей машинного обучения на сгенерированном наборе данных "Лунные данные". Приложение включает в себя веб-страницу, на которой можно посмотреть визуализацию результатов трех моделей (линейная регрессия, полиномиальная регрессия и гребневая полиномиальная регрессия). ## Зависимости Для работы этого приложения необходимы следующие библиотеки Python: - Flask - Matplotlib - scikit-learn - NumPy - io Вы можете установить их с помощью pip: ```bash pip install flask matplotlib scikit-learn numpy ``` ## Запуск приложения Чтобы запустить это Flask-приложение, выполните следующую команду: ```bash python lab1-web.py ``` Приложение будет доступно по адресу `http://localhost:5000` в вашем веб-браузере. ## Описание кода ### Создание данных Для создания набора данных используется функция `make_moons` из scikit-learn. Данные представляют собой два класса, сгруппированных в форме лун, с добавлением шума. Затем данные нормализуются с использованием `StandardScaler`, и разделяются на обучающий и тестовый наборы данных. ### Создание моделей В коде определены три модели машинного обучения: 1. Линейная регрессия. 2. Полиномиальная регрессия четвертой степени. Она создается с использованием `PolynomialFeatures` и логистической регрессии. 3. Гребневая полиномиальная регрессия четвертой степени. Она также создается с использованием `PolynomialFeatures`, но с добавлением регуляризации (гребня) в логистической регрессии. ### Обучение и оценка моделей Модели обучаются на обучающем наборе данных, и их точность оценивается на тестовом наборе данных с использованием метрики `accuracy_score`, показывающей точность моделей. Результаты оценки сохраняются в словаре `model_results`, который содержит информацию о точности модели и тестовых данных. ### Веб-приложение Приложение реализовано с использованием Flask: - маршрут: `/` - главная страница, на которой отображаются результаты работы моделей. ## Использование 1. Запустите приложение, как описано выше. 2. Перейдите по адресу `http://localhost:5000` в вашем веб-браузере. 3. На главной странице вы увидите результаты работы всех трех моделей, включая их точность. ## Модели ### Линейная регрессия Модель создается следующим образом: ```python "Линейная регрессия": LogisticRegression() ``` Результат в виде графика: ![](/result/result_1.png) Точность полученной модели получилась равной 0.875 ### Полиномиальная регрессия Код создания модели: ```python "Полиномиальная регрессия": make_pipeline(PolynomialFeatures(degree=4), LogisticRegression()) ``` Результат в виде графика: ![](/result/result_2.png) Точность полученной модели получилась равной 0.85 ### Гребневая полиномиальная регрессия Код создания модели: ```python "Гребневая полиномиальная регрессия": make_pipeline(PolynomialFeatures(degree=4), LogisticRegression(penalty='l2', C=1.0)) ``` Результат в виде графика: ![](/result/result_3.png) Точность полученной модели получилась равной 0.85 ## Заключение Все полученные модели: ![](/result/result_4.png) 1. "Линейная регрессия" продемонстрировала самую высокую точность среди всех трех моделей (0.875). - Это означает, что линейная модель достаточно хорошо справляется с задачей классификации данных. - Это может быть следствием хорошо структурированных данных. 2. "Полиномиальная регрессия" и "Гребневая полиномиальная регрессия" имеют одинаковую точность (0.85). - Обе эти модели показали одинаково хорошие результаты и считаются весьма точными для данной задачи. - Это может свидетельствовать о наличии нелинейных зависимостей в данных, которые успешно извлечены благодаря использованию полиномиальных признаков и гребневой регуляризации. - В данном контексте различие между "Полиномиальной регрессией" и "Гребневой полиномиальной регрессией" может быть незначительным, так как точность одинакова. 3. Модели смогли достичь высокой точности, что может указывать на наличие явных зависимостей между признаками и целевой переменной.