tree.DecisionTreeRegressor 是模型树还是回归树?
我的理解是:
在一个回归树中:每个叶子的目标值是通过计算在训练过程中到达该叶子的所有实例的目标值的平均值来得出的。
在一个模型树中:每个叶子的值是一个线性函数,这个函数使用了一部分特征,具体是通过对到达该叶子的实例进行线性回归来确定的。
在scikit-learn中,tree.DecisionTreeRegressor
是回归树还是模型树?
2 个回答
0
模型树和决策树的区别在于,模型树计算的是线性近似(而不是常数),在叶子节点上使用简单的线性模型。
为了我的一个项目,我开发了一个叫linear-tree的东西:这是一个用来构建带有线性模型的模型树的Python库。
linear-tree
的设计是为了能够和scikit-learn
完全兼容。
from sklearn.linear_model import *
from lineartree import LinearTreeRegressor, LinearTreeClassifier
# REGRESSION
regr = LinearTreeRegressor(base_estimator=LinearRegression())
regr.fit(X, y)
# CLASSIFICATION
clf = LinearTreeClassifier(base_estimator=RidgeClassifier())
clf.fit(X, y)
LinearTreeRegressor
和LinearTreeClassifier
作为scikit-learn
的基本估计器提供。它们是包装器,可以在数据上构建决策树,并使用来自sklearn.linear_model
的线性估计器。sklearn.linear_model
中所有可用的模型都可以作为线性估计器使用。
比较决策树和模型树:
7
你的理解是对的。从数学上讲,回归树可以看作是一个分段常数函数,而线性模型树则是一个分段线性函数。
DecisionTreeRegressor
就是一个回归树。