% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/performance-metrics.R
\name{gazepoint_performance_metrics}
\alias{gazepoint_performance_metrics}
\title{Task-aware performance metrics}
\usage{
gazepoint_performance_metrics(
  task,
  truth,
  prediction = NULL,
  probability = NULL,
  threshold = 0.5
)
}
\arguments{
\item{task}{A governed \code{gp3ml_task} object.}

\item{truth}{Observed outcome values.}

\item{prediction}{Predicted classes or numeric values.}

\item{probability}{Predicted positive-class probabilities.}

\item{threshold}{Probability threshold for classification.}
}
\value{
A one-row data frame of classification or regression metrics selected according to the governed task type.
}
\description{
Task-aware performance metrics
}
\examples{
example_data <- data.frame(
  participant_id = rep(sprintf("P\%02d", 1:12), each = 2),
  trial_id = sprintf("T\%02d", 1:24),
  stimulus_id = rep(c("S01", "S02"), 12),
  condition = rep(c("A", "B"), 12),
  fixation_duration = 180 + seq_len(24),
  pupil_change = sin(seq_len(24) / 3),
  stringsAsFactors = FALSE
)
example_data$quality_status <- factor(
  c(
    "pass", "review", "pass", "review", "review", "pass",
    "review", "pass", "pass", "review", "review", "pass",
    "review", "pass", "review", "pass", "pass", "review",
    "pass", "review", "review", "pass", "pass", "review"
  ),
  levels = c("pass", "review")
)
task <- declare_gazepoint_task(
  data = example_data,
  outcome = "quality_status",
  purpose = "Predict predefined recording-quality review status",
  task_type = "classification",
  unit_id = "trial_id",
  participant_id = "participant_id",
  stimulus_id = "stimulus_id",
  generalization_target = "new_participants",
  positive = "review"
)
probability <- seq(
  0.20,
  0.80,
  length.out = nrow(example_data)
)
predicted <- factor(
  ifelse(probability >= 0.5, "review", "pass"),
  levels = levels(example_data$quality_status)
)
gazepoint_performance_metrics(
  task = task,
  truth = example_data$quality_status,
  prediction = predicted,
  probability = probability
)
}
