tree.DecisionTreeRegressor是模型树还是回归树?

时间:2014-06-02 01:20:03

标签: scikit-learn

我的理解是:

1)回归树中每个叶子的目标值计算为在训练期间到达该叶子的实例的目标值的平均值。

2)模型树中每个叶子的值是使用特征子集的线性函数,通过对训练期间到达该叶子的实例进行线性回归来确定。

scikit中的tree.DecisionTreeRegressor是学习回归树还是模型树?

2 个答案:

答案 0 :(得分:4)

你理解是对的。在数学上,回归树代表piecewise constant function,而(线性)模型树代表piecewise linear function

DecisionTreeRegressor是回归树。

答案 1 :(得分:0)

模型树决策树不同,因为它们计算拟合叶中简单线性模型的线性近似值(而不是常数值)。< /p>

对于我的一个项目,我开发了 linear-tree一个 python 库,用于在叶子上构建带有线性模型的模型树。

enter image description here

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)

LinearTreeRegressorLinearTreeClassifier 作为 scikit-learn BaseEstimator 提供。它们是包装器,在拟合来自 sklearn.linear_model 的线性估计器的数据上构建决策树。 sklearn.linear_model 中可用的所有模型都可以用作线性估计器。

比较决策树模型树

enter image description here

enter image description here