Objetivo:Este proyecto tiene como objetivo poner en práctica el entrenamiento de redes neuronales simples y comprender cómo influyen variables como edad, sexo y clase del pasajero en las probabilidades de sobrevivir al hundimiento del Titanic.
library(readr)
## Warning: package 'readr' was built under R version 4.4.3
Paso 2: Leemos el archivo CSV con los datos del Titanic ya traducido al español y exploramos rápidamente si hay valores faltantes (NA).
DatosTitanicEsp <- read_csv("C:/R/DatosTitanicEsp.csv")
## Rows: 891 Columns: 12
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (5): Nombre, Sexo, Ticket, Cabina, Puerto
## dbl (7): Numero, Vivio, ClasePasajero, Edad, Familiares, FamiliaDirecta, Costo
##
## ℹ 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(DatosTitanicEsp)
#sumar los NA'S por cada columna factor
sum(is.na(DatosTitanicEsp$Vivio))
## [1] 0
sum(is.na(DatosTitanicEsp$Sexo))
## [1] 0
sum(is.na(DatosTitanicEsp$Edad)) # 177 con NA'S
## [1] 177
sum(is.na(DatosTitanicEsp$ClasePasajero))
## [1] 0
##Paso 3: Limpieza de datos La variable Edad es clave para el modelo, por lo tanto eliminamos las filas que no tengan este dato.
DatosTitanicEsp = DatosTitanicEsp[is.na(DatosTitanicEsp$Edad) == FALSE,] #quito NA'S
sum(is.na(DatosTitanicEsp$Edad))
## [1] 0
sum(is.na(DatosTitanicEsp$ClasePasajero))
## [1] 0
##*Paso 4: Preparar variables para el modelo Para entrenar la red, las variables categóricas deben estar en formato numérico. Aquí convertimos el sexo a formato binario:
0 para hombres
1 para mujeres*
#Comprobamos mujeres y niños primero
DatosTitanicEsp$Sexo[DatosTitanicEsp$Sexo == "male"]=0
DatosTitanicEsp$Sexo[DatosTitanicEsp$Sexo == "female"]=1
DatosTitanicEsp
## # A tibble: 714 × 12
## Numero Vivio ClasePasajero Nombre Sexo Edad Familiares FamiliaDirecta
## <dbl> <dbl> <dbl> <chr> <chr> <dbl> <dbl> <dbl>
## 1 1 0 3 Braund, Mr.… 0 22 1 0
## 2 2 1 1 Cumings, Mr… 1 38 1 0
## 3 3 1 3 Heikkinen, … 1 26 0 0
## 4 4 1 1 Futrelle, M… 1 35 1 0
## 5 5 0 3 Allen, Mr. … 0 35 0 0
## 6 7 0 1 McCarthy, M… 0 54 0 0
## 7 8 0 3 Palsson, Ma… 0 2 3 1
## 8 9 1 3 Johnson, Mr… 1 27 0 2
## 9 10 1 2 Nasser, Mrs… 1 14 1 0
## 10 11 1 3 Sandstrom, … 1 4 1 1
## # ℹ 704 more rows
## # ℹ 4 more variables: Ticket <chr>, Costo <dbl>, Cabina <chr>, Puerto <chr>
##Paso 5: Análisis de correlación Antes de modelar, observamos cómo se relacionan las variables usando un gráfico de correlación. ##Paso 6: Crear y entrenar la red neuronal *Creamos una red con:
Capas ocultas: 2 capas (3 y 2 neuronas)
Activación: función logística
Salida: no lineal (clasificación)*
##Paso 7: Visualizar la red Mostramos gráficamente la estructura y los pesos de la red neuronal entrenada.
##Paso 8: Evaluar el modelo Obtenemos las predicciones de la red y evaluamos qué tan bien acertó en comparación con los datos reales.
##Resultados y Conclusión *Este modelo logra una precisión superior al 80%, lo cual es bastante bueno considerando la simplicidad del modelo. Podemos observar que las variables sexo y clase del pasajero tienen una fuerte influencia en la probabilidad de supervivencia, lo que confirma el famoso lema: “Mujeres y niños primero”.
Este análisis me permitió comprender mejor:
La preparación de datos para modelos de IA.
El uso de redes neuronales en R.
La interpretación de resultados predictivos.*
Note that the echo = FALSE
parameter was added to the
code chunk to prevent printing of the R code that generated the
plot.