【问题标题】:Is tree.DecisionTreeRegressor a Model Tree or a Regression Tree?tree.DecisionTreeRegressor 是模型树还是回归树?
【发布时间】:2014-07-22 01:50:44
【问题描述】:

我的理解是:

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

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

scikit-learn 中的tree.DecisionTreeRegressor回归树还是模型树

【问题讨论】:

    标签: python machine-learning scikit-learn tree


    【解决方案1】:

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

    DecisionTreeRegressor 是一棵回归树。

    【讨论】:

    • 谢谢。正如我所怀疑的那样。你有这方面的参考吗?
    • @ben_0110100:不,但我是 scikit-learn 的核心开发人员之一,在过去的一年里我已经对树进行了一些修改。
    • @snarly 你能推荐任何模型树的 Python 实现吗?
    【解决方案2】:

    模型树决策树不同,因为它们计算线性近似(而不是常数近似),在叶子中拟合简单的线性模型

    对于我的一个项目,我开发了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 BaseEstimator。它们是根据来自sklearn.linear_model 的线性估计器的数据构建决策树的包装器。 sklearn.linear_model 中可用的所有模型都可以用作线性估计器。

    比较决策树模型树

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-30
      • 2015-11-23
      • 2019-10-02
      • 2017-04-14
      • 2013-07-16
      • 1970-01-01
      • 2021-03-02
      • 2013-08-02
      相关资源
      最近更新 更多