-
Notifications
You must be signed in to change notification settings - Fork 156
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Improved feature importance support #747
Comments
Here's an update on my suggestion for the format of feature importances, as returned by the proposed method I think allowing models to expose multiple types of feature importance is overkill / excessively complicated. Of course multiple scores can still be declared in the report itself. So I suggest a vector of v= [:gender =>0.23, :height =>, :weight => 0.1] |
What is the current state of this ?? |
Am still working on this. Will be done soon. |
What is the current state of this ? |
The MLJ model API only says that model reporting feature importances
should report them in the
report
output byfit
. But it saysnothing about the actual format of this output, and I can see
inconsistencies in the implementations. Feature importances are used
by some meta-alogorithms, such as RecursiveFeatureElimination (#426) so this
might be worth sorting out.
I propose adding a new method
feature_importance(model::Model, report)
to the model API to report the scores, according to somefixed convention.
Some models (e.g., LightGBM models) report multipletypes of importance scores. So I propose this method return a named
tuple keyed on the type, whose values are
Float64
vectors.edit See suggestion for format below.
edit The proposal follows that same interface patter that we have already for
training_losses
.Thoughts anyone?
TODO:
reports_feature_importances
trait to StatisticalTraits, defaulting tofalse
feature_importances(model, report)
stub to MLJModelInterface (in model_api.jl); fallback to returnnothing
.MMI.feature_importance(mach::Machine)
following this patternfeature_importances
#954importances in their report (including linear models for which absolute value of
coefficients serve). These include:
It may make sense to roll out data front-ends for some of these models at the same time, mimicking the EvoTrees case where this already done.
coefficients and get these models to report the scores in their
report
, and to implement the above method and trait. See Have linear models report names of coefficients along with values. MLJScikitLearnInterface.jl#30 and implement feature importance rankings MLJScikitLearnInterface.jl#26The text was updated successfully, but these errors were encountered: