在决策树中寻找连续数据阈值的方法

Posted

技术标签:

【中文标题】在决策树中寻找连续数据阈值的方法【英文标题】:Method of finding threshold in Decision tree for continuous data 【发布时间】:2016-02-03 17:15:07 【问题描述】:

我在 Weka 中使用决策树并且我有一些连续的数据,所以当我使用 Weka 时,它会自动为我找到阈值,但由于某种原因我想自己实现决策树,所以我需要知道使用什么方法找到离散化我的连续数据的阈值?

【问题讨论】:

【参考方案1】:

ID3 和 C4.5 使用 entropy 启发式方法对连续数据进行离散化。该方法为每个变量(特征)找到一个二元切割。您可以递归地应用相同的方法来从连续数据中获取多个区间。

假设在某个树节点,所有实例都属于一组S,并且您正在处理变量A和特定边界(切割)T,分区的类信息熵由T,表示为E(A,T,S),由:

             |S1|                 |S2|
E(A, T, S) = ---- Entropy(S1) +   ---- Entropy(S2)
              |S|                 |S|

其中|S1| 是第一个分区中的实例数; |S2| 是第二个分区的实例数; |S| = |S1|+|S2|.

对于给定的特征A,在所有可能的分区边界上最小化熵函数的边界T_min被选为二进制离散化边界。

例如,您可能有一个变量Length,所有可能的值如下:

Length = 2.1, 2.8, 3.5, 8.0, 10.0, 20.0, 50.0, 51.0

那么您的T 可能是:

T = 2.1, 2.8, 3.5, 8.0, 10.0, 20.0, 50.0, 51.0

您在其中削减了所有可能的Length 值。您还可以在相邻 Length 值的每个中间点进行剪切,例如,

T = 2.45, 3.15, 5.75, 9.0, 15.0, 35.0, 50.5

在离散化时,您将遍历所有可能的 T 值并评估哪个值获得最小值 E(A, T, S)。就是这样。

在此paper 中查看更多详细信息,其中还描述了其他可选方法:

ChiMerge 离散化方法。 基于学习向量量化 (LVQ) 的方法 基于直方图的方法。

【讨论】:

以上是关于在决策树中寻找连续数据阈值的方法的主要内容,如果未能解决你的问题,请参考以下文章

如何计算决策树的 AUC?

有没有办法手动修改从给定数据集中学习的决策树中设置的阈值?

有没有办法手动修改从给定数据集中学习的决策树中设置的阈值?

机器学习面试问答:决策树如何进行剪枝?剪枝的方法有哪些?

在决策树中缩放数据改变了我的结果?

决策树。选择分割对象的阈值