2015-11-03 79 views
0

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

回答

5

ID3C4.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)的方法
  • 基于直方图的方法。
+0

太棒了! – SJB