Глубокое обучение в программировании на R
Глубокое обучение - это тип искусственного интеллекта или функции ИИ, который пытается имитировать или имитировать принцип работы человеческого мозга для обработки данных и создания шаблонов для целей принятия решений. Это подмножество машинного обучения или машинного обучения в искусственном интеллекте, который владеет или имеет сети, способные к неконтролируемому обучению на основе немаркированных или неструктурированных данных. Глубокое обучение также можно назвать глубоким нейронным обучением или глубокой нейронной сетью. Искусственный интеллект с глубоким обучением способен обучаться без участия человека, используя любые данные. Будучи подмножеством машинного обучения, глубокое обучение использует искусственную нейронную сеть иерархического уровня для выполнения процедур или процессов машинного обучения. С помощью глубокого обучения мы можем распутать огромное количество неструктурированных данных. Обычно людям требуются десятилетия, чтобы понять и обработать это.
Реализация в R
Со временем R Language был дополнен множеством пакетов глубокого обучения в CRAN. Вот некоторые из этих пакетов: Имя пакета R Описание Используется для NN с прямой связью, имеющей единственный скрытый слой или для полиномиальной лог-линейной модели. Это пакет для глубинных архитектур и Ограниченные машины Больцмана. Основанный на darch и deepnet, это пакет для повысить эффективность обучения, прогнозирования процесса и тонкая настройка для глубокого обучения. nnet нейронная сеть Используется при обучении нейронной сети с использованием обратного распространения. H2O Это функциональность сценариев R для H2O. RSNNS Интерфейс к Stuttgart NN Simulator. тензорный поток Интерфейс для TensorFlow. глубокая сеть Это набор инструментов на языке R для глубокого обучения. черпать rnn Пакет для реализации Recurrent NN. FCNN4R Интерфейс для библиотеки FCNN, позволяющий создавать ИНС, расширяемые пользователем. rcppdl Используется для реализации машинного обучения. глубже
В последнее время Keras, kerasR и keras также используются для целей глубокого обучения. Здесь мы будем использовать пакет deepnet для реализации глубокого обучения. Приступим к пошаговой процедуре реализации. Весь процесс внедрения можно разделить на следующие этапы:
Шаг 1: установка и загрузка пакетов
Before proceeding with the implementations, install the required packages. For our implementation, we will require the deepnet and mlbench packages. To install these packages from the R Console use the install.packages() command. On successful installation of these packages, load them in the R Script using the library() command as follows:
R
# Deep Learning in R # loading the required packages library (mlbench) library (deepnet) |
Шаг 2: выбор набора данных
Now the task is to select a proper dataset for the implementation. Here let’s work with the Breast Cancer Dataset under the mlbench package. Include the data set in the R Script as follows:
R
# Deep learning in R # loading the required packages library (mlbench) library (deepnet) data ( "BreastCancer" ) # Clean off rows with missing data BreastCancer = BreastCancer[ which ( complete.cases (BreastCancer) == TRUE ),] head (BreastCancer) names (BreastCancer) |
Выход:
> голова (BreastCancer) Id Толщина клетки Размер клетки Форма клетки Маржа адгезии Размер эпит.ц. Голые ядра Бл. Хроматин Нормальные ядра Класс митозов 1 1000025 5 1 1 1 2 1 3 1 1 доброкачественный 2 1002945 5 4 4 5 7 10 3 2 1 доброкачественный 3 1015425 3 1 1 1 2 2 3 1 1 доброкачественный 4 1016277 6 8 8 1 3 4 3 7 1 доброкачественный 5 1017023 4 1 1 3 2 1 3 1 1 доброкачественный 6 1017122 8 10 10 8 7 10 9 7 1 злокачественный > имена (BreastCancer) [1] «Id» «Cl.thickness» «Cell.size» «Cell.shape» «Marg.adhesion» «Epith.c.size» «Bare.nuclei» [8] «Бл. Хроматин» «Нормальные ядра» «Митозы» «Класс»
Шаг 3. Применение пакета deepnet к набору данных
Apply the deep learning package on the chosen dataset. Here, create a set of features for independent variables, and create the dependent variable.
R
# Deep learning in R # Loading the required packages library (mlbench) library (deepnet) data ( "BreastCancer" ) # Clean off rows with missing data BreastCancer = BreastCancer[ which ( complete.cases (BreastCancer) == TRUE ),] head (BreastCancer) names (BreastCancer) y = as.matrix (BreastCancer[, 11]) y[ which (y == "benign" )] = 0 y[ which (y == "malignant" )] = 1 y = as.numeric (y) x = as.numeric ( as.matrix (BreastCancer[, 2:10])) x = matrix ( as.numeric (x), ncol = 9) |
Шаг 4: Моделирование NN
Apply nn.train() function under the deepnet package in order to model the neural network.
R
# Deep learning in R # Loading packages in R library (mlbench) library (deepnet) data ( "BreastCancer" ) # Clean off rows with missing data BreastCancer = BreastCancer[ which ( complete.cases (BreastCancer) == TRUE ),] head (BreastCancer) names (BreastCancer) y = as.matrix (BreastCancer[, 11]) y[ which (y == "benign" )] = 0 y[ which (y == "malignant" )] = 1 y = as.numeric (y) x = as.numeric ( as.matrix (BreastCancer[, 2:10])) x = matrix ( as.numeric (x), ncol = 9) # Applying nn.train() function nn <- nn.train (x, y, hidden = c (5)) yy = nn.predict (nn, x) print ( head (yy)) |
Выход:
> печать (голова (гг)) [, 1] [1,] 0,2743838 [2,] 0,4130857 [3,] 0,2892783 [4,] 0,4232022 [5,] 0,2817078 [6,] 0,4526502
Шаг 5: Создание матрицы путаницы
Retrieve the neural network’s output and then convert it into class. In order to create a confusion matrix, use the table() function. Also check the accuracy of the confusion matrix by dividing the sum of the diagonal elements with the total count or sum of all the numbers.
R
# Deep Learning in R # Loading required packages library (mlbench) library (deepnet) data ( "BreastCancer" ) # Clean off rows with missing data BreastCancer = BreastCancer[ which ( complete.cases (BreastCancer) == TRUE ),] head (BreastCancer) names (BreastCancer) y = as.matrix (BreastCancer[, 11]) y[ which (y == "benign" )] = 0 y[ which (y == "malignant" )] = 1 y = as.numeric (y) x = as.numeric ( as.matrix (BreastCancer[, 2:10])) x = matrix ( as.numeric (x), ncol = 9) # Applying nn.train() method nn <- nn.train (x, y, hidden = c (5)) yy = nn.predict (nn, x) print ( head (yy)) yhat = matrix (0, length (yy), 1) yhat[ which (yy > mean (yy))] = 1 yhat[ which (yy <= mean (yy))] = 0 # Applying table() function cm = table (y, yhat) print (cm) print ( sum ( diag (cm))/ sum (cm)) |
Выход:
> печать (см) yhat г 0 1 0 425 19 1 4 235 > печать (сумма (диаг (см)) / сумма (см)) [1] 0,966325