代码之家  ›  专栏  ›  技术社区  ›  John

分类和回归树-基尼最优分割计算

  •  1
  • John  · 技术社区  · 6 年前

    我一直遵循这个指南 cart 我想知道是否有更快的方法来选择最佳分割。

    指南建议采取以下步骤:

           for each feature:
              for each value of the feature:
                 make a split
                 remember GINI score if a split is less than previous min GINI
    

    是否可以对该程序进行任何修改以提高速度,但这不会导致 全面的 精度下降?虽然这可以很容易地并行化,但循环每个属性以及选择单个拆分的价值仍然代价高昂。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Gordon Linoff    6 年前

    是的,这可以加快:

    For each feature
        Sort data by feature
        Calculate cumulative counts of different values of target
        Calculate reverse cumulative counts of different values of target
        At each feature value
             Calculate gini value based on cumulative counts
             Keep the maximum
    

    如果这些特性具有一组有限的值,则可以对其进行进一步优化。您可以聚合数据并使用聚合数据进行拆分计算,而不是对数据进行排序。

    如果特征是分类的,则遵循相同的过程,但按二元目标的目标密度按特征排序。如果有两个以上的目标值,这就变得有点棘手了。