Redes Neuronales

Concepto

Una Red Neural Artificial (ANN) modela la relación entre un conjunto de entradas y una salidad, 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 escrita a mano.

# 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, rep="best")

4. Predecir con la Red Neuronal

prueba_examen <- c(35,45,85)
prueba_proyecto <- c(85,50,40)
prueba <- data.frame(prueba_examen, prueba_proyecto)
predicción <- compute(red_neuronal, prueba)
probabilidad <- predicción$net.result
resultado <- ifelse(probabilidad>0.5,1,0)
resultado
##      [,1]
## [1,]    1
## [2,]    0
## [3,]    0

Cancer de mama

bd <- read.csv("C:\\Users\\karim\\OneDrive\\Escritorio\\Ejercicios R\\Árbol de decisiones (titanic, cáncer de mama)\\cancer_de_mama.csv")
bd <- data.frame(bd)
bd$diagnosis <- ifelse(bd$diagnosis == "M", 1, 0)

Generar la Red Neuronal

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

prueba <- bd[c(19, 20, 21, 22, 23), ]
prediccion <- compute(red_neuronal, prueba)
prediccion$net.result
##          [,1]
## 19 0.99510457
## 20 0.05565393
## 21 0.05565393
## 22 0.05565393
## 23 0.99510457
probabilidad <- prediccion$net.result 
resultado <- ifelse(probabilidad > 0.5,1,0)
resultado
##    [,1]
## 19    1
## 20    0
## 21    0
## 22    0
## 23    1
LS0tDQp0aXRsZTogIlJlZGVzIG5ldXJvbmFsZXMiDQphdXRob3I6ICJMZWlzbHkgQ3J1eiINCmRhdGU6ICIyLzEwLzIzIg0Kb3V0cHV0OiANCiAgaHRtbF9kb2N1bWVudDoNCiAgICB0b2M6IFRSVUUNCiAgICB0b2NfZmxvYXQ6IFRSVUUNCiAgICBjb2RlX2Rvd25sb2FkOiBUUlVFDQogICAgdGhlbWU6ICJzcGFjZWxhYiINCiAgICBoaWdobGlnaHQ6ICJrYXRlIg0KLS0tDQoNCiFbXShDOlxcVXNlcnNcXGthcmltXFxPbmVEcml2ZVxcUGljdHVyZXNcXGNlcmVicm9naWYud2VicCkNCg0KIyA8c3BhbiBzdHlsZT0iY29sb3I6ZGFya2JsdWU7Ij5SZWRlcyBOZXVyb25hbGVzPC9zcGFuPiAgDQoNCiMjIDxzcGFuIHN0eWxlPSJjb2xvcjpkYXJrYmx1ZTsiPkNvbmNlcHRvPC9zcGFuPiAgIA0KDQpVbmEgUmVkIE5ldXJhbCBBcnRpZmljaWFsIChBTk4pIG1vZGVsYSBsYSByZWxhY2nDs24gZW50cmUgdW4gY29uanVudG8gZGUgZW50cmFkYXMgeSB1bmEgc2FsaWRhZCwgcmVzb2x2aWVuZG8gdW4gcHJvYmxlbWEgZGUgYXByZW5kaXphamUuICANCg0KRWplbXBsb3MgZGUgYXBsaWNhY2nDs24gZGUgUmVkZXMgTmV1cm9uYWxlcyBzb246ICANCjEuIExhIHJlY29tZW5kYWNpw7NuIGRlIGNvbnRlbmlkbyBkZSBOZXRmbGl4LiAgDQoyLiBFbCBmZWVkIGRlIEluc3RhZ3JhbSBvIFRpa1Rvay4gIA0KMy4gRGV0ZXJtaW5hciBlbCBuw7ptZXJvIG8gbGV0cmEgZXNjcml0YSBhIG1hbm8uICANCg0KYGBge3J9DQojIGluc3RhbGwucGFja2FnZXMoIm5ldXJhbG5ldCIpDQpsaWJyYXJ5KG5ldXJhbG5ldCkNCmBgYA0KDQojIyA8c3BhbiBzdHlsZT0iY29sb3I6ZGFya2JsdWU7Ij4yLiBBbGltZW50YXIgY29uIEVqZW1wbG9zPC9zcGFuPiAgIA0KDQpgYGB7cn0NCmV4YW1lbiA8LSBjKDIwLDEwLDMwLDIwLDgwLDMwKQ0KcHJveWVjdG8gPC0gYyg5MCwyMCw0MCw1MCw1MCw4MCkNCmVzdGF0dXM8LSBjKDEsMCwwLDAsMCwxKQ0KZGYgPC0gZGF0YS5mcmFtZShleGFtZW4sIHByb3llY3RvLCBlc3RhdHVzKQ0KYGBgDQoNCiMjIDxzcGFuIHN0eWxlPSJjb2xvcjpkYXJrYmx1ZTsiPjMuIEdlbmVyYXIgbGEgUmVkIE5ldXJvbmFsPC9zcGFuPiAgIA0KDQpgYGB7cn0NCnJlZF9uZXVyb25hbCA8LSBuZXVyYWxuZXQoZXN0YXR1cyB+IC4sIGRhdGE9ZGYpDQpwbG90KHJlZF9uZXVyb25hbCwgcmVwPSJiZXN0IikNCmBgYA0KDQojIyA8c3BhbiBzdHlsZT0iY29sb3I6ZGFya2JsdWU7Ij40LiBQcmVkZWNpciBjb24gbGEgUmVkIE5ldXJvbmFsPC9zcGFuPiANCg0KYGBge3J9DQpwcnVlYmFfZXhhbWVuIDwtIGMoMzUsNDUsODUpDQpwcnVlYmFfcHJveWVjdG8gPC0gYyg4NSw1MCw0MCkNCnBydWViYSA8LSBkYXRhLmZyYW1lKHBydWViYV9leGFtZW4sIHBydWViYV9wcm95ZWN0bykNCnByZWRpY2Npw7NuIDwtIGNvbXB1dGUocmVkX25ldXJvbmFsLCBwcnVlYmEpDQpwcm9iYWJpbGlkYWQgPC0gcHJlZGljY2nDs24kbmV0LnJlc3VsdA0KcmVzdWx0YWRvIDwtIGlmZWxzZShwcm9iYWJpbGlkYWQ+MC41LDEsMCkNCnJlc3VsdGFkbw0KYGBgDQoNCg0KDQojIDxzcGFuIHN0eWxlPSJjb2xvcjogc2FsbW9uOyI+Q2FuY2VyIGRlIG1hbWE8L3NwYW4+DQoNCiFbXShDOlxcVXNlcnNcXGthcmltXFxPbmVEcml2ZVxcUGljdHVyZXNcXGNhbmNlci1tYW1hLnBuZykNCg0KYGBge3J9DQpiZCA8LSByZWFkLmNzdigiQzpcXFVzZXJzXFxrYXJpbVxcT25lRHJpdmVcXEVzY3JpdG9yaW9cXEVqZXJjaWNpb3MgUlxcw4FyYm9sIGRlIGRlY2lzaW9uZXMgKHRpdGFuaWMsIGPDoW5jZXIgZGUgbWFtYSlcXGNhbmNlcl9kZV9tYW1hLmNzdiIpDQpiZCA8LSBkYXRhLmZyYW1lKGJkKQ0KYmQkZGlhZ25vc2lzIDwtIGlmZWxzZShiZCRkaWFnbm9zaXMgPT0gIk0iLCAxLCAwKQ0KYGBgDQoNCg0KIyMgPHNwYW4gc3R5bGU9ImNvbG9yOiBzYWxtb247Ij5HZW5lcmFyIGxhIFJlZCBOZXVyb25hbDwvc3Bhbj4NCmBgYHtyfQ0KcmVkX25ldXJvbmFsIDwtIG5ldXJhbG5ldChkaWFnbm9zaXMgfiAuICwgZGF0YSA9IGJkKQ0KcGxvdChyZWRfbmV1cm9uYWwsIHJlcCA9ICJiZXN0IikNCg0KcHJ1ZWJhIDwtIGJkW2MoMTksIDIwLCAyMSwgMjIsIDIzKSwgXQ0KcHJlZGljY2lvbiA8LSBjb21wdXRlKHJlZF9uZXVyb25hbCwgcHJ1ZWJhKQ0KcHJlZGljY2lvbiRuZXQucmVzdWx0DQpwcm9iYWJpbGlkYWQgPC0gcHJlZGljY2lvbiRuZXQucmVzdWx0IA0KcmVzdWx0YWRvIDwtIGlmZWxzZShwcm9iYWJpbGlkYWQgPiAwLjUsMSwwKQ0KcmVzdWx0YWRvDQpgYGA=