Skip to main content

ClusteringTask

Task
DashAI.back.tasks.ClusteringTask

Task for grouping samples into clusters without target labels.

Clustering tasks discover groups directly from numeric input features. Unlike supervised tasks, they do not require output columns and are evaluated with internal clustering metrics computed from the feature matrix and the cluster labels produced by the model.

Methods​

check_role_names(self, roles: Mapping[str, Any]) -> None

Defined on BaseTask

Refuse columns for a role this task does not declare.

column_roles(cls) -> Tuple[DashAI.back.tasks.column_roles.ColumnRole, ...]

Defined on BaseTask

The roles this task's columns can play, in the order it declares.

Returns

tuple of ColumnRole
The declared roles.

get_metadata(cls) -> Dict[str, Any]

Defined on BaseTask

Return serialisable metadata for the current task.

Parameters

cls : type
The task class (injected automatically by Python for classmethods).

Returns

Dict[str, Any]
Dictionary with keys "column_roles", "io_roles", "prediction_mode", "requires_target", "takes_preprocessing", "requires_input_columns" and "icon".

inputs_cardinality(cls) -> Any

Defined on BaseTask

How many columns a model of this task reads, as the roles say.

Returns

int or str
The exact total when every input role is exact, otherwise "n".

io_columns(self, roles: Mapping[str, Sequence]) -> DashAI.back.tasks.column_roles.IOColumns

Defined on BaseTask

Translate a session's roles into a model's inputs and outputs.

Parameters

roles : mapping
Role name to the role's columns, as names or as column refs.

Returns

IOColumns
The entries that feed the model as x and as y.

io_roles(cls) -> Dict[str, List[str]]

Defined on BaseTask

Which roles feed a model's inputs and which its outputs.

Returns

dict
{"inputs": [role names], "outputs": [role names]}.

num_labels(self, dataset: 'DashAIDataset', output_column: Optional[str] = None) -> None

Defined on UnsupervisedTask

Return None: a task without a target has no labels to count.

Parameters

dataset : DashAIDataset
Dataset used for training.
output_column : str, optional
Unused: there is no output column.

Returns

None

prepare_for_task(self, dataset: Union[ForwardRef('DatasetDict'), ForwardRef('DashAIDataset')], input_columns: List[str], output_columns: Optional[List[str]] = None) -> 'DashAIDataset'

Defined on BaseTask

Prepare and validate a dataset for this task.

Parameters

dataset : DatasetDict or DashAIDataset
The dataset to prepare. If a DatasetDict is supplied it is converted to DashAIDataset automatically.
input_columns : list of str
Names of columns to use as model inputs.
output_columns : list of str, optional
Names of columns to use as model outputs/targets. Tasks without targets, such as clustering, can omit this argument.

Returns

DashAIDataset
The validated dataset, ready to be passed to a model.

process_manual_input(self, manual_input: List[dict], dataset_path: str) -> 'DashAIDataset'

Defined on BaseTask

Process manual input data into a DashAIDataset with type validation.

Parameters

manual_input : List[dict]
List of dictionaries representing manual input data.
dataset_path : str
Path to the training dataset (used to get column specs for validation)

Returns

DashAIDataset
Processed DashAIDataset from manual input.

roles_from_io(self, input_columns: Sequence, output_columns: Sequence) -> Dict[str, list]

Defined on BaseTask

Translate a model's inputs and outputs back into roles.

Parameters

input_columns, output_columns : sequence
The columns fed to the model as x and as y.

Returns

dict
Role name to the role's columns.

takes_preprocessing(cls) -> bool

Defined on BaseTask

Whether a session of this task may preprocess its columns.

Returns

bool
True when at least one role is transformable.

validate_dataset_for_task(self, dataset: 'DashAIDataset', dataset_name: str, input_columns: List[str], output_columns: Optional[List[str]]) -> None

Defined on BaseTask

Validate a dataset for the current task.

Parameters

dataset : DashAIDataset
Dataset to be validated
dataset_name : str
Dataset name
input_columns : list of str
Names of the columns selected as inputs.
output_columns : list of str
Names of the columns selected as outputs.

validate_estimated_role(self, role_name: str, columns: Sequence[Tuple[Optional[str], Optional[int]]]) -> None

Defined on BaseTask

Check one role against the columns a preprocessing chain will give it.

Parameters

role_name : str
A declared role.
columns : sequence of (type name, count)
One entry per estimated output: the name of its type, or None when unknown, and how many columns it holds, or None when unknown. An unknown count is taken as at least one, and only the role's minimum is checked then.

validate_inputs_given(self, roles: Mapping[str, Sequence]) -> None

Defined on BaseTask

Check that the input roles, together, get at least one column.

Parameters

roles : mapping
Role name to the role's columns, as names or as column refs. A role the mapping leaves out counts as given no columns.

validate_role(self, role_name: str, columns: Sequence[str], types: Mapping[str, Any]) -> None

Defined on BaseTask

Check one role's columns against its types and cardinality.

Parameters

role_name : str
A declared role.
columns : sequence of str
The names of the role's columns.
types : mapping
The dataset's column types, keyed by column name.

validate_roles(self, roles: Mapping[str, Sequence[str]], types: Mapping[str, Any]) -> None

Defined on BaseTask

Check a session's columns, role by role, against the declaration.

Parameters

roles : mapping
Role name to the names of the role's columns.
types : mapping
The dataset's column types, keyed by column name.