Classifiers

Shared classes

HierarchicalClassifier

class HierarchicalClassifier.HierarchicalClassifier(local_classifier: BaseEstimator | None = None, verbose: int = 0, edge_list: str | None = None, replace_classifiers: bool = True, n_jobs: int = 1, classifier_abbreviation: str = '')

Abstract class for the local hierarchical classifiers.

Offers mostly utility methods and common data initialization.

__init__(local_classifier: BaseEstimator | None = None, verbose: int = 0, edge_list: str | None = None, replace_classifiers: bool = True, n_jobs: int = 1, classifier_abbreviation: str = '')

Initialize a local hierarchical classifier.

Parameters:
  • local_classifier (BaseEstimator, default=LogisticRegression) – The local_classifier used to create the collection of local classifiers. Needs to have fit, predict and clone methods.

  • verbose (int, default=0) – Controls the verbosity when fitting and predicting. See https://verboselogs.readthedocs.io/en/latest/readme.html#overview-of-logging-levels for more information.

  • edge_list (str, default=None) – Path to write the hierarchy built.

  • replace_classifiers (bool, default=True) – Turns on (True) the replacement of a local classifier with a constant classifier when trained on only a single unique class.

  • n_jobs (int, default=1) – The number of jobs to run in parallel. Only fit is parallelized.

  • classifier_abbreviation (str, default="") – The abbreviation of the local hierarchical classifier to be displayed during logging.

fit(X, y)

Fit a local hierarchical classifier.

Needs to be subclassed by other classifiers as it only offers common methods.

Parameters:
  • X ({array-like, sparse matrix} of shape (n_samples, n_features)) – The training input samples. Internally, its dtype will be converted to dtype=np.float32. If a sparse matrix is provided, it will be converted into a sparse csc_matrix.

  • y (array-like of shape (n_samples, n_levels)) – The target values, i.e., hierarchical class labels for classification.

Returns:

self – Fitted estimator.

Return type:

object


ConstantClassifier

class ConstantClassifier.ConstantClassifier

A classifier that always returns the only label seen during fit.

fit(X, y)

Fit a constant classifier.

Parameters:
  • X ({array-like, sparse matrix} of shape (n_samples, n_features)) – The training input samples. Internally, its dtype will be converted to dtype=np.float32. If a sparse matrix is provided, it will be converted into a sparse csc_matrix.

  • y (array-like of shape (n_samples, n_levels)) – The target values, i.e., hierarchical class labels for classification.

Returns:

self – Fitted estimator.

Return type:

object

predict(X: ndarray) ndarray

Predict classes for the given data.

Parameters:

X (np.ndarray of shape(n_samples, ...)) – Data that should be predicted. Only the number of samples matters.

Returns:

output – 1 for the previously seen class.

Return type:

np.ndarray

predict_proba(X: ndarray) ndarray

Predict classes for the given data.

Parameters:

X (np.ndarray of shape(n_samples, ...)) – Data that should be predicted. Only the number of samples matters.

Returns:

output – 1 for the previously seen class.

Return type:

np.ndarray


LocalClassifierPerLevel

class LocalClassifierPerLevel.LocalClassifierPerLevel(local_classifier: BaseEstimator | None = None, verbose: int = 0, edge_list: str | None = None, replace_classifiers: bool = True, n_jobs: int = 1)

Bases: BaseEstimator, HierarchicalClassifier

Assign local classifiers to each level of the hierarchy, except the root node.

A local classifier per level is a local hierarchical classifier that fits one local multi-class classifier for each level of the class hierarchy, except for the root node.

__init__(local_classifier: BaseEstimator | None = None, verbose: int = 0, edge_list: str | None = None, replace_classifiers: bool = True, n_jobs: int = 1)

Initialize a local classifier per level.

