dotnet / dotnet/machinelearning

Evaluate PFI on raw features

Open
#4,266 0 comments 0 reactions 1 assignee Claimed by @najeeb-kazmi View on GitHub
area-Transforms enhancement Priority:2
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.