LabelEncoder
#include <Skigen/Preprocessing>
template <typename Label = int>
class Skigen::LabelEncoder
Encode target labels with value between 0 and n_classes − 1.
This transformer encodes integer labels as contiguous zero-based indices. It is useful as a utility to normalize labels.
Mirrors sklearn.preprocessing.LabelEncoder for integer-typed labels.
Attributes:
-
is_fitted : bool Whether the encoder has been fitted.
-
classes : const std::vector< Label > & Unique class labels sorted in ascending order.
-
n_classes : Eigen::Index Number of unique classes.
Methods
fit(y)
Fit the label encoder by discovering unique classes.
Parameters:
- y : VectorType Label vector of shape (n_samples,).
Returns:
- result : LabelEncoder
Reference to the fitted encoder (
*this).
transform(y)
Transform labels to normalized encoding.
Parameters:
- y : VectorType Label vector of shape (n_samples,).
Returns:
- result : IndexVector Integer vector of encoded labels [0, n_classes).
Throws:
std::runtime_error— if the encoder has not been fitted.std::invalid_argument— ifycontains unseen labels.
fit_transform(y)
Fit the encoder and return transformed labels.
Equivalent to fit(y).transform(y) but more convenient.
Parameters:
- y : VectorType Label vector of shape (n_samples,).
Returns:
- result : IndexVector Integer vector of encoded labels [0, n_classes).
inverse_transform(y)
Transform encoded labels back to original labels.
Parameters:
- y : IndexVector Integer vector of encoded labels.
Returns:
- result : VectorType Original label vector of shape (n_samples,).
Throws:
std::runtime_error— if the encoder has not been fitted.std::invalid_argument— ifycontains indices out of range.
Example
Skigen::LabelEncoder<int> encoder;
auto encoded = encoder.fit_transform(labels);
std::cout << "Encoded: " << encoded.transpose() << "\n";
std::cout << "Classes: ";
for (auto c : encoder.classes()) std::cout << c << " ";
std::cout << "\n";
std::cout << "n_classes: " << encoder.n_classes() << "\n\n";
// Inverse transform — recover original labels
auto decoded = encoder.inverse_transform(encoded);
std::cout << "Decoded: " << decoded.transpose() << "\n";