63 lines
6.2 KiB
Markdown
63 lines
6.2 KiB
Markdown
Общее задание:
|
||
Используя код из пункта «Регуляризация и сеть прямого
|
||
распространения» из [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) обновляется, и на ней отображаются созданные графики моделей. |