Redes Neuronales

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: 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 llamar librerias

#install.packages("neuralnet")
library(neuralnet)
## Warning: package 'neuralnet' was built under R version 4.1.3

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(30,40,85)
prueba_proyecto <- c(85,50,40)
prueba <- data.frame(prueba_examen,prueba_proyecto)
prediccion <- compute(red_neuronal, prueba)
probabilidad <- prediccion$net.result
resultado <- ifelse(probabilidad>0.5,1,0)
resultado
##      [,1]
## [1,]    0
## [2,]    0
## [3,]    0

Ejercicio Cancer de Mama

1. Importar datos

#file.choose()
df1 <- read.csv("C:\\Users\\jesus\\Documents\\Actividades\\cancer_de_mama.csv")

2. Cambiar columna de diagnosis a valores númericos

df1$ï..diagnosis <- ifelse(df1$ï..diagnosis == "M",1,0)

3. Generar la red neuronal

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

### 4. Predecir con la Red Neuronal

prueba <- df1[c(19,20,21,22,23),]
prediccion <- compute(red_neuronal, prueba)
probabilidad <- prediccion$net.result
resultado <- ifelse(probabilidad>0.5,1,0)
resultado
##    [,1]
## 19    0
## 20    0
## 21    0
## 22    0
## 23    0
LS0tDQp0aXRsZTogIlJlZGVzIE5ldXJvbmFsZXMiDQphdXRob3I6ICJKZXN1cyBNZXN0YSBBMDE1NjcwMTkiDQpkYXRlOiAiMjAyMy0xMC0wMiINCm91dHB1dDogDQogIGh0bWxfZG9jdW1lbnQ6DQogICAgdG9jOiBUUlVFDQogICAgdG9jX2Zsb2F0OiBUUlVFDQogICAgY29kZV9kb3dubG9hZDogVFJVRQ0KICAgIHRoZW1lOiAic3BhY2VsYWIiDQogICAgaGlnaGxpZ2h0OiAidGFuZ28iDQotLS0NCg0KIVtdKEM6XFxVc2Vyc1xcamVzdXNcXERvY3VtZW50c1xcQWN0aXZpZGFkZXNcXHJlZG5ldXJvbmFsLmpwZWcpDQoNCiMgUmVkZXMgTmV1cm9uYWxlcw0KDQojIyMgQ29uY2VwdG8NClVuYSBSZWQgTmV1cmFsIGFydGlmaWNpYWwgKEFOTikgbW9kZWxhIGxhIHJlbGFjacOzbiBlbnRyZSB1biBjb25qdW50byBkZSBlbnRyYWRhcyB5IHVuYSBzYWxpZGEsIHJlc29sdmllbmRvIHVuIHByb2JsZW1hIGRlIGFwcmVuZGl6YWplLg0KDQpFamVtcGxvcyBkZSBhcGxpY2FjacOzbiBkZSBSZWRlcyBOZXVyb25hbGVzOg0KMS4gTGEgcmVjb21lbmRhY2nDs24gZGUgY29udGVuaWRvIGRlIE5ldGZsaXguDQoyLiBFbCBmZWVkIGRlIEluc3RhZ3JhbSBvIFRpa1Rvay4NCjMuIERldGVybWluYXIgZWwgbsO6bWVybyBvIGxldHJhIGVzY3JpdG8gYSBtYW5vLg0KDQojIyMgMS4gSW5zdGFsYXIgUGFxdWV0ZXMgeSBsbGFtYXIgbGlicmVyaWFzDQpgYGB7cn0NCiNpbnN0YWxsLnBhY2thZ2VzKCJuZXVyYWxuZXQiKQ0KbGlicmFyeShuZXVyYWxuZXQpDQpgYGANCiMjIyAyLiBBbGltZW50YXIgY29uIGVqZW1wbG9zDQpgYGB7cn0NCmV4YW1lbiA8LSBjKDIwLDEwLDMwLDIwLDgwLDMwKQ0KcHJveWVjdG8gPC0gYyg5MCwyMCw0MCw1MCw1MCw4MCkNCmVzdGF0dXMgPC0gYygxLDAsMCwwLDAsMSkNCmRmIDwtIGRhdGEuZnJhbWUoZXhhbWVuLHByb3llY3RvLGVzdGF0dXMpDQpgYGANCg0KIyMjIDMuIEdlbmVyYXIgbGEgcmVkIG5ldXJvbmFsDQpgYGB7cn0NCnJlZF9uZXVyb25hbCA8LSBuZXVyYWxuZXQoZXN0YXR1c34uLCBkYXRhPWRmKQ0KcGxvdChyZWRfbmV1cm9uYWwsIHJlcCA9ICJiZXN0IikNCmBgYA0KIyMjIDQuIFByZWRlY2lyIGNvbiBsYSBSZWQgTmV1cm9uYWwNCmBgYHtyfQ0KcHJ1ZWJhX2V4YW1lbiA8LSBjKDMwLDQwLDg1KQ0KcHJ1ZWJhX3Byb3llY3RvIDwtIGMoODUsNTAsNDApDQpwcnVlYmEgPC0gZGF0YS5mcmFtZShwcnVlYmFfZXhhbWVuLHBydWViYV9wcm95ZWN0bykNCnByZWRpY2Npb24gPC0gY29tcHV0ZShyZWRfbmV1cm9uYWwsIHBydWViYSkNCnByb2JhYmlsaWRhZCA8LSBwcmVkaWNjaW9uJG5ldC5yZXN1bHQNCnJlc3VsdGFkbyA8LSBpZmVsc2UocHJvYmFiaWxpZGFkPjAuNSwxLDApDQpyZXN1bHRhZG8NCmBgYA0KIyMgRWplcmNpY2lvIENhbmNlciBkZSBNYW1hDQojIyMgMS4gSW1wb3J0YXIgZGF0b3MNCmBgYHtyfQ0KI2ZpbGUuY2hvb3NlKCkNCmRmMSA8LSByZWFkLmNzdigiQzpcXFVzZXJzXFxqZXN1c1xcRG9jdW1lbnRzXFxBY3RpdmlkYWRlc1xcY2FuY2VyX2RlX21hbWEuY3N2IikNCmBgYA0KIyMjIDIuIENhbWJpYXIgY29sdW1uYSBkZSBkaWFnbm9zaXMgYSB2YWxvcmVzIG7Dum1lcmljb3MNCmBgYHtyfQ0KZGYxJMOvLi5kaWFnbm9zaXMgPC0gaWZlbHNlKGRmMSTDry4uZGlhZ25vc2lzID09ICJNIiwxLDApDQpgYGANCiMjIyAzLiBHZW5lcmFyIGxhIHJlZCBuZXVyb25hbA0KYGBge3J9DQpyZWRfbmV1cm9uYWwgPC0gbmV1cmFsbmV0KMOvLi5kaWFnbm9zaXN+LiwgZGF0YT1kZjEpDQpwbG90KHJlZF9uZXVyb25hbCwgcmVwID0gImJlc3QiKQ0KYGBgDQojIyMgNC4gUHJlZGVjaXIgY29uIGxhIFJlZCBOZXVyb25hbA0KYGBge3J9DQpwcnVlYmEgPC0gZGYxW2MoMTksMjAsMjEsMjIsMjMpLF0NCnByZWRpY2Npb24gPC0gY29tcHV0ZShyZWRfbmV1cm9uYWwsIHBydWViYSkNCnByb2JhYmlsaWRhZCA8LSBwcmVkaWNjaW9uJG5ldC5yZXN1bHQNCnJlc3VsdGFkbyA8LSBpZmVsc2UocHJvYmFiaWxpZGFkPjAuNSwxLDApDQpyZXN1bHRhZG8NCmBgYA0K