Redes Neuronales

Concepto

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

Ejemplos de aplicación de Redes Neuronales son: 1. La recomendación de contenido de Netlfix 2. El feed de instagram 3. Determinar el número o letra escrito a mano.

1. Instalar paquetes y llamar librerias

library(neuralnet)

2. Alimentar con ejemplos

examen <- c(20,10,30,20,80,30)
proyecto <- c(90,20,40,50,50,80)
estatus <- c(1,0,0,0,0,1)
df1 <- data.frame(examen,proyecto,estatus)

3. Generar la Red Neuronal

red_neuronal <- neuralnet(estatus~., data = df1)
plot(red_neuronal, rep = "best")

## 4. Predecir con la Red Neuronal

prueba_examen <- c(20,40,85)
prueba_proyecto <- c(85,50,40)
prueba <- data.frame(prueba_examen, prueba_proyecto)
prediccion <- compute(red_neuronal, prueba)
prediccion$net.result
##             [,1]
## [1,]  1.01126461
## [2,]  0.01748867
## [3,] -0.01625257
probabilidad <- prediccion$net.result
resultado <- ifelse(probabilidad>0.5,1,0)
resultado
##      [,1]
## [1,]    1
## [2,]    0
## [3,]    0

Cancer de mama

df <- read.csv("/Users/meliganem/Documents/TEC/Semestre 7/Analitica de datos/cancer_de_mama.csv")
df$diagnosis <- ifelse(df$diagnosis == "M", 1, 0)

Generar la Red Neuronal

red_neuronal <- neuralnet(diagnosis~., data = df)
plot(red_neuronal, rep = "best")

4. Predecir con la Red Neuronal

