计算决策树中的熵(机器学习)

时间:2013-01-16 16:59:45

标签: machine-learning decision-tree

我知道计算熵的公式:

H(Y) = - ∑ (p(yj) * log2(p(yj)))

在单词中,选择一个属性并为每个值检查目标属性值... 所以p(yj)是节点N的模式部分在类别yj中 - 一个用于目标值,一个用于假。

但是我有一个数据集,其中目标属性是价格,因此是范围。如何计算这种数据集的熵?

(简称:http://decisiontrees.net/decision-trees-tutorial/tutorial-5-exercise-2/

2 个答案:

答案 0 :(得分:7)

首先需要以某种方式对数据集进行离散化,例如将数字排序为多个存储桶。存在许多用于离散化的方法,一些监督(即考虑目标函数的值)而一些不是。 This paper概述了相当笼统的各种技术。对于更具体的细节,Weka等机器学习库中有许多离散化算法。

连续分布的熵称为differential entropy,也可以通过假设您的数据以某种方式分布(例如,正态分布),然后以正常方式估计底层分布,并使用此计算熵值。

答案 1 :(得分:1)

与Vic Smith一致,离心通常是一个很好的方法。根据我的经验,大多数看似连续的数据实际上都是“块状”而且很少丢失。

但是,如果由于其他原因而不希望离散化,则还会为连续分布定义熵(请参阅您最喜欢的发行版的维基百科,例如http://en.wikipedia.org/wiki/Normal_distribution])。

一种方法是采用一种分配形式,例如:正常,对数正态等,并根据估计的参数计算熵。我不认为玻尔兹曼熵(连续)和香农熵(离散)的尺度在同一尺度上,所以不会混合它们。