IIS_2023_1/gordeeva_anna_lab_1/readme.md

63 lines
3.7 KiB
Markdown
Raw Normal View History

2023-09-21 23:02:58 +04:00
## Задание
Данные: make_moons (noise = 0.3, random_state = 0)
Модели:
* Персептрон
* Многослойный персептрон с 10-ю нейронами в скрытом поле (alpha = 0.01)
* Многослойный персептрон с 100-а нейронами в скрытом поле (alpha = 0.01)
## В чем различие каждой модели
Персептрон:
* самая простая форма искусственной нейронной сети
* состоит из одного или нескольких нейронов
* только один слой нейронов
* разделяет данные линейно
Многослойный персептрон с 10-ю/100-а нейронами в скрытом поле (alpha = 0.01)
* более сложная форма искусственной нейронной сети
* состоит из нескольких слоев, причем имеет один или несколько скрытых слоев
* способен решать задачи классификации, регрессии, обработки изображений, текста и т.д
Общий вывод таков, что многослойный персептрон способен решать более сложные задачи, требующие нелинейных решений.
## Библиотеки
Streamlit. Предоставляет простой способ создания веб-приложений для визуализации данных.
Numpy. Предоставляет возможность работать с массивами и матрицами.
Matplotlib. Используется для создания графиков.
Sklearn. Предоставляет инструменты и алгоритмы, которые упрощают задачи, связанные с машинным обучением.
## Функционал
Предоставляет создание объекта для каждой модели персептрона.
Создание данных с помощью функции make_moon c последующим
делением данных на обучающую и тестовую выборку.
Метод print_perceptron, в котором происходит обучение модели, определение точности и отрисовка графика.
## Запуск
Перед запуском необходимо запустить виртуальную среду venv. Так как я использую streamlit, то для запуска необходимо в терминал прописать следующую строку:
```
streamlit run lab1.py
```
Приложение развернется на локальном сервере и автоматически откроется в браузере.
## Скриншоты работы программы
При запуске выглядит так:
![Alt text](win_start.jpg "Optional Title")
Построенные графики
2023-09-21 23:07:09 +04:00
2023-09-21 23:02:58 +04:00
![Alt text](1graf.jpg "Optional Title")
![Alt text](2graf.jpg "Optional Title")
![Alt text](3graf.jpg "Optional Title")
## Вывод
В первой модели, как сказано выше, данные делятся линейно. Но точность разделения близка к 1, поэтому задача в данном случае решена.
В других моделях данные делятся нелинейно и чем выше кол-во нейронов, тем разбиение становится точнее. Но точность в обоих случаях одинаковая.