prueba <- df[c(19,20,21,22,23), ]
prediccion <- compute(red_neuronal, prueba)
prediccion$net.result
##          [,1]
## 19 0.97084351
## 20 0.03823501
## 21 0.03823501
## 22 0.03823501
## 23 0.97084351
probabilidad <-prediccion$net.result
resultado <- ifelse(probabilidad>0.5,1,0)
resultado
##    [,1]
## 19    1
## 20    0
## 21    0
## 22    0
## 23    1
LS0tCnRpdGxlOiAiQWN0LjQuNyBSZWRlcyBOZXVyb25hbGVzIgphdXRob3I6ICJNZWxpc3NhIEdhbmVtIEtpcmNobmVyIEEwMTcyMTUzOCIKZGF0ZTogIjIwMjMtMTAtMDIiCm91dHB1dDogCiAgaHRtbF9kb2N1bWVudDoKICAgIHRvYzogVFJVRQogICAgdG9jX2Zsb2F0OiBUUlVFCiAgICBjb2RlX2Rvd25sb2FkOiBUUlVFCiAgICB0aGVtZTogInNwYWNlbGFiIgogICAgaGlnaGxpZ2h0OiAia2F0ZSIKCi0tLQoKIVtdKC9Vc2Vycy9tZWxpZ2FuZW0vRG9jdW1lbnRzL1RFQy9TZW1lc3RyZSA3L0FuYWxpdGljYSBkZSBkYXRvcy9uZXVyb25hcy5naWYpCgojIDxzcGFuIHN0eWxlPSJjb2xvcjogcGluazsiPlJlZGVzIE5ldXJvbmFsZXM8L3NwYW4+CgojIyA8c3BhbiBzdHlsZT0iY29sb3I6IHBpbms7Ij5Db25jZXB0bzwvc3Bhbj4KClVuYSBSZWQgTmV1cm9uYWwgQXJ0aWZpY2FsIChBTk4pIG1vZGVsYSBsYSByZWxhY2nDs24gZW50cmUgdW4gY29uanVudG8gZGUgZW50cmFkYXMKeSB1bmEgc2FsaWRhLCByZXNvbHZpZW5kbyB1biBwcm9ibGVtYSBkZSBhcHJlbmRpemFqZS4KCkVqZW1wbG9zIGRlIGFwbGljYWNpw7NuIGRlIFJlZGVzIE5ldXJvbmFsZXMgc29uOgoxLiBMYSByZWNvbWVuZGFjacOzbiBkZSBjb250ZW5pZG8gZGUgTmV0bGZpeAoyLiBFbCBmZWVkIGRlIGluc3RhZ3JhbQozLiBEZXRlcm1pbmFyIGVsIG7Dum1lcm8gbyBsZXRyYSBlc2NyaXRvIGEgbWFuby4gCgojIyA8c3BhbiBzdHlsZT0iY29sb3I6IHBpbms7Ij4xLiBJbnN0YWxhciBwYXF1ZXRlcyB5IGxsYW1hciBsaWJyZXJpYXM8L3NwYW4+CmBgYHtyfQpsaWJyYXJ5KG5ldXJhbG5ldCkKYGBgCgojIyA8c3BhbiBzdHlsZT0iY29sb3I6IHBpbms7Ij4yLiBBbGltZW50YXIgY29uIGVqZW1wbG9zPC9zcGFuPgoKYGBge3J9CmV4YW1lbiA8LSBjKDIwLDEwLDMwLDIwLDgwLDMwKQpwcm95ZWN0byA8LSBjKDkwLDIwLDQwLDUwLDUwLDgwKQplc3RhdHVzIDwtIGMoMSwwLDAsMCwwLDEpCmRmMSA8LSBkYXRhLmZyYW1lKGV4YW1lbixwcm95ZWN0byxlc3RhdHVzKQpgYGAKCiMjIDxzcGFuIHN0eWxlPSJjb2xvcjogcGluazsiPjMuIEdlbmVyYXIgbGEgUmVkIE5ldXJvbmFsPC9zcGFuPgpgYGB7cn0KcmVkX25ldXJvbmFsIDwtIG5ldXJhbG5ldChlc3RhdHVzfi4sIGRhdGEgPSBkZjEpCnBsb3QocmVkX25ldXJvbmFsLCByZXAgPSAiYmVzdCIpCmBgYAojIyA8c3BhbiBzdHlsZT0iY29sb3I6IHBpbms7Ij40LiBQcmVkZWNpciBjb24gbGEgUmVkIE5ldXJvbmFsPC9zcGFuPgoKYGBge3J9CnBydWViYV9leGFtZW4gPC0gYygyMCw0MCw4NSkKcHJ1ZWJhX3Byb3llY3RvIDwtIGMoODUsNTAsNDApCnBydWViYSA8LSBkYXRhLmZyYW1lKHBydWViYV9leGFtZW4sIHBydWViYV9wcm95ZWN0bykKcHJlZGljY2lvbiA8LSBjb21wdXRlKHJlZF9uZXVyb25hbCwgcHJ1ZWJhKQpwcmVkaWNjaW9uJG5ldC5yZXN1bHQKcHJvYmFiaWxpZGFkIDwtIHByZWRpY2Npb24kbmV0LnJlc3VsdApyZXN1bHRhZG8gPC0gaWZlbHNlKHByb2JhYmlsaWRhZD4wLjUsMSwwKQpyZXN1bHRhZG8KYGBgCiFbXSgvVXNlcnMvbWVsaWdhbmVtL0RvY3VtZW50cy9URUMvU2VtZXN0cmUgNy9BbmFsaXRpY2EgZGUgZGF0b3MvY2FuY2VyLmdpZikKCiMjIDxzcGFuIHN0eWxlPSJjb2xvcjogb3JhbmdlOyI+Q2FuY2VyIGRlIG1hbWE8L3NwYW4+CmBgYHtyfQpkZiA8LSByZWFkLmNzdigiL1VzZXJzL21lbGlnYW5lbS9Eb2N1bWVudHMvVEVDL1NlbWVzdHJlIDcvQW5hbGl0aWNhIGRlIGRhdG9zL2NhbmNlcl9kZV9tYW1hLmNzdiIpCmRmJGRpYWdub3NpcyA8LSBpZmVsc2UoZGYkZGlhZ25vc2lzID09ICJNIiwgMSwgMCkKYGBgCgojIyA8c3BhbiBzdHlsZT0iY29sb3I6IG9yYW5nZTsiPkdlbmVyYXIgbGEgUmVkIE5ldXJvbmFsPC9zcGFuPgpgYGB7cn0KcmVkX25ldXJvbmFsIDwtIG5ldXJhbG5ldChkaWFnbm9zaXN+LiwgZGF0YSA9IGRmKQpwbG90KHJlZF9uZXVyb25hbCwgcmVwID0gImJlc3QiKQpgYGAKCiMjIDxzcGFuIHN0eWxlPSJjb2xvcjogb3JhbmdlOyI+NC4gUHJlZGVjaXIgY29uIGxhIFJlZCBOZXVyb25hbDwvc3Bhbj4KCmBgYHtyfQpwcnVlYmEgPC0gZGZbYygxOSwyMCwyMSwyMiwyMyksIF0KcHJlZGljY2lvbiA8LSBjb21wdXRlKHJlZF9uZXVyb25hbCwgcHJ1ZWJhKQpwcmVkaWNjaW9uJG5ldC5yZXN1bHQKcHJvYmFiaWxpZGFkIDwtcHJlZGljY2lvbiRuZXQucmVzdWx0CnJlc3VsdGFkbyA8LSBpZmVsc2UocHJvYmFiaWxpZGFkPjAuNSwxLDApCnJlc3VsdGFkbwpgYGAKCg==