IIS_2023_1/savenkov_alexander_lab_1
2023-10-12 15:17:22 +04:00
..
.idea savenkov_alexander_lab_1 is done 2023-10-12 15:17:22 +04:00
static savenkov_alexander_lab_1 is done 2023-10-12 15:17:22 +04:00
templates savenkov_alexander_lab_1 is done 2023-10-12 15:17:22 +04:00
app.py savenkov_alexander_lab_1 is done 2023-10-12 15:17:22 +04:00
readme.md savenkov_alexander_lab_1 is done 2023-10-12 15:17:22 +04:00

Общее задание: Используя код из пункта «Регуляризация и сеть прямого распространения» из [1] (стр. 228), сгенерируйте определенный тип данных и сравните на нем 3 модели (по варианту). Постройте графики, отобразите качество моделей, объясните полученные результаты.

Задание по вариантам 1 вариант (22), взял 1 т.к. всего 21 вариант задания:

  1. Данные: make_moons (noise=0.3, random_state=rs) Модели: · Линейную регрессию · Полиномиальную регрессию (со степенью 3) · Гребневую полиномиальную регрессию (со степенью 3, alpha = 1.0)

Запуск приложения осуществляется запуском файла app.py

Использованные технологии: Среда программирования Pycharm Версия языка python: 3.11 Flask: Flask - это микрофреймворк для создания веб-приложений на языке Python. Он используется для создания веб-сервера и определения маршрутов, таких как '/' и '/compare_models', для обработки запросов.

HTML: Ваш шаблон index.html использует язык разметки HTML для создания веб-страницы и отображения содержимого на веб-сайте.

Matplotlib: Matplotlib - это библиотека для создания графиков и визуализации данных. В этой программе она используется для создания трех графиков, представляющих результаты различных моделей.

NumPy: NumPy - это библиотека для вычислительных операций с массивами и матрицами. В этой программе она используется для генерации данных (make_moons) и работы с данными.

Scikit-Learn (sklearn): Scikit-Learn - это библиотека машинного обучения для Python. Она используется для обучения трех моделей машинного обучения: линейной регрессии, полиномиальной регрессии и гребневой полиномиальной регрессии.

Jinja2: Flask использует шаблонизатор Jinja2 для вставки динамических данных (например, параметра result) в HTML-шаблоны.

Файловая система и статические файлы: В программе используется файловая система для сохранения изображений графиков (static/models_comparison.png). Эти изображения затем отображаются на веб-странице как статические файлы.

Краткое описание работы программы: В разделе HTML (index.html) определен шаблон для главной страницы. Этот шаблон содержит заголовок, форму для отправки POST-запроса на /compare_models и, если result истинно, отображает изображение графиков моделей.

В Python-скрипте (app.py) создается Flask-приложение, которое имеет два маршрута:

'/' отвечает за главную страницу и отображает шаблон index.html. '/compare_models' обрабатывает POST-запрос, обучает различные модели и создает графики. После этого он возвращает результат в виде изображений и обновляет страницу с параметром result=True, чтобы отобразить изображения. Для генерации данных используется make_moons, а затем данные разбиваются на обучающий и тестовый наборы.

Тренируются три модели: линейная регрессия, полиномиальная регрессия (степень 3) и гребневая полиномиальная регрессия (степень 3, alpha=1.0).

После обучения моделей создаются три графика, каждый из которых представляет собой точечное облако с цветной разметкой, а также заголовок, содержащий оценку (score) модели.

Графики сохраняются в файл static/models_comparison.png.

Наконец, приложение запускается с debug=True в режиме отладки.

Пример входных данных: X = [[-0.5, 0.5], [0.2, 1.2], [1.5, -0.3], ... ] # Матрица признаков

y = [0, 1, 0, 1, 1, 0, 0, 1, ...] # Вектор меток классов

Пример выходных данных: Графики моделей: Это изображения, на которых отображены точки данных с цветной разметкой в соответствии с предсказанными значениями моделей. Оценки моделей: В заголовках графиков отображаются оценки моделей (например, Score: 0.85), которые показывают качество каждой модели на тестовых данных.

Обновленная главная страница: После генерации графиков, главная страница (index.html) обновляется, и на ней отображаются созданные графики моделей.