Skip to content

Feature importance

fyt.core.feature_selection.feature_importance

Feature importance computation strategies using registry pattern.

This module provides a flexible system for computing feature importance using different methods (native, SHAP, permutation).

FeatureImportanceRegistry

Bases: ComponentRegistry[FeatureImportanceStrategy]

Registry for feature importance computation strategies.

compute(method, model, X, y=None, feature_names=None, **kwargs) classmethod

Compute feature importance using the specified method.

Parameters:

Name Type Description Default
method str

Feature importance method to use (string or enum).

required
model BaseEstimator

Trained model instance.

required
X DataFrame

Feature data.

required
y Series | None

Target data (required for permutation method).

None
feature_names list[str] | None

Optional list of feature names.

None
**kwargs

Method-specific parameters.

{}

Returns:

Type Description
DataFrame | None

DataFrame with feature importance or None if computation failed.

Raises:

Type Description
ValueError

If the method is not supported.

get_available_methods() classmethod

Get list of available feature importance methods.

Returns:

Type Description
list[str]

List of available method keys.

FeatureImportanceStrategy

Bases: ABC

Abstract base class for feature importance computation strategies.

compute(model, X, y=None, feature_names=None, **kwargs) abstractmethod

Compute feature importance.

Parameters:

Name Type Description Default
model BaseEstimator

Trained model instance.

required
X DataFrame

Feature data.

required
y Series | None

Target data (required for some methods).

None
feature_names list[str] | None

Optional list of feature names.

None
**kwargs

Additional method-specific parameters.

{}

Returns:

Type Description
DataFrame | None

DataFrame with columns ['feature', 'importance'] or None if failed.

NativeFeatureImportance

Bases: FeatureImportanceStrategy

Compute feature importance from model's native attribute.

compute(model, X, y=None, feature_names=None, **kwargs)

Compute native feature importance.

Parameters:

Name Type Description Default
model BaseEstimator

Trained model with feature_importances_ attribute.

required
X DataFrame

Feature data (used only for feature names).

required
y Series | None

Not used.

None
feature_names list[str] | None

List of feature names.

None
**kwargs

Not used.

{}

Returns:

Type Description
DataFrame | None

DataFrame with feature importance or None if not supported.

PermutationFeatureImportance

Bases: FeatureImportanceStrategy

Compute feature importance using permutation importance.

compute(model, X, y=None, feature_names=None, **kwargs)

Compute permutation-based feature importance.

Parameters:

Name Type Description Default
model BaseEstimator

Trained model instance.

required
X DataFrame

Feature data.

required
y Series | None

Target data (required).

None
feature_names list[str] | None

List of feature names.

None
**kwargs

Additional parameters for permutation_importance.

{}

Returns:

Type Description
DataFrame | None

DataFrame with feature importance or None if failed.

ShapFeatureImportance

Bases: FeatureImportanceStrategy

Compute feature importance using SHAP values.