2013-01-16 41 views
7

我知道公式计算熵:决策树计算熵(学习机)

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

在口头上,选择属性,并为每个值校验目标属性值... 因此P(YJ)是节点N处的模式的分数在类别yj中 - 一个用于目标值中的真值,另一个用于假。

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

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

回答

6

首先需要discretise数据以某种方式设置,如数字分类整理成若干桶。存在许多离散化方法,一些是监督的(即考虑到目标函数的价值),另一些则不是。 This paper概述了相当笼统的用法。更具体的说,像Weka这样的机器学习库中有很多离散算法。

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

+0

但我怎样才能决定范围?假设我对数据进行了排序,如何确定范围...只是猜测,如果我想要二进制然后平均数据? –

+0

有很多方法用于这个,我会添加更多的信息给答案,给我一秒... –

+0

哎呀这没有意义..如果属性有两个值,然后二进制...谢谢@Vic史密斯! –

0

与维克史密斯一致,离散化通常是一个好方法。根据我的经验,大多数看似连续的数据实际上是“块状”,并且很少有丢失。然而,如果由于其他原因离散化是不希望的,则熵也被定义为连续分布(关于你喜欢的分布,参见wikipedia),例如http://en.wikipedia.org/wiki/Normal_distribution]。

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