62 lines
3.7 KiB
Markdown
62 lines
3.7 KiB
Markdown
|
## Задание
|
|||
|
Данные: 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")
|
|||
|
|
|||
|
Построенные графики
|
|||
|
![Alt text](1graf.jpg "Optional Title")
|
|||
|
|
|||
|
![Alt text](2graf.jpg "Optional Title")
|
|||
|
|
|||
|
![Alt text](3graf.jpg "Optional Title")
|
|||
|
|
|||
|
## Вывод
|
|||
|
В первой модели, как сказано выше, данные делятся линейно. Но точность разделения близка к 1, поэтому задача в данном случае решена.
|
|||
|
В других моделях данные делятся нелинейно и чем выше кол-во нейронов, тем разбиение становится точнее. Но точность в обоих случаях одинаковая.
|