---
title: "Creación y Evaluación de una Red Neuronal"
author: "Vicente Nevarez"
date: "2024-05-09"
output: html_document
---

# Introducción
En este informe, se explora la creación de una red neuronal básica utilizando el paquete `neuralnet`. Se construye una red neuronal con múltiples capas ocultas para predecir el valor de la variable `D` a partir de las variables `A`, `B`, y `C`. Posteriormente, se evalúa el rendimiento de la red y se obtienen predicciones.

# Datos de Entrenamiento

```r
# Librería para redes neuronales
library(neuralnet)
## Warning: package 'neuralnet' was built under R version 4.1.3
# Datos de entrada para la red neuronal
datos_ent <- data.frame(
  A = c(1, 1, 0, 0),
  B = c(1, 0, 1, 0),
  C = c(1, 0, 0, 1),
  D = c(1, 0, 0, 0)
)

# Visualización de los datos
print(datos_ent)
##   A B C D
## 1 1 1 1 1
## 2 1 0 0 0
## 3 0 1 0 0
## 4 0 0 1 0

En este bloque, creamos un pequeño conjunto de datos de entrenamiento que contiene cuatro observaciones y cuatro variables (A, B, C, D). La variable D será el objetivo a predecir, mientras que A, B, y C son las variables predictoras.

Creación de la Red Neuronal

# Creación de una red neuronal con dos capas ocultas y múltiples neuronas
red <- neuralnet(
  formula = D ~ A + B,  # Fórmula para la red neuronal
  hidden = c(3, 7, 4, 2),  # Capas ocultas con 3, 7, 4, y 2 neuronas respectivamente
  linear.output = FALSE,  # Salida no lineal
  act.fct = "logistic",   # Función de activación logística
  data = datos_ent         # Datos de entrenamiento
)

# Visualización de la estructura de la red
plot(red)

Aquí construimos una red neuronal con cuatro capas ocultas. La fórmula indica que estamos usando las variables A y B para predecir D. Las capas ocultas tienen diferentes números de neuronas, y la función de activación utilizada es la función logística, típica en problemas de clasificación. Se muestra el diagrama de la red para entender su estructura.

Predicciones y Resultados

# Obtener predicciones de la red neuronal
predicciones <- unlist(red$net.result)  # Convierte el resultado de la red en un formato legible

# Mostrar predicciones
predicciones
## [1] 0.2466953 0.2465757 0.2465524 0.2463574

En este bloque, extraemos las predicciones de la red neuronal y las mostramos. Las predicciones nos dicen qué valores la red neuronal cree que tendrá la variable D basándose en las variables A y B.

Conclusión

En este informe, hemos creado y visualizado una red neuronal simple con dos capas ocultas utilizando el paquete neuralnet. También obtuvimos las predicciones de la red para evaluar su rendimiento. Estos resultados pueden ser útiles para el desarrollo de modelos de aprendizaje automático más complejos o para tareas de clasificación en conjuntos de datos más grandes. ```