Comments (3)
Hi @joshdunnlime! Thanks for trying out GAM Changer!
You are correct that currently users cannot interpolate the last bin. This is partially because there is no end point for the
last bin. Internally if the feature value is greater than the upper bound on the graph, we use the last bin's additive term to compute the prediction. Since there is no end point for the last bin, "interpolation" becomes kind of confusing.
There is no "end point" for the last bin 👆 |
I can see situations where users want to interpolate the last bin. For now you would need to manually split the last bin into two bins. 🙁 You can do that by modifying the model data. You would need to change the additive
, error
, count
, and binEdge
of model['features'][k]
. You can create a tiny end bin by inserting additive
(additive score), error
(prediction variance on that bin), count
(number of training data), binEdge
(bin cuts).
model = gc.get_model_data(ebm)
print(model['features'][0].keys())
# dict_keys(['name', 'type', 'importance', 'additive', 'error', 'id', 'count', 'binEdge', 'histEdge', 'histCount'])
print(
len(model['features'][0]['additive']),
len(model['features'][0]['error']),
len(model['features'][0]['count']),
len(model['features'][0]['binEdge']),
)
from gam-changer.
That's really great. Thabnk you. This is such an awesome extension to EBMs with a lovely GUI. I was already editing some of my models in a similar way, though your suggestion seems a little neater. I hope this feedback is useful. Excited to see and hear more. This is such a great project.
from gam-changer.
When using GAM Changer on the outer/end bins, you cannot split these bins into extra bins. Also, as you cannot split this bin, it seems you cannot make a steped interpolation (either monotonic increasing or decreasing).
Finally, it would be really useful to be able to increase the domain of the EBM past the upper (lower) most value in the training domain. These are likely to be the times expert knowledge is going to be most useful, when the model cannot "see" the data.
I just saw comment. Yeah I can see how it can be very helpful to change the bin cuts in addition to bin scores. I will think more about it and perhaps design a new editing tool to hep users easily change bin definitions (like extending the last bin). Thanks for the suggestion! For now you can use the code above as a workaround. I will ping you when I have more update.
I will close the issue now. Thanks again for trying out GAM Changer and reaching out to us!!
from gam-changer.
Related Issues (14)
- Option to make the Contribution Scores more Interpretable HOT 3
- GAMChanger fails to load data in some cases HOT 9
- Version 0.1.4 breaks gam-changer-adult.ipynb notebook HOT 2
- Insufficient Zoom HOT 1
- inconsistent with package interpret HOT 3
- Bug in gamchanger.py HOT 2
- Support for new link fuctions HOT 1
- AttributeError: 'ExplainableBoostingClassifier' object has no attribute 'histogram_counts_' HOT 6
- pair_preprocessor_ is None HOT 1
- AttributeError: 'ExplainableBoostingClassifier' object has no attribute 'histogram_weights_' HOT 1
- ``get_model_data`` fails when trying to extract model data with monotonized features
- Incompatibility with ExplainableBoostingRegressor: unsupported feature type 'ordinal' HOT 5
- Empty Metric Panel
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 gam-changer.