Note
Go to the end to download the full example code.
Different Number of Levels
HiClass supports different number of levels in the hierarchy. For this example, we will train a local classifier per node with a hierarchy similar to the following image:
/home/docs/checkouts/readthedocs.org/user_builds/hiclass/envs/v5.0.1/lib/python3.12/site-packages/sklearn/base.py:474: FutureWarning: `BaseEstimator._validate_data` is deprecated in 1.6 and will be removed in 1.7. Use `sklearn.utils.validation.validate_data` instead. This function becomes public and is part of the scikit-learn developer API.
warnings.warn(
[['Mammal' 'Wolf' 'Dog']
['Mammal' 'Cat' '']
['Reptile' 'Lizard' '']
['Reptile' 'Snake' '']
['Bird' '' '']]
import numpy as np
from sklearn.linear_model import LogisticRegression
from hiclass import LocalClassifierPerNode
# Define data
X_train = [[1, 2], [3, 4], [5, 6], [7, 8], [9, 10]]
X_test = [[9, 10], [7, 8], [5, 6], [3, 4], [1, 2]]
Y_train = np.array(
[
["Bird"],
["Reptile", "Snake"],
["Reptile", "Lizard"],
["Mammal", "Cat"],
["Mammal", "Wolf", "Dog"],
],
dtype=object,
)
# Use random forest classifiers for every node
rf = LogisticRegression()
classifier = LocalClassifierPerNode(local_classifier=rf)
# Train local classifier per node
classifier.fit(X_train, Y_train)
# Predict
predictions = classifier.predict(X_test)
print(predictions)
Total running time of the script: (0 minutes 0.022 seconds)