Redes Neuronales

0. Concepto

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

1. Instalar paquetes y llamas 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)
dfclase <- data.frame(examen,proyecto,estatus)

3. Generar la red neuronal

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

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.498447859
## [2,] 0.003613539
## [3,] 0.003612328
probabilidad <- prediccion$net.result
resultado <- ifelse(probabilidad>0.5,1,0)
resultado
##      [,1]
## [1,]    0
## [2,]    0
## [3,]    0

Redes Neuronales con Base de Datos Cáncer de Mama

1. Importar base de datos

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

2. Alimentar con ejemplos

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

3. Generar la red neuronal

prueba <- cancerdemama[c(19,20,21,22,23), ]
prediccion <- compute(red_neuronal,prueba)
prediccion$net.result
##          [,1]
## 19 1.00048077
## 20 0.02180876
## 21 0.02179560
## 22 0.02179560
## 23 1.00048077

4. Predecir con la Red Neuronal

probabilidad <- prediccion$net.result
resultado <- ifelse(probabilidad>0.5,1,0)
resultado
##    [,1]
## 19    1
## 20    0
## 21    0
## 22    0
## 23    1
LS0tCnRpdGxlOiAiUmVkZXMgTmV1cm9uYWxlcyIKYXV0aG9yOiAiRGFubmEgTGVhbCBBMDA4MzE2OTgiCmRhdGU6ICIyLzEwLzIwMjMiCm91dHB1dDogCiAgaHRtbF9kb2N1bWVudDoKICAgIHRvYzogVFJVRQogICAgdG9jX2Zsb2F0OiBUUlVFCiAgICBjb2RlX2Rvd25sb2FkOiBUUlVFCiAgICB0aGVtZTogInNwYWNlbGFiIgogICAgaGlnaGxpZ2h0OiAia2F0ZSIKLS0tCiFbXSgvVXNlcnMvZGFubmFsZWFsL0Rlc2t0b3AvcmVkZXNuZXUuZ2lmKSAKCiMgPHNwYW4gc3R5bGU9ImNvbG9yOiBob3RwaW5rOyI+UmVkZXMgTmV1cm9uYWxlczwvc3Bhbj4KCiMjIyA8c3BhbiBzdHlsZT0iY29sb3I6IGhvdHBpbms7Ij4wLiBDb25jZXB0bzwvc3Bhbj4KVW5hIFJlZCBOZXVyYWwgQXJ0aWZpY2lhbCAoQU5OKSBtb2RlbGEgbGEgcmVsYWNpw7NuIGVudHJlIHVuIGNvbmp1bnRvIGRlIGVudHJhZGFzIHkgCnVuYSBzYWxpZGEgcmVzb2x2aWVuZG8gdW4gcHJvYmxlbWEgZGUgYXByZW5kaXphamUuCgpFamVtcGxvcyBkZSBhcGxpY2FjacOzbiBkZSBSZWRlcyBOZXVyb25hbGVzIHNvbjoKMS4gTGEgcmVjb21lbmRhY2nDs24gZGUgY29udGVuaWRvIGRlIE5ldGZsaXguCjIuIEVsIGZlZWQgZGUgSW5zdGFncmFtIG8gVGlrVG9rLgozLiBEZXRlcm1pbmFyIGVsIG7Dum1lcm8gbyBsZXRyYSBlc2NyaXRvIGEgbWFuby4KCiMjIyA8c3BhbiBzdHlsZT0iY29sb3I6IGhvdHBpbms7Ij4xLiBJbnN0YWxhciBwYXF1ZXRlcyB5IGxsYW1hcyBsaWJyZXLDrWFzPC9zcGFuPgpgYGB7cn0KIyBpbnN0YWxsLnBhY2thZ2VzKCJuZXVyYWxuZXQiKQpsaWJyYXJ5KG5ldXJhbG5ldCkKYGBgCgojIyMgPHNwYW4gc3R5bGU9ImNvbG9yOiBob3RwaW5rOyI+Mi4gQWxpbWVudGFyIGNvbiBlamVtcGxvczwvc3Bhbj4KYGBge3J9CmV4YW1lbiA8LSBjKDIwLDEwLDMwLDIwLDgwLDMwKQpwcm95ZWN0byA8LSBjKDkwLDIwLDQwLDUwLDUwLDgwKQplc3RhdHVzIDwtIGMoMSwwLDAsMCwwLDEpCmRmY2xhc2UgPC0gZGF0YS5mcmFtZShleGFtZW4scHJveWVjdG8sZXN0YXR1cykKYGBgCgojIyMgPHNwYW4gc3R5bGU9ImNvbG9yOiBob3RwaW5rOyI+My4gR2VuZXJhciBsYSByZWQgbmV1cm9uYWw8L3NwYW4+CmBgYHtyfQpyZWRfbmV1cm9uYWwgPC0gbmV1cmFsbmV0KGVzdGF0dXN+LiwgZGF0YT1kZmNsYXNlKQpwbG90KHJlZF9uZXVyb25hbCwgcmVwID0gImJlc3QiKQpgYGAKCiMjIyA8c3BhbiBzdHlsZT0iY29sb3I6IGhvdHBpbms7Ij40LiBQcmVkZWNpciBjb24gbGEgUmVkIE5ldXJvbmFsPC9zcGFuPgpgYGB7cn0KcHJ1ZWJhX2V4YW1lbiA8LSBjKDMwLDQwLDg1KQpwcnVlYmFfcHJveWVjdG8gPC0gYyg4NSw1MCw0MCkKcHJ1ZWJhIDwtIGRhdGEuZnJhbWUocHJ1ZWJhX2V4YW1lbixwcnVlYmFfcHJveWVjdG8pCnByZWRpY2Npb24gPC0gY29tcHV0ZShyZWRfbmV1cm9uYWwsIHBydWViYSkKcHJlZGljY2lvbiRuZXQucmVzdWx0Cgpwcm9iYWJpbGlkYWQgPC0gcHJlZGljY2lvbiRuZXQucmVzdWx0CnJlc3VsdGFkbyA8LSBpZmVsc2UocHJvYmFiaWxpZGFkPjAuNSwxLDApCnJlc3VsdGFkbwpgYGAKCiMgPHNwYW4gc3R5bGU9ImNvbG9yOiBvcmFuZ2U7Ij5SZWRlcyBOZXVyb25hbGVzIGNvbiBCYXNlIGRlIERhdG9zIEPDoW5jZXIgZGUgTWFtYTwvc3Bhbj4KCiMjIyA8c3BhbiBzdHlsZT0iY29sb3I6IG9yYW5nZTsiPjEuIEltcG9ydGFyIGJhc2UgZGUgZGF0b3M8L3NwYW4+CmBgYHtyfQojIGZpbGUuY2hvb3NlKCkKY2FuY2VyZGVtYW1hIDwtIHJlYWQuY3N2KCIvVXNlcnMvZGFubmFsZWFsL0Rvd25sb2Fkcy9jYW5jZXJfZGVfbWFtYS5jc3YiKQpjYW5jZXJkZW1hbWEkZGlhZ25vc2lzIDwtIGlmZWxzZShjYW5jZXJkZW1hbWEkZGlhZ25vc2lzID09ICJNIiwxLDApCmBgYAoKIyMjIDxzcGFuIHN0eWxlPSJjb2xvcjogb3JhbmdlOyI+Mi4gQWxpbWVudGFyIGNvbiBlamVtcGxvczwvc3Bhbj4KYGBge3J9CnJlZF9uZXVyb25hbCA8LSBuZXVyYWxuZXQoZGlhZ25vc2lzfi4sIGRhdGE9Y2FuY2VyZGVtYW1hKQpwbG90KHJlZF9uZXVyb25hbCwgcmVwID0gImJlc3QiKQpgYGAKCiMjIyA8c3BhbiBzdHlsZT0iY29sb3I6IG9yYW5nZTsiPjMuIEdlbmVyYXIgbGEgcmVkIG5ldXJvbmFsPC9zcGFuPgpgYGB7cn0KcHJ1ZWJhIDwtIGNhbmNlcmRlbWFtYVtjKDE5LDIwLDIxLDIyLDIzKSwgXQpwcmVkaWNjaW9uIDwtIGNvbXB1dGUocmVkX25ldXJvbmFsLHBydWViYSkKcHJlZGljY2lvbiRuZXQucmVzdWx0CmBgYAoKIyMjIDxzcGFuIHN0eWxlPSJjb2xvcjogb3JhbmdlOyI+NC4gUHJlZGVjaXIgY29uIGxhIFJlZCBOZXVyb25hbDwvc3Bhbj4KYGBge3J9CnByb2JhYmlsaWRhZCA8LSBwcmVkaWNjaW9uJG5ldC5yZXN1bHQKcmVzdWx0YWRvIDwtIGlmZWxzZShwcm9iYWJpbGlkYWQ+MC41LDEsMCkKcmVzdWx0YWRvCmBgYAoKCg==