f1_wrapper: F1 metric

View source: R/metrics.R

f1_wrapperR Documentation

F1 metric

Description

Compute F1 metric. If loss is "categorical_crossentropy", number of targets must be 2. If loss is "binary_crossentropy" and number of targets > 1, will flatten y_true and y_pred matrices to a single vector (rather than computing separate F1 scores for each class).

Usage

f1_wrapper(num_targets = 2, loss = "binary_crossentropy")

Arguments

num_targets

Size of model output.

loss

Loss function of model.

Value

A keras metric.

Examples



y_true <- c(1,0,0,1,1,0,1,0,0)  
y_pred <-  c(0.9,0.05,0.05,0.9,0.05,0.05,0.9,0.05,0.05) 

library(keras)
f1_metric <- f1_wrapper(3L, "binary_crossentropy")
f1_metric$update_state(y_true, y_pred)
f1_metric$result()  


# add metric to a model

num_targets <- 1
model <- create_model_lstm_cnn(maxlen = 20,
                               layer_lstm = 8,
                               bal_acc = FALSE,
                               last_layer_activation = "sigmoid",
                               loss_fn = "binary_crossentropy",
                               layer_dense = c(8, num_targets))

f1_metric <- f1_wrapper(num_targets, loss = model$loss)
model %>% keras::compile(loss = model$loss, 
                         optimizer = model$optimizer,
                         metrics = c(model$metrics, f1_metric))
                    


GenomeNet/deepG documentation built on Dec. 24, 2024, 12:11 p.m.