Построение искусственной нейронной сети посредством neuralnet на языке r (на примере набора данных iris)

Характеристика процесса построения простейшей нейронной сети в пакете neuralnet. Анализ алгоритма подготовки данных на примере набора данных iris. Описание процесса обучения нейронной сети. Оценка качества классификации данных полученной нейронной сетью.

Рубрика Программирование, компьютеры и кибернетика
Вид статья
Язык русский
Дата добавления 28.10.2020
Размер файла 779,8 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Построение искусственной нейронной сети посредством neuralnet на языке r (на примере набора данных iris)

Босых О.С., студент магистратуры 2 курса Хакасский государственный университет им. Н.Ф. Катанова

Россия, г. Абакан Научный руководитель: Голубничий А.А.

Аннотация

нейронная сеть neuralnet алгоритм

В статье описывается процесс построения простейшей нейронной сети в пакете neuralnet. Рассматривается алгоритм подготовки данных на примере набора данных iris. Описывается процесс обучения нейронной сети. Оценивается качество классификации данных полученной нейронной сетью.

Ключевые слова: R, искусственные нейронные сети, neuralnet.

Abstract

The article describes the process of building the simplest neural network in the neuralnet package. The algorithm of data preparation on the example of the iris data set is considered. Describes the process of learning a neural network. The quality of data classification obtained by the neural network is evaluated.

Key words: R, artificial neural networks, neuralnet.

Процесс создания искусственных нейронных сетей на разных языках программирования требует различных усилий. Реализация алгоритма обучения нейронной сети, без использования специализированных модулей, одинаково сложная задача для большинства языков программирования. В целях упрощения, в рамках данного исследования, будет использован язык программирования R [1] и пакет neuralnet [2]. Исходными данными для обучения выступит встроенный в базовую версию языка набор данных iris, содержащий сведения о морфометрии разных видов ириса [3].

Прежде чем приступать к созданию нейронной сети, необходимо выгрузить исходные данные и подготовить их к обучению (рис. 1.).

Рисунок 1. Исходный код загрузки и обработки данных

Для упрощения работы с данными уменьшим исходный набор со 150 до 100 значений, тем самым уберем из выборки один из видов ириса (останутся виды setosa и versicolor). Еще одним методом упрощения будет передача численного значения соответствующим видам, так, заменим вид setosa значением 1, а versicolor - 0, данную операцию проведем тернарным оператором ifelse. Используя функцию sample, случайным образом разобьем исходный набор данных на тренировочный (70%) и тестовый (30%). Для работы с нейронной сетью необходимо нормализовать данные, эту процедуру можно выполнить как вручную, используя функции min, max и соответствующие арифметические операции, так и используя стандартную функцию scale.

Как уже было сказано, обучение нейронной сети происходит благодаря пакету neuralnet. Данный пакет размещен в официальном репозитории CRAN, поэтому его можно загрузить и подключить стандартным набором функций install.packages() и library() (рис. 2.). Сам процесс тренировки сети осуществляется через функцию, аналогичную названию пакета, путем передачи в формате формулы выходного параметра и входных параметров, набора для обучения и структуры самой сети.

Рисунок 2. Исходный код установки и загрузки пакета ивигаШ и тренировки нейронной сети

Определение вида растения по морфометрии является естественной задачей, по этой причине нет необходимости выстраивать сложную структуру нейронной сети. В нашем примере мы ограничиваемся нейронной сетью с одним скрытым слоем с двумя нейронами (рис. 3.).

Тестирование качества нейронной сети будем проводить, используя заранее подготовленную выборку из исходных данных (рис. 4.). С помощью команды subset подготовим временный набор данных с исключением переменной Species. Используя функцию compute, проведем расчет исключенной нами переменной с использованием нейронной сети. Далее, округлив значения до целых, построим таблицу сравнения исходных данных (actual) и предсказанных с помощью нейронной сети (prediction) (рис. 5.).

Рисунок 4. Исходный код тестирования нейронной сети

Рисунок 5. Оценка работы нейронной сети

Качество работы нейронной сети можно оценить по количеству значений, лежащих вне диагонали - чем меньше значений, тем точнее работа нейронной сети. В нашем примере значений, не относящихся к диагонали, обнаружено не было, что свидетельствует о точности решения исходной задачи.

Использованные источники

1. R: The R Project for Statistical Computing [Электронный ресурс] URL: https://www.r-project.org (дата обращения: 12.01.2019).

2. CRAN - Package neuralnet [Электронный ресурс] URL: https://cran.r- project.org/web/packages/neuralnet/index.html (дата обращения: 12.01.2019).

3. Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole. (has iris3 as iris.)

Размещено на Allbest.ru


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.