Comments (4)
Aha ok. So I learned two things: Checking for correlated features before applying LOFO and not to ignore the standard deviation in the LOFO result dataframe :) Also, thank you for the additional links. I guess this is closed now. Thanks.
from lofo-importance.
Hi @r0f1, thanks for letting us know. As far as I see, the feature importances are very low and their standard deviations are relatively high. This means that positive ones are not significantly positive and negative ones are not significantly negative. Can you also make the same test by providing a model you know (instead of default model) which has high AUC on this dataset?
from lofo-importance.
Hi,
So you would recommend not to drop features if the standard deviation is too high?
I ran a couple of experiments on the BRCA dataset. I found that the default RandomForestClassifier has a good accuracy (0.912) and roc_auc (0.989). Running the LOFO importance with this model gave me unexpected results: Almost all features are in the red.
In order to do my feature selection procedure (=take only those features whose mean is above zero, irgnoring standard deviation), I switched to accuracy. Running the LOFO importance with accuracy, over halt the features were green, and others were red. I removed the red ones and re-ran the LOFO imporance on the green ones only, and then there were again some red ones.
Also, between the runs, the ordering of the features changed.
For fun, I calculated the permutation importance also, and the orderings a completely different from the LOFO importance orderings. Are these the results of random variability? Is there maybe another dataset that you would recommend to re-run those experiments?
Code to reproduce everything:
repo, binder
from lofo-importance.
Thanks for the extensive explanation. I have just checked the dataset. Almost all the features are over 0.9 correlated with another feature. Therefore removing one feature out doesn't have any significant effect. This is the reason why LOFO has small values as output with relatively high standard deviations. So while reading LOFO's output, please always consider the standard deviations.
Some dataset examples:
https://www.kaggle.com/divrikwicky/pf-f-lofo-importance-on-adversarial-validation
https://www.kaggle.com/divrikwicky/lofo-importance
https://www.kaggle.com/divrikwicky/santanderctp-lofo-feature-importance
from lofo-importance.
Related Issues (20)
- How to use GroupKFold? HOT 10
- Add logging or restart mechanism HOT 2
- Sample_weight? HOT 2
- Add the choice between Mean/Std and Median/IQR HOT 5
- Having a lot of features + Using LOFO? HOT 3
- usage question HOT 2
- Multiclass models HOT 4
- Groupkfold or Groupshufflesplit Cross Validation HOT 1
- Support multiclass classification ? HOT 2
- TimeSeriesSplit with Lofo HOT 1
- Feature selection using statistical significance
- How to perform feature selection with hyperparameter tuning?
- Returns NaNs all the time HOT 1
- Any tutorial for dealing with genetic data? HOT 2
- Could you add a reference? HOT 1
- Running the example in the readme throws errors
- Compatibility with neural network: replacing with constant value instead of dropping the feature HOT 2
- requirements.txt not packaged in source distribution
- Pandas 2.0.x compatibility HOT 5
- Variable Grouping Only Works When Model Parameter is Kept To Default HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from lofo-importance.