Redes Neuronales

Concepto

Una Red Neuronal Artificial (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 en Netflix.
2. El feed de Instagram o TikTok.
3. Determinar el número o letra escrito a mano.

1. Instalar paquetes y llamar a las librerías

# install.packages(neuralnet)
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)
df <- data.frame(examen,proyecto,estatus)

3. Generar la Red Neuronal

red_neuronal <- neuralnet(estatus~., data = df)
plot(red_neuronal)

4. Predecir con la Red Neuronal

prueba_examen <- c(30,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,] 0.3329329
## [2,] 0.3329329
## [3,] 0.3329329
probabilidad <- prediccion$net.result
resultado <- ifelse(probabilidad>0.5,1,0)
resultado
##      [,1]
## [1,]    0
## [2,]    0
## [3,]    0

Cáncer de Mama

1. Alimentar con ejemplos

# file.choose()
bd <- read.csv("/Users/valeriagrajales/Downloads/cancer_de_mama.csv")
bd$diagnosis <- ifelse(bd$diagnosis == "M",1,0)

2. Generar la Red Neuronal

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

3. Predecir con la Red Neuronal

prueba <- df1 <- bd[c(19,20,21,22,23),]
prueba <- data.frame(prueba)
prediccion <- compute(red_neuronal, prueba)
prediccion$net.result
##         [,1]
## 19 1.0007896
## 20 0.0296012
## 21 0.0296012
## 22 0.0296012
## 23 1.0007896
probabilidad <- prediccion$net.result
resultado <- ifelse(probabilidad>0.5,1,0)
resultado
##    [,1]
## 19    1
## 20    0
## 21    0
## 22    0
## 23    1
LS0tCnRpdGxlOiAiUmVkZXMgTmV1cm9uYWxlcyIKYXV0aG9yOiAiVmFsZXJpYSBHcmFqYWxlcyIKZGF0ZTogIjIwMjMtMTAtMDIiCm91dHB1dDogCiAgaHRtbF9kb2N1bWVudDoKICAgIHRvYzogVFJVRQogICAgdG9jX2Zsb2F0OiBUUlVFCiAgICBjb2RlX2Rvd25sb2FkOiBUUlVFCiAgICB0aGVtZTogInNwYWNlbGFiIgogICAgaGlnaGxpZ2h0OiAia2F0ZSIKLS0tCgohW10oL1VzZXJzL3ZhbGVyaWFncmFqYWxlcy9EZXNrdG9wL3JlZGVzbmV1cm9uYWxlc3NzLmdpZikKCiMgPHNwYW4gc3R5bGUgPSJjb2xvcjogYmx1ZTsiPlJlZGVzIE5ldXJvbmFsZXM8L3NwYW4+CgojIDxzcGFuIHN0eWxlID0iY29sb3I6IGJsdWU7Ij5Db25jZXB0bzwvc3Bhbj4KVW5hIFJlZCBOZXVyb25hbCBBcnRpZmljaWFsIChBTk4pIG1vZGVsYSBsYSByZWxhY2nDs24gZW50cmUgdW4KY29uanVudG8gZGUgZW50cmFkYXMgeSB1bmEgc2FsaWRhLCByZXNvbHZpZW5kbyB1biBwcm9ibGVtYSBkZSBhcHJlbmRpemFqZS4gIAoKRWplbXBsb3MgZGUgYXBsaWNhY2nDs24gZGUgUmVkZXMgTmV1cm9uYWxlcyBzb246ICAKMS4gTGEgcmVjb21lbmRhY2nDs24gZGUgY29udGVuaWRvIGVuIE5ldGZsaXguICAKMi4gRWwgZmVlZCBkZSBJbnN0YWdyYW0gbyBUaWtUb2suICAKMy4gRGV0ZXJtaW5hciBlbCBuw7ptZXJvIG8gbGV0cmEgZXNjcml0byBhIG1hbm8uCgojIyA8c3BhbiBzdHlsZT0iY29sb3I6IGJsdWU7Ij4xLiBJbnN0YWxhciBwYXF1ZXRlcyB5IGxsYW1hciBhIGxhcyBsaWJyZXLDrWFzPC9zcGFuPgpgYGB7cn0KIyBpbnN0YWxsLnBhY2thZ2VzKG5ldXJhbG5ldCkKbGlicmFyeShuZXVyYWxuZXQpCmBgYAoKCgojIyA8c3BhbiBzdHlsZT0iY29sb3I6IGJsdWU7Ij4yLiBBbGltZW50YXIgY29uIGVqZW1wbG9zPC9zcGFuPgpgYGB7cn0KZXhhbWVuIDwtIGMoMjAsMTAsMzAsMjAsODAsMzApCnByb3llY3RvIDwtIGMoOTAsMjAsNDAsNTAsNTAsODApCmVzdGF0dXMgPC0gYygxLDAsMCwwLDAsMSkKZGYgPC0gZGF0YS5mcmFtZShleGFtZW4scHJveWVjdG8sZXN0YXR1cykKYGBgCgojIyA8c3BhbiBzdHlsZT0iY29sb3I6IGJsdWU7Ij4zLiBHZW5lcmFyIGxhIFJlZCBOZXVyb25hbDwvc3Bhbj4KYGBge3J9CnJlZF9uZXVyb25hbCA8LSBuZXVyYWxuZXQoZXN0YXR1c34uLCBkYXRhID0gZGYpCnBsb3QocmVkX25ldXJvbmFsKQpgYGAKCiMjIDxzcGFuIHN0eWxlPSJjb2xvcjogYmx1ZTsiPjQuIFByZWRlY2lyIGNvbiBsYSBSZWQgTmV1cm9uYWw8L3NwYW4+CmBgYHtyfQpwcnVlYmFfZXhhbWVuIDwtIGMoMzAsNDAsODUpCnBydWViYV9wcm95ZWN0byA8LSBjKDg1LDUwLDQwKQpwcnVlYmEgPC0gZGF0YS5mcmFtZShwcnVlYmFfZXhhbWVuLHBydWViYV9wcm95ZWN0bykKcHJlZGljY2lvbiA8LSBjb21wdXRlKHJlZF9uZXVyb25hbCwgcHJ1ZWJhKQpwcmVkaWNjaW9uJG5ldC5yZXN1bHQKcHJvYmFiaWxpZGFkIDwtIHByZWRpY2Npb24kbmV0LnJlc3VsdApyZXN1bHRhZG8gPC0gaWZlbHNlKHByb2JhYmlsaWRhZD4wLjUsMSwwKQpyZXN1bHRhZG8KYGBgCgojIDxzcGFuIHN0eWxlID0iY29sb3I6IHBpbms7Ij5Dw6FuY2VyIGRlIE1hbWE8L3NwYW4+CgojIyA8c3BhbiBzdHlsZT0iY29sb3I6IHBpbms7Ij4xLiBBbGltZW50YXIgY29uIGVqZW1wbG9zPC9zcGFuPgpgYGB7cn0KIyBmaWxlLmNob29zZSgpCmJkIDwtIHJlYWQuY3N2KCIvVXNlcnMvdmFsZXJpYWdyYWphbGVzL0Rvd25sb2Fkcy9jYW5jZXJfZGVfbWFtYS5jc3YiKQpiZCRkaWFnbm9zaXMgPC0gaWZlbHNlKGJkJGRpYWdub3NpcyA9PSAiTSIsMSwwKQpgYGAKCiMjIDxzcGFuIHN0eWxlPSJjb2xvcjogcGluazsiPjIuIEdlbmVyYXIgbGEgUmVkIE5ldXJvbmFsPC9zcGFuPgpgYGB7cn0KcmVkX25ldXJvbmFsIDwtIG5ldXJhbG5ldChkaWFnbm9zaXN+LiwgZGF0YSA9IGJkKQpwbG90KHJlZF9uZXVyb25hbCwgcmVwID0gImJlc3QiKQpgYGAKCiMjIDxzcGFuIHN0eWxlPSJjb2xvcjogcGluazsiPjMuIFByZWRlY2lyIGNvbiBsYSBSZWQgTmV1cm9uYWw8L3NwYW4+CmBgYHtyfQpwcnVlYmEgPC0gZGYxIDwtIGJkW2MoMTksMjAsMjEsMjIsMjMpLF0KcHJ1ZWJhIDwtIGRhdGEuZnJhbWUocHJ1ZWJhKQpwcmVkaWNjaW9uIDwtIGNvbXB1dGUocmVkX25ldXJvbmFsLCBwcnVlYmEpCnByZWRpY2Npb24kbmV0LnJlc3VsdApwcm9iYWJpbGlkYWQgPC0gcHJlZGljY2lvbiRuZXQucmVzdWx0CnJlc3VsdGFkbyA8LSBpZmVsc2UocHJvYmFiaWxpZGFkPjAuNSwxLDApCnJlc3VsdGFkbwpgYGBg