# Generate one line summaries by extending broom's S3 `glance()`
#' @include Classifiers-class.R
NULL
#' View summary stats for a classifier object.
#'
#' @family tidy
#'
#' @export
#' @rdname glance.Classifier
#' @examples
#' data(classifiers, package="AnalyticsToolkit")
#' glance_ClassifierPoint(classifiers$classifier_points[[1]])
glance_ClassifierPoint <- function(Classifier){
tp <- sum(Classifier@Y_ & Classifier@Y)
fp <- sum(Classifier@Y_ & !Classifier@Y)
fn <- sum(!Classifier@Y_ & Classifier@Y)
tn <- sum(!Classifier@Y_ & !Classifier@Y)
n = sum(tp, fp, tn, fn)
data.frame(
acc = (tp + tn) / n,
sens = tp / (tp + fn),
spec = tn / (tn + fp),
ppv = tp / (tp + fp),
npv = tn / (tn + fn),
fpr = fp / (tn + fp)
)
}
#' @export
#' @rdname glance.Classifier
#' @examples
#' data(classifiers, package="AnalysisToolkit")
#' glance_ClassifierCurve(classifiers$classifier_curves[[1]])
glance_ClassifierCurve <- function(Classifier) {
preds <- ROCR::prediction(predictions=Classifier@pY, labels=Classifier@Y)
# Compute operating-point independent stat: auc
auc <- ROCR::performance(preds, "auc") %>% slot("y.values") %>% unlist
# Find Operating Point ----
cP <- as(Classifier, "ClassifierPoint")
summary_tbl <- glance_ClassifierPoint(cP)
summary_tbl <- tibble::add_column(summary_tbl, "auc"=auc, .before = 1)
summary_tbl
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.