Aprendizaje profundo en programación R

El aprendizaje profundo es un tipo de inteligencia artificial o función de IA que intenta imitar o imitar el principio de funcionamiento de un cerebro humano para el procesamiento de datos y la creación de patrones con fines de toma de decisiones. Es un subconjunto de ML o aprendizaje automático en una IA que posee o tiene redes que son capaces de aprender sin supervisión a partir de datos que no están etiquetados ni estructurados. El aprendizaje profundo también se puede llamar aprendizaje neuronal profundo o red neuronal profunda. Deep Learning AI es capaz de aprender sin supervisión humana, a partir de cualquier tipo de datos. Al ser un subconjunto del aprendizaje automático, el aprendizaje profundo utiliza una red neuronal artificialde un nivel jerárquico para llevar a cabo los procedimientos o procesos de aprendizaje automático. Con la ayuda del aprendizaje profundo, podemos desentrañar una gran cantidad de datos que no están estructurados por naturaleza. Para los humanos, normalmente tomaría décadas entenderlo y procesarlo. 

Implementación en R

R Language ha sido decorado con muchos paquetes de aprendizaje profundo en CRAN en el transcurso del tiempo. Algunos de estos paquetes son los siguientes:

Nombre del paquete R

Descripción

neto

Se utiliza para feed-forward NN que tiene una sola capa oculta 

o para un modelo log-lineal multinomial. 

red neuronal Se utiliza en el entrenamiento de NN mediante retropropagación.
h2o Es una funcionalidad de R Scripting para H2O
RSNN Una interfaz para el Simulador NN de Stuttgart.
tensorflow Una interfaz para TensorFlow.
red profunda Es un conjunto de herramientas en R para el aprendizaje profundo.
dardo

Es un paquete para las Arquitecturas Profundas y 

Máquinas de Boltzmann restringidas.

rnn Un paquete para implementar Recurrent NN.
FCNN4R Interfaz para la biblioteca FCNN que permite ANN ampliables por el usuario.
rcppdl Se utiliza para implementar el aprendizaje automático.
más profundo

Basado en Darch y Deepnet, es un paquete para 

mejorar la agilización del proceso de entrenamiento y predicción

y ajuste para el aprendizaje profundo.

Recientemente , Keras, kerasR y keras también se utilizan con fines de aprendizaje profundo. Aquí usaremos el paquete deepnet para implementar el aprendizaje profundo. Procedamos con el procedimiento paso a paso de la implementación. Todo el proceso de implementación se puede dividir en los siguientes pasos:

Paso 1: Instalación y carga de los paquetes 

Antes de continuar con las implementaciones, instale los paquetes necesarios. Para nuestra implementación, necesitaremos los paquetes deepnet y mlbench. Para instalar estos paquetes desde R Console, use el comando. En la instalación exitosa de estos paquetes, cárguelos en R Script usando el comando de la siguiente manera:

R

# Deep Learning in R
# loading the required packages
library(mlbench)
library(deepnet)

Paso 2: elegir el conjunto de datos  

Ahora la tarea es seleccionar un conjunto de datos adecuado para la implementación. Aquí vamos a trabajar con el conjunto de datos de cáncer de mama en el paquete mlbench. Incluya el conjunto de datos en el R Script de la siguiente manera:

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)

Producción:

> head(BreastCancer)
       Id Cl.thickness Cell.size Cell.shape Marg.adhesion Epith.c.size Bare.nuclei Bl.cromatin Normal.nucleoli Mitoses     Class
1 1000025            5         1          1             1            2           1           3               1       1    benign
2 1002945            5         4          4             5            7          10           3               2       1    benign
3 1015425            3         1          1             1            2           2           3               1       1    benign
4 1016277            6         8          8             1            3           4           3               7       1    benign
5 1017023            4         1          1             3            2           1           3               1       1    benign
6 1017122            8        10         10             8            7          10           9               7       1 malignant
> names(BreastCancer)
 [1] "Id"              "Cl.thickness"    "Cell.size"       "Cell.shape"      "Marg.adhesion"   "Epith.c.size"    "Bare.nuclei"    
 [8] "Bl.cromatin"     "Normal.nucleoli" "Mitoses"         "Class" 

Paso 3: Aplicar el paquete deepnet al conjunto de datos

Aplique el paquete de aprendizaje profundo en el conjunto de datos elegido. Aquí, cree un conjunto de características para variables independientes y cree la variable dependiente.

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)

Paso 4: Modelado de NN

Aplique la función bajo el paquete deepnet para modelar la red neuronal.

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))

Producción:

> print(head(yy))
          [,1]
[1,] 0.2743838
[2,] 0.4130857
[3,] 0.2892783
[4,] 0.4232022
[5,] 0.2817078
[6,] 0.4526502

Paso 5: Crear una array de confusión

Recupere la salida de la red neuronal y luego conviértala en clase. Para crear una array de confusión, utilice la función. También verifique la precisión de la array de confusión dividiendo la suma de los elementos diagonales con el recuento total o la suma de todos los números.

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))

Producción:

> print(cm)
   yhat
y     0   1
  0 425  19
  1   4 235
> print(sum(diag(cm))/sum(cm))
[1] 0.966325

Publicación traducida automáticamente

Artículo escrito por shaonim8 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *