Teoría

Una Red Neuronal Artificial (ANN) modela la relación entre un conjunto de entradas y una salida, resolviendo un problema de aprendizaje.

Algunos ejemplos de aplicación de ANN son:

La recomendación de contenido de Netflix. El feed de Instagram. Determinar el número escrito a mano.

Paso 1 - librerías

#install.packages("neurnalnet")
library(neuralnet)

Paso 2 - Obtener datos

examen <- c(20,10,30,20,80,30)
proyecto <- c(90,20,40,50,50,80)
status <- c(1,0,0,0,0,1)

df1 <- data.frame(examen, proyecto, status)
df1
##   examen proyecto status
## 1     20       90      1
## 2     10       20      0
## 3     30       40      0
## 4     20       50      0
## 5     80       50      0
## 6     30       80      1

Paso 3: Crear Red Neuronal

set.seed(123)
rn1 <- neuralnet(status ~ ., data = df1)
summary(rn1)
##                     Length Class      Mode    
## call                 3     -none-     call    
## response             6     -none-     numeric 
## covariate           12     -none-     numeric 
## model.list           2     -none-     list    
## err.fct              1     -none-     function
## act.fct              1     -none-     function
## linear.output        1     -none-     logical 
## data                 3     data.frame list    
## exclude              0     -none-     NULL    
## net.result           1     -none-     list    
## weights              1     -none-     list    
## generalized.weights  1     -none-     list    
## startweights         1     -none-     list    
## result.matrix        8     -none-     numeric
plot(rn1, rep="best")

Paso 4 - Predecir resultados

prueba_examen <- c(30,40,85)
prueba_proyecto <- c(85,50,40)
prueba1 <- data.frame(prueba_examen,prueba_proyecto)
prediccion <- compute(rn1, prueba1)
prediccion$net.result
##             [,1]
## [1,]  1.04011743
## [2,] -0.02359178
## [3,] -0.02359178
probabilidad <- prediccion$net.result
resultado <- ifelse(probabilidad >0.5, 1,0)
resultado
##      [,1]
## [1,]    1
## [2,]    0
## [3,]    0
LS0tCnRpdGxlOiAiUGFzZSBkZSBtYXRlcmlhIgphdXRob3I6ICJHYWJyaWVsIE1lZGluYSAtIEEwMTI3NTc2MyIKZGF0ZTogIjIwMjQtMDItMjAiCm91dHB1dDoKICBodG1sX2RvY3VtZW50OgogICAgY29kZV9mb2xkaW5nOiBoaWRlCiAgICB0b2M6IHllcwogICAgdG9jX2Zsb2F0OiB5ZXMKICAgIGNvZGVfZG93bmxvYWQ6IHllcwogICAgdGhlbWU6IGx1bWVuCiAgICBoaWdobGlnaHQ6IHRhbmdvCiAgcGRmX2RvY3VtZW50OgogICAgdG9jOiB5ZXMKLS0tCgo8c3R5bGU+CmgxLCBoMiwgaDMsIGg0LCBoNSwgaDYgewogIGNvbG9yOiBibHVlOwp9Ci5hdXRob3IsIC5kYXRlIHsKICBjb2xvcjogYmx1ZTsKfQo8L3N0eWxlPgoKIyMgPHNwYW4gc3R5bGU9ImNvbG9yOiBncmVlbjsiPlRlb3LDrWEgPC9zcGFuPgoKVW5hIFJlZCBOZXVyb25hbCBBcnRpZmljaWFsIChBTk4pIG1vZGVsYSBsYSByZWxhY2nDs24gZW50cmUgdW4gY29uanVudG8gZGUgZW50cmFkYXMgeSB1bmEgc2FsaWRhLCByZXNvbHZpZW5kbyB1biBwcm9ibGVtYSBkZSBhcHJlbmRpemFqZS4KCkFsZ3Vub3MgZWplbXBsb3MgZGUgYXBsaWNhY2nDs24gZGUgQU5OIHNvbjoKCkxhIHJlY29tZW5kYWNpw7NuIGRlIGNvbnRlbmlkbyBkZSBOZXRmbGl4LgpFbCBmZWVkIGRlIEluc3RhZ3JhbS4KRGV0ZXJtaW5hciBlbCBuw7ptZXJvIGVzY3JpdG8gYSBtYW5vLgoKIyMgPHNwYW4gc3R5bGU9ImNvbG9yOiBncmVlbjsiPlBhc28gMSAtIGxpYnJlcsOtYXMgPC9zcGFuPgoKCmBgYHtyfQojaW5zdGFsbC5wYWNrYWdlcygibmV1cm5hbG5ldCIpCmxpYnJhcnkobmV1cmFsbmV0KQpgYGAKCgojIyA8c3BhbiBzdHlsZT0iY29sb3I6IGdyZWVuOyI+UGFzbyAyIC0gT2J0ZW5lciBkYXRvcyA8L3NwYW4+CgpgYGB7cn0KZXhhbWVuIDwtIGMoMjAsMTAsMzAsMjAsODAsMzApCnByb3llY3RvIDwtIGMoOTAsMjAsNDAsNTAsNTAsODApCnN0YXR1cyA8LSBjKDEsMCwwLDAsMCwxKQoKZGYxIDwtIGRhdGEuZnJhbWUoZXhhbWVuLCBwcm95ZWN0bywgc3RhdHVzKQpkZjEKYGBgCgoKIyMgPHNwYW4gc3R5bGU9ImNvbG9yOiBncmVlbjsiPiBQYXNvIDM6IENyZWFyIFJlZCBOZXVyb25hbCA8L3NwYW4+CgpgYGB7cn0Kc2V0LnNlZWQoMTIzKQpybjEgPC0gbmV1cmFsbmV0KHN0YXR1cyB+IC4sIGRhdGEgPSBkZjEpCnN1bW1hcnkocm4xKQoKYGBgCgpgYGB7cn0KcGxvdChybjEsIHJlcD0iYmVzdCIpCmBgYAoKCiMjIDxzcGFuIHN0eWxlPSJjb2xvcjogZ3JlZW47Ij5QYXNvIDQgLSBQcmVkZWNpciByZXN1bHRhZG9zIDwvc3Bhbj4KCmBgYHtyfQpwcnVlYmFfZXhhbWVuIDwtIGMoMzAsNDAsODUpCnBydWViYV9wcm95ZWN0byA8LSBjKDg1LDUwLDQwKQpwcnVlYmExIDwtIGRhdGEuZnJhbWUocHJ1ZWJhX2V4YW1lbixwcnVlYmFfcHJveWVjdG8pCnByZWRpY2Npb24gPC0gY29tcHV0ZShybjEsIHBydWViYTEpCnByZWRpY2Npb24kbmV0LnJlc3VsdApgYGAKCgpgYGB7cn0KcHJvYmFiaWxpZGFkIDwtIHByZWRpY2Npb24kbmV0LnJlc3VsdApyZXN1bHRhZG8gPC0gaWZlbHNlKHByb2JhYmlsaWRhZCA+MC41LCAxLDApCnJlc3VsdGFkbwpgYGAKCgo=