Autor: Elias Valdez
Fecha: 2025-04-08
En este análisis se utiliza una red neuronal para predecir la supervivencia de los pasajeros del Titanic. Se emplean distintas técnicas de limpieza, transformación de datos y visualización de correlaciones para mejorar el desempeño del modelo.
.csv.Se carga el archivo CSV que contiene los datos del Titanic.
library(readr)
DatosTitanicEsp <- read_csv("DatosTitanicEsp.csv")
View(DatosTitanicEsp)
Verificamos si hay datos perdidos (NA) en las columnas principales.
sum(is.na(DatosTitanicEsp$Vivio))
sum(is.na(DatosTitanicEsp$Sexo))
sum(is.na(DatosTitanicEsp$Edad)) # 177 NA
sum(is.na(DatosTitanicEsp$ClasePasajero))
Eliminamos los registros que tienen valores NA en la columna Edad.
DatosTitanicEsp <- DatosTitanicEsp[!is.na(DatosTitanicEsp$Edad), ]
sum(is.na(DatosTitanicEsp$Edad))
Se convierte la variable 'Sexo' a formato numérico para que pueda ser procesada por la red neuronal.
DatosTitanicEsp$Sexo[DatosTitanicEsp$Sexo == "male"] <- 0
DatosTitanicEsp$Sexo[DatosTitanicEsp$Sexo == "female"] <- 1
DatosTitanicEsp$Sexo <- as.numeric(DatosTitanicEsp$Sexo)
Se entrena una red neuronal con dos capas ocultas, con 3 y 2 neuronas respectivamente. Se guarda el modelo para usos posteriores.
library(neuralnet)
red <- neuralnet(Vivio ~ Edad + Sexo + ClasePasajero,
data = DatosTitanicEsp,
hidden = c(3, 2),
linear.output = FALSE,
act.fct = "logistic")
save(red, file = "C:/MODELOS_ENTRENADOS_IA/TitanicMOdel.RData")
plot(red)
Se obtienen las predicciones de la red neuronal y se imprimen.
predicciones <- unlist(red$net.result)
predicciones
tablita <- data.frame(
lo_que_predijo = round(predicciones),
lo_que_deberia_ser = DatosTitanicEsp$Vivio,
le_atino = round(predicciones) == DatosTitanicEsp$Vivio
)
tablita
table_resultados <- table(tablita$le_atino)
porcentajes <- prop.table(table_resultados) * 100
porcentajes <- round(porcentajes, 2)
names(porcentajes) <- c("Falló (FALSE)", "Acertó (TRUE)")
print(porcentajes)
Se analiza la relación entre variables numéricas mediante una matriz de correlación visual.
library(corrplot)
library(ggplot2)
datos <- DatosTitanicEsp[, c(1:3, 5:8)]
corr <- round(cor(datos), 2)
corrplot(corr, method = "number", type = "upper")
Se construyó un modelo predictivo usando redes neuronales para determinar la probabilidad de que un pasajero del Titanic sobreviviera. El modelo fue evaluado y mostró un porcentaje de aciertos significativo. También se exploraron las correlaciones entre variables para entender mejor los factores que influyen en la supervivencia.