This task specializes Task and TaskSupervised for classification problems.
The target column is assumed to be a factor or ordered factor.
The task_type
is set to "classif"
.
Additional task properties include:
"twoclass"
: The task is a binary classification problem."multiclass"
: The task is a multiclass classification problem.
It is recommended to use as_task_classif()
for construction.
Predefined tasks are stored in the dictionary mlr_tasks.
See also
Chapter in the mlr3book: https://mlr3book.mlr-org.com/chapters/chapter2/data_and_basic_modeling.html
Package mlr3data for more toy tasks.
Package mlr3oml for downloading tasks from https://www.openml.org.
Package mlr3viz for some generic visualizations.
Dictionary of Tasks: mlr_tasks
as.data.table(mlr_tasks)
for a table of available Tasks in the running session (depending on the loaded packages).mlr3fselect and mlr3filters for feature selection and feature filtering.
Extension packages for additional task types:
Unsupervised clustering: mlr3cluster
Probabilistic supervised regression and survival analysis: https://mlr3proba.mlr-org.com/.
Other Task:
Task
,
TaskRegr
,
TaskSupervised
,
TaskUnsupervised
,
california_housing
,
mlr_tasks
,
mlr_tasks_breast_cancer
,
mlr_tasks_german_credit
,
mlr_tasks_iris
,
mlr_tasks_mtcars
,
mlr_tasks_penguins
,
mlr_tasks_pima
,
mlr_tasks_sonar
,
mlr_tasks_spam
,
mlr_tasks_wine
,
mlr_tasks_zoo
Super classes
mlr3::Task
-> mlr3::TaskSupervised
-> TaskClassif
Active bindings
class_names
(
character()
)
Returns all class labels of the target column.positive
(
character(1)
)
Stores the positive class for binary classification tasks, andNA
for multiclass tasks. To switch the positive class, assign a level to this field.negative
(
character(1)
)
Stores the negative class for binary classification tasks, andNA
for multiclass tasks.
Methods
Inherited methods
mlr3::Task$add_strata()
mlr3::Task$cbind()
mlr3::Task$data()
mlr3::Task$divide()
mlr3::Task$filter()
mlr3::Task$format()
mlr3::Task$formula()
mlr3::Task$head()
mlr3::Task$help()
mlr3::Task$levels()
mlr3::Task$missings()
mlr3::Task$print()
mlr3::Task$rbind()
mlr3::Task$rename()
mlr3::Task$select()
mlr3::Task$set_col_roles()
mlr3::Task$set_levels()
mlr3::Task$set_row_roles()
Method new()
Creates a new instance of this R6 class.
The function as_task_classif()
provides an alternative way to construct classification tasks.
Usage
TaskClassif$new(
id,
backend,
target,
positive = NULL,
label = NA_character_,
extra_args = list()
)
Arguments
id
(
character(1)
)
Identifier for the new instance.backend
(DataBackend)
Either a DataBackend, or any object which is convertible to a DataBackend withas_data_backend()
. E.g., adata.frame()
will be converted to a DataBackendDataTable.target
(
character(1)
)
Name of the target column.positive
(
character(1)
)
Only for binary classification: Name of the positive class. The levels of the target columns are reordered accordingly, so that the first element of$class_names
is the positive class, and the second element is the negative class.label
(
character(1)
)
Label for the new instance.extra_args
(named
list()
)
Named list of constructor arguments, required for converting task types viaconvert_task()
.
Method truth()
True response for specified row_ids
. Format depends on the task type.
Defaults to all rows with role "use"
.
Arguments
rows
(positive
integer()
)
Vector or row indices. Always refers to the complete data set, even after filtering.
Method droplevels()
Updates the cache of stored factor levels, removing all levels not present in the current set of active rows.
cols
defaults to all columns with storage type "factor" or "ordered".
Also updates the task property "twoclass"
/"multiclass"
.
Arguments
cols
(
character()
)
Vector of column names.
Examples
data("Sonar", package = "mlbench")
task = as_task_classif(Sonar, target = "Class", positive = "M")
task$task_type
#> [1] "classif"
task$formula()
#> Class ~ .
#> NULL
task$truth()
#> [1] R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R
#> [38] R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R
#> [75] R R R R R R R R R R R R R R R R R R R R R R R M M M M M M M M M M M M M M
#> [112] M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M
#> [149] M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M
#> [186] M M M M M M M M M M M M M M M M M M M M M M M
#> Levels: M R
task$class_names
#> [1] "M" "R"
task$positive
#> [1] "M"
task$data(rows = 1:3, cols = task$feature_names[1:2])
#> V1 V10
#> <num> <num>
#> 1: 0.0200 0.2111
#> 2: 0.0453 0.2872
#> 3: 0.0262 0.6194