MLOps-framinghamCHD / model_monitor.R
aepstar
simulasi monitoring model
4c3bfea
library(vetiver)
library(pins)
library(tidyverse)
b <- board_folder(".")
v <- b |>
vetiver_pin_read("framinghamCHD")
chd_new <- chd_testing |>
slice_sample(n = 100) |>
mutate(tgl_update = sample(seq(Sys.Date()-7, Sys.Date(), by = "day"),
size = 100, replace = TRUE)) |>
arrange(tgl_update)
chd_new |>
count(tgl_update)
chd_original_metric <- v |>
augment(chd_new) |>
vetiver_compute_metrics(date_var = tgl_update, period = "day",
truth = TenYearCHD, estimate = .pred_class,
metric_set = metric_set(accuracy, precision, recall, sensitivity, specificity))
b |>
pin_write(chd_original_mteric, "chd_model_metrics")
b |>
pin_read("chd_model_metrics") |>
vetiver_plot_metrics() +
scale_size(range = c(2, 4)) +
theme_bw()
walk(1:20, function(x){
chd_new <- chd_testing |>
slice_sample(n = 100) |>
mutate(tgl_update = Sys.Date()+x) |>
arrange(tgl_update)
chd_new_metric <- v |>
augment(chd_new) |>
vetiver_compute_metrics(date_var = tgl_update, period = "day",
truth = TenYearCHD, estimate = .pred_class,
metric_set = metric_set(accuracy, precision, recall, sensitivity, specificity))
last_metric <- b |>
pin_read("chd_model_metrics")
new_metric <- last_metric |>
bind_rows(chd_new_metric)
b |>
vetiver_pin_metrics(df_metrics = new_metric,
metrics_pin_name = "chd_model_metrics",
overwrite = TRUE)
})
p1 <- b |>
pin_read("chd_model_metrics") |>
vetiver_plot_metrics() +
scale_size(range = c(2, 4)) +
theme_bw()
ggplotly(p1)