🚢 Modelo predictivo: Titanic

Arian Rios

24/1/2022



Contexto

El siguiente código hace parte de una opción como modelo predictivo en el conjunto de datos referente a los pasajeros del titanic el dia de la tragedia. Lo que se requiere es predecir una serie de valores sobre la supervivencia de ciertos pasajeros, la predicción se dará tomando las otras características de los pasajeros en el conjunto de datos. El modelo a realizar estará basado en una regresión lineal y usará dos conjuntos de datos, uno de práctica y otro a rellenar.


Importando

#titanic.df <- read.csv(file.choose())

#summary(titanic.df)

#View(titanic.df)


#resp_titanic <- read.csv(file.choose())

#summary(resp_titanic)

#View(titanic.df)


Limpiando

#Revisar valores nulos:

#colSums(is.na(titanic.df))

#titanic.df$Cabin <- NULL


#Tratamiento de nulos:

#titanic.df$Age[is.na(titanic.df$Age)] <- 29


#Definiendo factores y creando matrices:

#Sex_ =  factor(titanic.df$Sex) 
#val_sex = model.matrix(~Sex_)

#View(val_sex)

#embarked_ = factor(titanic.df$Embarked)
#val_embarked = model.matrix(~embarked_)

#View(val_embarked)


#Uniendo y corrigiendo datos:

#titanic.df  <- data.frame(titanic.df, val_sex[,2], val_embarked[,2:4])

#titanic.df$Sex  = val_sex[,2]

#titanic.df$val_sex...2.  <- NULL


Replicando limpieza en el conjunto a predecir

#Revisar volores nulos:

#colSums(is.na(resp_titanic))

#resp_titanic$Cabin <- NULL


#Tratamiento de nulos:

#resp_titanic$Age[is.na(resp_titanic$Age)] <- 30

#resp_titanic$Fare[is.na(resp_titanic$Fare)]  <- 35


#Definiendo factores y creando matrices:

#Sex =  factor(resp_titanic$Sex) 
#val_sex_resp = model.matrix(~Sex)

#Embarked = factor(resp_titanic$Embarked)
#val_embarked_res = model.matrix(~Embarked)


#Uniendo y corrigiendo datos:

#resp_titanic  <- data.frame(resp_titanic, val_sex_resp[, 2], val_embarked_resp[, 2:4])

#resp_titanic$Sex <- val_sex_resp[, 2]

#resp_titanic$val_sex_resp...2. <- NULL


Modelo predictivo (RL)

#Haciendo una sigmoide:

#sigmoide = function(x){1/(1+exp(-x))}
#x <- seq(-5,5,0.01)
#plot(x, sigmoide(x), col="red")


#Generando RL:

#RL_titanic <- glm(Survived ~ Pclass + Sex + Age + SibSp + Parch + Fare + embarked_C + embarked_Q + embarked_S, data =  titanic.df, family = binomial)

#summary(RL_titanic)


#Usando modelo para predecir la supervivencia:

#prediciones <- predict(RL_titanic, resp_titanic)

#View(prediciones)


#Formateando los valores de la predicción:

#mod_pred <- ifelse(prediciones > 0.5, 1, 0)

#View(mod_pred)


#Rellenando valores:

#complete$Survived <- mod_pred

#View(complete)


Licencia: CC0 Public Domain

PORTAFOLIO WEB AQUÍ