% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/api.R
\name{perpetual}
\alias{perpetual}
\title{Train a PerpetualBooster model}
\usage{
perpetual(
  x,
  y,
  objective = "LogLoss",
  budget = NULL,
  iteration_limit = NULL,
  stopping_rounds = NULL,
  max_bin = NULL,
  num_threads = NULL,
  missing = NULL,
  allow_missing_splits = NULL,
  create_missing_branch = NULL,
  missing_node_treatment = NULL,
  log_iterations = NULL,
  quantile = NULL,
  reset = NULL,
  timeout = NULL,
  memory_limit = NULL,
  seed = NULL,
  ...
)
}
\arguments{
\item{x}{A matrix or data.frame of features.}

\item{y}{A vector of targets (numeric for regression, factor/integer for classification).}

\item{objective}{A string specifying the objective function. Default is "LogLoss".}

\item{budget}{A numeric value ensuring the training time does not exceed this budget (in normalized units).}

\item{iteration_limit}{An integer limit on the number of iterations.}

\item{stopping_rounds}{An integer for early stopping.}

\item{max_bin}{Integer, max number of bins for histograms.}

\item{num_threads}{Integer, number of threads to use.}

\item{missing}{Value to consider as missing data. Default is NaN.}

\item{allow_missing_splits}{Boolean.}

\item{create_missing_branch}{Boolean. Whether to create a separate branch for missing values (ternary trees).}

\item{missing_node_treatment}{String. How to handle weights for missing nodes if create_missing_branch is True. Options: "None", "AssignToParent", "AverageLeafWeight", "AverageNodeWeight".}

\item{log_iterations}{Integer.}

\item{quantile}{Numeric.}

\item{reset}{Boolean.}

\item{timeout}{Numeric.}

\item{memory_limit}{Numeric.}

\item{seed}{Integer seed for reproducibility.}

\item{...}{Additional arguments.}
}
\value{
A \code{PerpetualBooster} object.
}
\description{
Perpetual is a self-generalizing gradient boosting machine that doesn't need 
hyperparameter optimization. It automatically finds the best configuration 
based on the provided budget.
}
