分类和回归树 – 使用GINI计算最优分割

我在我的Java实现中遵循了这个关于cart算法的指南,并想知道是否有更快的方法来选择最优分割。

指南建议以下步骤:

       对于每个特征:          对于该特征的每个值:             进行分割             如果分割的GINI得分小于之前的最小GINI,则记住该GINI得分

是否可以对这个过程进行修改,以牺牲局部精度来提高速度,但不会导致整体精度下降?虽然这可以很容易地并行化,但遍历每个属性及其值以选择单一分割仍然是成本高昂的。


回答:

是的,可以加速这个过程:

对于每个特征    按特征排序数据    计算目标不同值的累积计数    计算目标不同值的反向累积计数    在每个特征值处         根据累积计数计算gini值         保留最大值

如果特征取值有限,可以进一步优化。如果不排序数据,你可以聚合数据并使用聚合后的数据进行分割计算。

如果特征是分类变量,你可以遵循相同的过程,但按二元目标的目标密度对特征进行排序。如果你有超过两个目标值,这会变得稍微复杂一些。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注