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

#Conclusión: Las redes neuronales permiten que los programas reconozcan patrones y resuelvan problemas comunes en inteligencia artificial y aprendizaje automático.

library(caret)
## Loading required package: ggplot2
## Loading required package: lattice
cancer <- read.csv("~/Downloads/cancer_de_mama.csv")
cancer$diagnosis <- ifelse(cancer$diagnosis=="M",1,0)
set.seed(123)
renglones_entrenamiento <- createDataPartition(cancer$diagnosis, p=0.8, list=FALSE)
entrenamiento <- cancer[renglones_entrenamiento, ]
prueba <- cancer[-renglones_entrenamiento,]
red_neuronal2 <- neuralnet(diagnosis~.,data = cancer )
plot(red_neuronal2, rep = "best")

prediccion <- compute(red_neuronal2, prueba)
prediccion$net.result
##         [,1]
## 1   0.372576
## 9   0.372576
## 15  0.372576
## 17  0.372576
## 18  0.372576
## 28  0.372576
## 35  0.372576
## 44  0.372576
## 46  0.372576
## 56  0.372576
## 58  0.372576
## 60  0.372576
## 65  0.372576
## 68  0.372576
## 71  0.372576
## 79  0.372576
## 82  0.372576
## 86  0.372576
## 95  0.372576
## 99  0.372576
## 101 0.372576
## 109 0.372576
## 124 0.372576
## 133 0.372576
## 138 0.372576
## 140 0.372576
## 142 0.372576
## 157 0.372576
## 162 0.372576
## 171 0.372576
## 173 0.372576
## 183 0.372576
## 188 0.372576
## 189 0.372576
## 193 0.372576
## 201 0.372576
## 203 0.372576
## 206 0.372576
## 207 0.372576
## 216 0.372576
## 220 0.372576
## 227 0.372576
## 233 0.372576
## 240 0.372576
## 242 0.372576
## 247 0.372576
## 251 0.372576
## 256 0.372576
## 259 0.372576
## 261 0.372576
## 262 0.372576
## 275 0.372576
## 284 0.372576
## 293 0.372576
## 296 0.372576
## 303 0.372576
## 305 0.372576
## 317 0.372576
## 318 0.372576
## 320 0.372576
## 323 0.372576
## 329 0.372576
## 332 0.372576
## 340 0.372576
## 341 0.372576
## 352 0.372576
## 354 0.372576
## 358 0.372576
## 359 0.372576
## 369 0.372576
## 370 0.372576
## 371 0.372576
## 375 0.372576
## 386 0.372576
## 387 0.372576
## 394 0.372576
## 400 0.372576
## 405 0.372576
## 407 0.372576
## 412 0.372576
## 417 0.372576
## 418 0.372576
## 429 0.372576
## 432 0.372576
## 434 0.372576
## 437 0.372576
## 453 0.372576
## 454 0.372576
## 466 0.372576
## 481 0.372576
## 484 0.372576
## 487 0.372576
## 492 0.372576
## 510 0.372576
## 515 0.372576
## 518 0.372576
## 520 0.372576
## 522 0.372576
## 529 0.372576
## 531 0.372576
## 532 0.372576
## 541 0.372576
## 545 0.372576
## 547 0.372576
## 551 0.372576
## 554 0.372576
## 556 0.372576
## 557 0.372576
## 558 0.372576
## 560 0.372576
## 561 0.372576
## 562 0.372576
## 564 0.372576
probabilidad <- prediccion$net.result
resultado <- ifelse(probabilidad>0.5,1,0)
resultado
##     [,1]
## 1      0
## 9      0
## 15     0
## 17     0
## 18     0
## 28     0
## 35     0
## 44     0
## 46     0
## 56     0
## 58     0
## 60     0
## 65     0
## 68     0
## 71     0
## 79     0
## 82     0
## 86     0
## 95     0
## 99     0
## 101    0
## 109    0
## 124    0
## 133    0
## 138    0
## 140    0
## 142    0
## 157    0
## 162    0
## 171    0
## 173    0
## 183    0
## 188    0
## 189    0
## 193    0
## 201    0
## 203    0
## 206    0
## 207    0
## 216    0
## 220    0
## 227    0
## 233    0
## 240    0
## 242    0
## 247    0
## 251    0
## 256    0
## 259    0
## 261    0
## 262    0
## 275    0
## 284    0
## 293    0
## 296    0
## 303    0
## 305    0
## 317    0
## 318    0
## 320    0
## 323    0
## 329    0
## 332    0
## 340    0
## 341    0
## 352    0
## 354    0
## 358    0
## 359    0
## 369    0
## 370    0
## 371    0
## 375    0
## 386    0
## 387    0
## 394    0
## 400    0
## 405    0
## 407    0
## 412    0
## 417    0
## 418    0
## 429    0
## 432    0
## 434    0
## 437    0
## 453    0
## 454    0
## 466    0
## 481    0
## 484    0
## 487    0
## 492    0
## 510    0
## 515    0
## 518    0
## 520    0
## 522    0
## 529    0
## 531    0
## 532    0
## 541    0
## 545    0
## 547    0
## 551    0
## 554    0
## 556    0
## 557    0
## 558    0
## 560    0
## 561    0
## 562    0
## 564    0