Comments (2)
Hi, I have difficulties understanding what you are trying to achieve... However, I can say to you that using the summary functionality you can get:
The keys are the integer map of each node. The values are dicts containing information for that node:
- 'col' (^): column used for splitting;
- 'th' (^): threshold value used for splitting in the selected column;
- 'loss': loss computed at node level. Weighted sum of children' losses if it is a splitting node;
- 'samples': number of samples in the node. Sum of children' samples if it is a split node;
- 'children' (^): integer mapping of possible children nodes;
- 'models': fitted linear models built in each split. Single model if it is leaf node;
- 'classes' (^^): target classes detected in the split. Available only for LinearTreeClassifier.
- (^): Only for split nodes. (^^): Only for leaf nodes.
If you want to get coef_ and intercept_, simply querying the interested 'models' inside the summary does the job.
As an additional resource, I can suggest this post where coef_ are used
from linear-tree.
Thanks.
Eventually I want to generate a formula below semi-automatically.
y = 3 * x + 0.3 if x <= 0,
y = 2 * x - 0.5 if 0.2 < x <= 0.5,
y = 0.5*x +0.1 if 0.5 =x
When there is only one explanatory variable, these formulas are explainable and can be used as white-box AI.
To create this formula, I need a threshold, a coefficient, and an intercept, so I created the following code. However, this code can't handle complex trees, so I wanted to ask if the library you created already has such a feature.
def func(x, result):
threshold = result.get("threshold", None)
coef_ = result.get("coef_", None)
intercept_ = result.get("intercept_", None)
if threshold is None:
coef_ = coef_
intercept_ = intercept_
else:
if x <= threshold:
coef_ = coef_[0]
intercept_ = intercept_[0]
elif x > threshold:
coef_ = coef_[1]
intercept_ = intercept_[1]
else:
raise ValueError
y = x * coef_ + intercept_
return y
from linear-tree.
Related Issues (20)
- Which traversing method does linear tree use to find the left and right node ? HOT 1
- Why does each leaf node return three arrays of coefficients ?
- Why the loss is always 0 for every Linear Tree regression model I run ? HOT 1
- Potential bug in LinearForestClassifier 'predict_proba' HOT 1
- Allow the hyperparameter "max_depth = 0". HOT 4
- Error when running with multiple jobs: unexpected keyword argument 'target_offload' HOT 3
- How to gridsearch tree and regression parameters? HOT 1
- Linear Boosting will it work for categorical features? HOT 3
- numpy deprecation warning HOT 1
- [Question] HOT 1
- [Question] Are there plans for multivariate models? HOT 1
- How to quote your work? HOT 1
- Rationale for rounding during _parallel_binning_fit and _grow HOT 2
- Non coherent splitting results HOT 2
- Have precision of threshold be customizable HOT 4
- [performance suggestions?]Parallelism btw trees and replace linear fit to SGD with batch? HOT 2
- LinearTree does not fit well HOT 3
- LinearForestRegressor may give biased coefficients for base estimator HOT 3
- Maximum Slope limiter HOT 1
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 linear-tree.