Parameters:
  • local_classifier (BaseEstimator, default=LogisticRegression) – The local_classifier used to create the collection of local classifiers. Needs to have fit, predict and clone methods.

  • verbose (int, default=0) – Controls the verbosity when fitting and predicting. See https://verboselogs.readthedocs.io/en/latest/readme.html#overview-of-logging-levels for more information.

  • edge_list (str, default=None) – Path to write the hierarchy built.

  • replace_classifiers (bool, default=True) – Turns on (True) the replacement of a local classifier with a constant classifier when trained on only a single unique class.

  • n_jobs (int, default=1) – The number of jobs to run in parallel. Only fit is parallelized.

fit(X, y)

Fit a local classifier per level.

Parameters:
  • X ({array-like, sparse matrix} of shape (n_samples, n_features)) – The training input samples. Internally, its dtype will be converted to dtype=np.float32. If a sparse matrix is provided, it will be converted into a sparse csc_matrix.

  • y (array-like of shape (n_samples, n_levels)) – The target values, i.e., hierarchical class labels for classification.

Returns:

self – Fitted estimator.

Return type:

object

get_metadata_routing()

Get metadata routing of this object.

Please check User Guide on how the routing mechanism works.

Returns:

routing – A MetadataRequest encapsulating routing information.

Return type:

MetadataRequest

get_params(deep=True)

Get parameters for this estimator.

Parameters:

deep (bool, default=True) – If True, will return the parameters for this estimator and contained subobjects that are estimators.

Returns:

params – Parameter names mapped to their values.

Return type:

dict

predict(X)

Predict classes for the given data.

Hierarchical labels are returned.

Parameters:

X ({array-like, sparse matrix} of shape (n_samples, n_features)) – The input samples. Internally, its dtype will be converted to dtype=np.float32. If a sparse matrix is provided, it will be converted into a sparse csr_matrix.

Returns:

y – The predicted classes.

Return type:

ndarray of shape (n_samples,) or (n_samples, n_outputs)

set_params(**params)

Set the parameters of this estimator.

The method works on simple estimators as well as on nested objects (such as Pipeline). The latter have parameters of the form <component>__<parameter> so that it’s possible to update each component of a nested object.

Parameters:

**params (dict) – Estimator parameters.

Returns:

self – Estimator instance.

Return type:

estimator instance


LocalClassifierPerNode

class LocalClassifierPerNode.LocalClassifierPerNode(local_classifier: BaseEstimator | None = None, binary_policy: str = 'siblings', verbose: int = 0, edge_list: str | None = None, replace_classifiers: bool = True, n_jobs: int = 1)

Bases: BaseEstimator, HierarchicalClassifier

Assign local classifiers to each node of the graph, except the root node.

A local classifier per node is a local hierarchical classifier that fits one local binary classifier for each node of the class hierarchy, except for the root node.

__init__(local_classifier: BaseEstimator | None = None, binary_policy: str = 'siblings', verbose: int = 0, edge_list: str | None = None, replace_classifiers: bool = True, n_jobs: int = 1)

Initialize a local classifier per node.

Parameters:
  • local_classifier (BaseEstimator, default=LogisticRegression) – The local_classifier used to create the collection of local classifiers. Needs to have fit, predict and clone methods.

  • binary_policy (str, default="siblings") – Rules for defining positive and negative training examples.

  • verbose (int, default=0) – Controls the verbosity when fitting and predicting. See https://verboselogs.readthedocs.io/en/latest/readme.html#overview-of-logging-levels for more information.

  • edge_list (str, default=None) – Path to write the hierarchy built.

  • replace_classifiers (bool, default=True) – Turns on (True) the replacement of a local classifier with a constant classifier when trained on only a single unique class.

  • n_jobs (int, default=1) – The number of jobs to run in parallel. Only fit is parallelized.

fit(X, y)

Fit a local classifier per node.

Parameters:
  • X ({array-like, sparse matrix} of shape (n_samples, n_features)) – The training input samples. Internally, its dtype will be converted to dtype=np.float32. If a sparse matrix is provided, it will be converted into a sparse csc_matrix.

  • y (array-like of shape (n_samples, n_levels)) – The target values, i.e., hierarchical class labels for classification.

Returns:

self – Fitted estimator.

Return type:

object

get_metadata_routing()

Get metadata routing of this object.

Please check User Guide on how the routing mechanism works.

Returns:

