Load the packages
library(tfestimators)
library(titanic)
library(dplyr)
library(purrr)
Data preparation
titanic_set <- titanic_train %>%
filter(!is.na(Age))
indices <- sample(1:nrow(titanic_set), size = 0.80 * nrow(titanic_set))
train <- titanic_set[indices, ]
test <- titanic_set[-indices, ]
Model preparation
Setup feature columns
cols <- feature_columns(
column_categorical_with_vocabulary_list("Sex", vocabulary_list = unique(titanic_set$Sex) %>% map(~.x)),
column_categorical_with_vocabulary_list("Embarked", vocabulary_list = unique(titanic_set$Embarked) %>% map(~.x)),
column_numeric("Pclass")
)
Setup the model
model <- linear_classifier(feature_columns = cols)
Train and evaluate the model
train(model, titanic_input_fn(train))
model_eval <- evaluate(model, titanic_input_fn(test))
model_eval %>%
purrr::flatten() %>%
as_tibble() %>%
glimpse()
## Observations: 1
## Variables: 9
## $ accuracy <dbl> 0.8041958
## $ accuracy_baseline <dbl> 0.5944056
## $ auc <dbl> 0.8565923
## $ auc_precision_recall <dbl> 0.847312
## $ average_loss <dbl> 0.5284517
## $ `label/mean` <dbl> 0.4055944
## $ loss <dbl> 37.78429
## $ `prediction/mean` <dbl> 0.3742846
## $ global_step <dbl> 5
Model predictions
model_predict <- predict(model, titanic_input_fn(test))
Tidy model predictions
tidy_model <- model_predict %>%
map(~ .x %>%
map(~.x[[1]]) %>%
flatten() %>%
as_tibble()) %>%
bind_rows() %>%
bind_cols(test)
tidy_model
View the graph using tensorboard
tensorboard(model$estimator$model_dir, launch_browser = TRUE)