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

2 投票
2 回答
1562 浏览
提问于 2025-04-18 08:14

我的理解是:

  1. 在一个回归树中:每个叶子的目标值是通过计算在训练过程中到达该叶子的所有实例的目标值的平均值来得出的。

  2. 在一个模型树中:每个叶子的值是一个线性函数,这个函数使用了一部分特征,具体是通过对到达该叶子的实例进行线性回归来确定的。

在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)

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

比较决策树模型树

这里插入图片描述

这里插入图片描述

7

你的理解是对的。从数学上讲,回归树可以看作是一个分段常数函数,而线性模型树则是一个分段线性函数。

DecisionTreeRegressor就是一个回归树。

撰写回答