Una Red Neural Artificial (ANN) modela la relación entre un conjunto de entradas y una salida, resolviendo un problema de aprendizaje.
Ejemplos de apliación de Redes Neuronales son:
# install.packages("neuralnet")
library(dplyr)
library(neuralnet)
# vamos a alimentar de forma manual debido a que no se tiene un csv
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)
red_neuronal <- neuralnet(estatus~ ., data=df)
plot(red_neuronal, rep="best")
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.3999626
## [2,] 0.3999626
## [3,] 1.5198355
probabilidad <- prediccion$net.result
resultado <- ifelse(probabilidad>0.5,1,0)
resultado
## [,1]
## [1,] 0
## [2,] 0
## [3,] 1
cancer <- read.csv("/Users/KarlaCastillo/Desktop/Datos/cancer_de_mama.csv")
cancer$diagnosis <- ifelse(cancer$diagnosis =="M",1,0)
red_neuronal1 <- neuralnet(diagnosis~ ., data=cancer)
plot(red_neuronal1, rep="best")
pruebac <- cancer[c(19,20,21,22,23), ]
predic <- compute(red_neuronal1, pruebac)
predic$net.result
## [,1]
## 19 0.3725724
## 20 0.3725724
## 21 0.3725724
## 22 0.3725724
## 23 0.3725724
pro <- predic$net.result
result <- ifelse(pro>0.5,1,0)
result
## [,1]
## 19 0
## 20 0
## 21 0
## 22 0
## 23 0
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.004100,7.930,19.54,50.41,185.2,0.15840,0.12020,0.000000,0.00000,0.2932,0.09382)
n_c <- 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) <- n_c
prediccion1 <- compute(red_neuronal1,prueba_cancer)
prediccion1$net.result
## [,1]
## prueba1 0.3725724
## prueba2 0.3725724
prob <- prediccion1$net.result
resultado_cancer <- ifelse(prob>0.5,1,0)
resultado_cancer
## [,1]
## prueba1 0
## prueba2 0