Redes Neuronales

Una Red Neuronal Artificial (ANN) modela la relación entre un conjunto de entradas y una salida, resolviendo un problema de aprendizaje.

Un ejemplo de aplicacion de Redes Neuronales son: 1-. La recomendación de contenido de Netflix. 2-. Feed de Tiktok o Instagram

1-. Instalar paquetes y librerias

library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(neuralnet)
## 
## Attaching package: 'neuralnet'
## The following object is masked from 'package:dplyr':
## 
##     compute

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,1,1)
df <-  data.frame(examen,proyecto,estatus)

3-. Generar 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.5016257
## [2,] 0.5016257
## [3,] 0.5016256
probabilidad <- prediccion$net.result
resultado <- ifelse(probabilidad>0.5,1,0)
resultado
##      [,1]
## [1,]    1
## [2,]    1
## [3,]    1

Base de datos

Cancer_M <- read.csv("/Users/ofna19/Desktop/cancer_de_mama.csv")
Cancer_M$diagnosis <- ifelse(Cancer_M$diagnosis == "M",1,0)

1-. Generar Red Neuronal

red_neuronal1 <- neuralnet(diagnosis ~ ., data = Cancer_M)
plot(red_neuronal1)

2-. Predecir con la Red Neuronal

prueba1 <- c(17.990,10.38,122.80,1001.0,0.11840,0.27760,0.300100,0.147100,0.2419,0.07871,1.0950,0.9053,8.5890,153.400,0.006399,0.049040,0.053730,0.015870,0.030030,0.006193,25.380,17.33,184.60,2019.0,0.16220,0.66560,0.711900,0.26540,0.4601,0.11890)
prueba2 <- c(6.981,13.43,43.79,143.5,0.11700,0.07568,0.0000000,0.000000,0.1930,0.07818,0.2241,1.5080,1.5530,9.833,0.010190,0.010840,0.0000000,0.000000,0.02659,0.0041000,7.930,19.54,50.41,185.2,0.15840,0.12020,0.000000,0.00000,0.2932,0.09382)

nombres_columnas <- c("radius_mean", "texture_mean", "perimeter_mean", "area_mean", "smoothness_mean", "compactness_mean", "concavity_mean", "concave points_mean", "symmetry_mean", "fractal_dimension_mean", "radius_se", "texture_se", "perimeter_se", "area_se", "smoothness_se", "compactness_se", "concavity_se", "concave points_se", "symmetry_se", "fractal_dimension_se", "radius_worst", "texture_worst", "perimeter_worst", "area_worst", "smoothness_worst", "compactness_worst", "concavity_worst", "concave points_worst", "symmetry_worst", "fractal_dimension_worst")

prueba_cancer <- data.frame(prueba1, prueba2)
prueba_cancer <- t(prueba_cancer)
colnames(prueba_cancer) <- nombres_columnas

prediccion1 <- compute(red_neuronal1,prueba_cancer)
prediccion1$net.result
##              [,1]
## prueba1 0.3725829
## prueba2 0.3725829
probabilidad1 <- prediccion1$net.result
resultado1 <- ifelse(probabilidad1>0.5,1,0)
resultado1
##         [,1]
## prueba1    0
## prueba2    0

R Markdown

This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see http://rmarkdown.rstudio.com.

When you click the Knit button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:

summary(cars)
##      speed           dist       
##  Min.   : 4.0   Min.   :  2.00  
##  1st Qu.:12.0   1st Qu.: 26.00  
##  Median :15.0   Median : 36.00  
##  Mean   :15.4   Mean   : 42.98  
##  3rd Qu.:19.0   3rd Qu.: 56.00  
##  Max.   :25.0   Max.   :120.00

Including Plots

You can also embed plots, for example:

Note that the echo = FALSE parameter was added to the code chunk to prevent printing of the R code that generated the plot.