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. |