Skip to content
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

Feature Cycling as an option instead of Random Feature Sampling #4066

Closed
JoshuaC3 opened this issue Mar 12, 2021 · 1 comment
Closed

Feature Cycling as an option instead of Random Feature Sampling #4066

JoshuaC3 opened this issue Mar 12, 2021 · 1 comment

Comments

@JoshuaC3
Copy link

Summary

Have the option such that the model can select features cyclically, instead of simply randomly selecting the features.

See here for initial discussion on LightGBMs and EBMs.

Motivation

Model explain ability is becoming ever more important in the ML space. LightGBM can take advantage of some of the methods used by Explainable Boosted Machines to make models more interpretable. One of the features of EBMs is build shallow, single-feature trees (currently possible in LightGBM by toying with parameters). However, these trees are boosted in a cyclic fashion.

So, for example,

image

So for a model with 3-features:

Tree 1 - feature 1
Tree 2 - feature 2
Tree 3 - feature 3
Tree 4 - feature 1
Tree 5 - feature 2
Tree 6 - feature 3
...

This allows the model to ensure it gains information from colinear features that might be equally as important. When comparing this to a small number of deeper trees, it is easy to get a bias (lots of gain) in the first few features the are randomly selected.

Description

The feature would be used to make LightGBM more interpretable and results more comparable to EBMs. This will allow users to make informed decision on interpretability vs model performance.

Additionally, in certain cases, the model maybe be more robust at inference time if colinear features are missing.

References

A great conceptual video explanation.

InterpretML: A Unified Framework for Machine Learning Interpretability
InterpretML: A toolkit for understanding machine learning models
InterpretMLs Explainable Boosting Machine

@StrikerRUS
Copy link
Collaborator

Closed in favor of being in #2302. We decided to keep all feature requests in one place.

Welcome to contribute this feature! Please re-open this issue (or post a comment if you are not a topic starter) if you are actively working on implementing this feature.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants