dotnet / dotnet/machinelearning
Evaluate PFI on raw features
- Dominant language
- C#
- Stars
- 9.4k
- Forks
- 2k
- Avg merge
- 2d 20h
- Merged PRs (30d)
- 11
Description
Right now, the [PFI implementation](https://github.com/dotnet/machinelearning/blob/master/src/Microsoft.ML.Transforms/PermutationFeatureImportance.cs), permutes and evaluates feature importances on the slots of the feature vector. However, I may want to evaluate PFI on the raw features (instead of or in addition to) the slots of the feature vector.
Consider this scenario: PCA transform or a "hash" transform e.g. Text Transform with NGram Hash or Categorical Hash has been applied to raw features and the corresponding slots have no name or are unintelligible names. PFI on these slots isn't very "explainable" for these slots. Some sense of "importance" can still be had if the initial column could be permuted.
In addition, PFI operates on the numerical features that were passed to the trainer. When the original features in the dataset are categorical or strings, this means that the trainer sees the output of the one-hot encoding transformer, which adds multiple columns for each individual input column. It is not always useful for the user to get feature importance on each slot of the featurized column, and there should be an option to evaluate PFI on the initial input columns.
See also #4296 #3895
Contributor guide
Assessment
This issue has not been assessed yet.