routing – A MetadataRequest encapsulating routing information.

Return type:

MetadataRequest

get_params(deep=True)

Get parameters for this estimator.

Parameters:

deep (bool, default=True) – If True, will return the parameters for this estimator and contained subobjects that are estimators.

Returns:

params – Parameter names mapped to their values.

Return type:

dict

predict(X)

Predict classes for the given data.

Hierarchical labels are returned.

Parameters:

X ({array-like, sparse matrix} of shape (n_samples, n_features)) – The input samples. Internally, its dtype will be converted to dtype=np.float32. If a sparse matrix is provided, it will be converted into a sparse csr_matrix.

Returns:

y – The predicted classes.

Return type:

ndarray of shape (n_samples,) or (n_samples, n_outputs)

set_params(**params)

Set the parameters of this estimator.

The method works on simple estimators as well as on nested objects (such as Pipeline). The latter have parameters of the form <component>__<parameter> so that it’s possible to update each component of a nested object.

Parameters:

**params (dict) – Estimator parameters.

Returns:

self – Estimator instance.

Return type:

estimator instance


LocalClassifierPerParentNode

class LocalClassifierPerParentNode.LocalClassifierPerParentNode(local_classifier: BaseEstimator | None = None, verbose: int = 0, edge_list: str | None = None, replace_classifiers: bool = True, n_jobs: int = 1)

Bases: BaseEstimator, HierarchicalClassifier

Assign local classifiers to each parent node of the graph.

A local classifier per parent node is a local hierarchical classifier that fits one multi-class classifier for each parent node of the class hierarchy.

__init__(local_classifier: BaseEstimator | None = None, verbose: int = 0, edge_list: str | None = None, replace_classifiers: bool = True, n_jobs: int = 1)

Initialize a local classifier per parent node.

Parameters:
  • local_classifier (BaseEstimator, default=LogisticRegression) – The local_classifier used to create the collection of local classifiers. Needs to have fit, predict and clone methods.

  • verbose (int, default=0) – Controls the verbosity when fitting and predicting. See https://verboselogs.readthedocs.io/en/latest/readme.html#overview-of-logging-levels for more information.

  • edge_list (str, default=None) – Path to write the hierarchy built.

  • replace_classifiers (bool, default=True) – Turns on (True) the replacement of a local classifier with a constant classifier when trained on only a single unique class.

  • n_jobs (int, default=1) – The number of jobs to run in parallel. Only fit is parallelized.

fit(X, y)

Fit a local classifier per parent node.

Parameters:
  • X ({array-like, sparse matrix} of shape (n_samples, n_features)) – The training input samples. Internally, its dtype will be converted to dtype=np.float32. If a sparse matrix is provided, it will be converted into a sparse csc_matrix.

  • y (array-like of shape (n_samples, n_levels)) – The target values, i.e., hierarchical class labels for classification.

Returns:

self – Fitted estimator.

Return type:

object

get_metadata_routing()

Get metadata routing of this object.

Please check User Guide on how the routing mechanism works.

Returns:

routing – A MetadataRequest encapsulating routing information.

Return type:

MetadataRequest

get_params(deep=True)

Get parameters for this estimator.

Parameters:

deep (bool, default=True) – If True, will return the parameters for this estimator and contained subobjects that are estimators.

Returns:

params – Parameter names mapped to their values.

Return type:

dict

predict(X)

Predict classes for the given data.

Hierarchical labels are returned.

Parameters:

X ({array-like, sparse matrix} of shape (n_samples, n_features)) – The input samples. Internally, its dtype will be converted to dtype=np.float32. If a sparse matrix is provided, it will be converted into a sparse csr_matrix.

Returns:

y – The predicted classes.

Return type:

ndarray of shape (n_samples,) or (n_samples, n_outputs)

set_params(**params)

Set the parameters of this estimator.

The method works on simple estimators as well as on nested objects (such as Pipeline). The latter have parameters of the form <component>__<parameter> so that it’s possible to update each component of a nested object.

Parameters:

**params (dict) – Estimator parameters.

Returns:

self – Estimator instance.

Return type:

estimator instance