【发布时间】:2014-07-22 01:50:44
【问题描述】:
我的理解是:
-
在回归树中:每个叶子的目标值计算为在训练期间到达该叶子的实例的目标值的平均值。
-
在模型树中:每个叶子的值是使用特征子集的线性函数,通过对训练期间到达该叶子的实例执行线性回归来确定。
scikit-learn 中的tree.DecisionTreeRegressor 是回归树还是模型树?
【问题讨论】:
标签: python machine-learning scikit-learn tree
我的理解是:
在回归树中:每个叶子的目标值计算为在训练期间到达该叶子的实例的目标值的平均值。
在模型树中:每个叶子的值是使用特征子集的线性函数,通过对训练期间到达该叶子的实例执行线性回归来确定。
scikit-learn 中的tree.DecisionTreeRegressor 是回归树还是模型树?
【问题讨论】:
标签: python machine-learning scikit-learn tree
你的理解是对的。在数学上,回归树代表piecewise constant function,而(线性)模型树是piecewise linear function。
DecisionTreeRegressor 是一棵回归树。
【讨论】:
模型树与决策树不同,因为它们计算线性近似(而不是常数近似),在叶子中拟合简单的线性模型。
对于我的一个项目,我开发了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 BaseEstimator。它们是根据来自sklearn.linear_model 的线性估计器的数据构建决策树的包装器。 sklearn.linear_model 中可用的所有模型都可以用作线性估计器。
比较决策树与模型树:
【讨论】: