Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Machine learning 计算决策树中的熵(机器学习)_Machine Learning_Decision Tree - Fatal编程技术网

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

Machine learning 计算决策树中的熵(机器学习),machine-learning,decision-tree,Machine Learning,Decision Tree,我知道计算熵的公式: H(Y) = - ∑ (p(yj) * log2(p(yj))) 换句话说,选择一个属性并为每个值检查目标属性值。。。 所以p(yj)是节点N上属于yj类的图案的分数-一个表示目标值为真,一个表示假 但我有一个数据集,其中目标属性是price,因此是range。如何计算这种数据集的熵 (参考:)您首先需要以某种方式对数据集进行离散化,比如将数据以数字方式排序到多个存储桶中。存在许多离散化方法,有些是有监督的(即考虑目标函数的值),有些不是。概述了以相当笼统的术语使用的各种

我知道计算熵的公式:

H(Y) = - ∑ (p(yj) * log2(p(yj)))
换句话说,选择一个属性并为每个值检查目标属性值。。。 所以p(yj)是节点N上属于yj类的图案的分数-一个表示目标值为真,一个表示假

但我有一个数据集,其中目标属性是price,因此是range。如何计算这种数据集的熵


(参考:)

您首先需要以某种方式对数据集进行离散化,比如将数据以数字方式排序到多个存储桶中。存在许多离散化方法,有些是有监督的(即考虑目标函数的值),有些不是。概述了以相当笼统的术语使用的各种技术。关于更多细节,像Weka这样的机器学习库中有很多离散化算法


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

与Vic Smith的观点一致,离散化通常是一种很好的方法。根据我的经验,大多数看似连续的数据实际上都是“块状”的,几乎没有丢失

然而,如果离散化由于其他原因是不可取的,熵也被定义为连续分布(参见维基百科关于您最喜欢的分布,例如。http://en.wikipedia.org/wiki/Normal_distribution]).


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

但我如何确定范围?假设我对数据进行排序,如何确定范围。。。猜猜看,如果我想要二进制数据,那么这个数据的平均值是多少?有很多方法可以使用,我会在答案中添加更多的信息,给我一点时间……哎呀,这没有意义。。如果属性有两个值,那么二进制。。。谢谢@Vic Smith!您有一个输出是连续的决策树。因此,让我们根据范围分割数据集。取属性say price并将其拆分为r1、r2范围内的价格。。。现在找出数据集值在哪个范围内。对于Ri中的所有值,概率是Ri/价格或实例的总数。现在把这些值放到熵公式中