Una red Neuronal Artificail (ANN) modela la relación entre un conjunto de entradas y una salida, resolviendo un problema de aprendizaje.
Un ejempo de aplicación de Redes Neuronales es la recomendación de contenido de Netflix.
1.La recomendación de contenido de Netflix. 2.El Feed de TikTok,o instagram.
#install.packages("neuralnet")
library("neuralnet")
#Se crean 3 vectores
examen <- c(20,10,30,20,80,30)
proyecto <-c(90,20,40,50,50,80)
estatus <-c(1,0,0,0,1,1)
#El o- NO paso y el 1- Sí paso
#Se crea el dataframe
df <- data.frame(examen,proyecto,estatus)
View(df)
#Se debe poner primero la VARIABLE QUE SE BUSCA PREDECIR
red_neuronal <-neuralnet(estatus ~ .,data=df)
plot(red_neuronal,rep="best")
pruebaexamen <- c(30, 40, 85)
pruebaproyecto <- c(85, 50, 40)
prueba <- data.frame(pruebaexamen, pruebaproyecto)
prediccion <- compute(red_neuronal, prueba)
# Para ver el resultado de predicción se usa la siguiente función:
prediccion$net.result
## [,1]
## [1,] 0.5005967
## [2,] 0.5005967
## [3,] 0.5005967
resultado <- ifelse(prediccion$net.result > 0.5, 1, 0)
resultado
## [,1]
## [1,] 1
## [2,] 1
## [3,] 1
library(readr)
library(readr)
cancer_de_mama <- read_csv("C:/Users/Admin/OneDrive/Documentos/TEC/Curso Actual/Materia/R/Ejercicios/cancer_de_mama.csv")
## Rows: 569 Columns: 31
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (1): diagnosis
## dbl (30): radius_mean, texture_mean, perimeter_mean, area_mean, smoothness_m...
##
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
View(cancer_de_mama)
#Maligno = 1
#Bien = 0
unique(cancer_de_mama$diagnosis)
## [1] "M" "B"
# Reemplaza 'M' con 1 y 'B' con 0 en la columna 'diagnosis'
cancer_de_mama$diagnosis <- ifelse(cancer_de_mama$diagnosis == "M", 1, 0)
head(cancer_de_mama) # Muestra las primeras filas del DataFrame modificado
## # A tibble: 6 × 31
## diagnosis radius_mean texture_mean perimeter_mean area_mean smoothness_mean
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 1 18.0 10.4 123. 1001 0.118
## 2 1 20.6 17.8 133. 1326 0.0847
## 3 1 19.7 21.2 130 1203 0.110
## 4 1 11.4 20.4 77.6 386. 0.142
## 5 1 20.3 14.3 135. 1297 0.100
## 6 1 12.4 15.7 82.6 477. 0.128
## # ℹ 25 more variables: compactness_mean <dbl>, concavity_mean <dbl>,
## # `concave points_mean` <dbl>, symmetry_mean <dbl>,
## # fractal_dimension_mean <dbl>, radius_se <dbl>, texture_se <dbl>,
## # perimeter_se <dbl>, area_se <dbl>, smoothness_se <dbl>,
## # compactness_se <dbl>, concavity_se <dbl>, `concave points_se` <dbl>,
## # symmetry_se <dbl>, fractal_dimension_se <dbl>, radius_worst <dbl>,
## # texture_worst <dbl>, perimeter_worst <dbl>, area_worst <dbl>, …
#Se crean 3 vectores utilizando columnas a elegir (tu decides)
radious_mean1 <-c(cancer_de_mama$radius_mean)
texture_mean1 <-c(cancer_de_mama$texture_mean)
diagnosis1 <- c(cancer_de_mama$diagnosis)
#Se crea la Nueva base de datos
df <- data.frame(radious_mean1,texture_mean1,diagnosis1)
#Se debe poner primero la VARIABLE QUE SE BUSCA PREDECIR
red_neuronal <-neuralnet(diagnosis1 ~ .,data=df)
plot(red_neuronal, rep="best")
pruebaradious_mean1 <- c(17.99,20.57,19.69)
pruebatexture_mean1 <- c(10.38,17.77,21.25)
prueba1 <- data.frame(pruebaradious_mean1, pruebatexture_mean1)
prediccion <- compute(red_neuronal, prueba1)
# Para ver el resultado de predicción se usa la siguiente función:
prediccion$net.result
## [,1]
## [1,] 0.8305024
## [2,] 1.0087857
## [3,] 1.0079404
resultado <- ifelse(prediccion$net.result > 0, 1)
resultado
## [,1]
## [1,] 1
## [2,] 1
## [3,] 1