问题标签 [information-gain]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
1086 浏览

r - R中的信息增益

我发现包用于计算“信息增益”以在 C4.5 决策树中选择主要属性,我尝试使用它们来计算“信息增益”。

但是每个包的计算结果都不同,如下面的代码。

为什么每个包的计算结果不一样?

0 投票
1 回答
689 浏览

algorithm - 信息增益的负值

我正在实施 C4.5,在我的计算中,我得到了(对于某些示例)信息增益的负值。我阅读了为什么我会获得负面信息增益,但我的问题似乎有所不同。我将我的计算结果放到了 excel 中,得到了与以下相同的结果:

我的计算

我究竟做错了什么?

我尝试再次计算它,并且我得到负值,如下图所示: 数据集 80 的最新计算 是拆分值,所以我得到 11 <=80 和 3objects > 80

0 投票
1 回答
1801 浏览

r - rpart 的结果是根,但数据显示信息增益

我有一个事件率小于 3% 的数据集(即大约有 700 条记录为 1 类,27000 条记录为 0 类)。

我正在尝试使用决策树找出拆分。但是树的结果只有 1 个根。

在阅读了 StackOverflow 上的大部分资源后,我放松/调整了控制参数,这给了我所需的决策树。

当我修剪这棵树时,它产生了一棵带有单个节点的树。

树不应该只给出根节点,因为从数学上讲,在给定节点(提供示例)上,我们正在获得信息增益。我不知道我是否在修剪时犯了错误,或者 rpart 在处理低事件率数据集时存在问题?

0 投票
1 回答
8536 浏览

python - Python 信息获取实现

我目前正在使用 scikit-learn 对 20ng 数据集进行文本分类。我想计算矢量化数据集的信息增益。有人向我建议,这可以使用sklearn中的mutual_info_classif 来完成。但是,这种方法确实很慢,所以我试图根据这篇文章自己实现信息获取。

我想出了以下解决方案:

使用非常小的数据集,来自 sklearn 的大多数分数和我的实现是相等的。但是,sklearn 似乎考虑了频率,而我的算法显然没有。例如

样本输出:

所以我想知道我的实现是错误的,还是正确的,但是互信息算法 scikit-learn 使用了不同的变体。

0 投票
0 回答
217 浏览

machine-learning - 不同的结果 - Weka.infogain vs sklearn.mutual_info_classif

我的数据看起来像:

我正在使用该代码:

使用 Weka,我需要做的就是选择InfogainAttrebuteEval并获得FEATURES. 出于某种原因,我使用上面的代码没有得到相同的排名结果。
问题是什么?

0 投票
1 回答
54 浏览

split - 数字或分类拆分?

我正在构建一个决策树分类器,我发现了这种计算信息增益的方法。这可能是一个愚蠢的问题,但我想知道这种方法中的拆分是针对数字属性还是分类属性?我很困惑,因为我认为阈值(中位数)用于数字拆分,但此方法使用字符串值。

任何帮助表示赞赏。

这是代码:

0 投票
0 回答
82 浏览

r - 无法运行信息。增益

我正在尝试在 1500 万个数据上运行 information.gain。我使用的代码:

但我收到了这个错误。

.jnew("java/lang/String", k) 中的错误:java.lang.OutOfMemoryError:超出 GC 开销限制

我应该如何克服这个?

我尝试使用此代码,但仍然无法正常工作:

0 投票
0 回答
146 浏览

machine-learning - 通过拉普拉斯平滑获得负信息增益

如果也使用拉普拉斯平滑,是否可以获得负信息增益?

我们知道:

这里,H 是熵函数,IG 是信息增益。

还:

H(Y) = -Σ y P(Y=y).log 2 (P(Y=y))

H(Y|X) = Σ x P(X=x).H(Y|X=x)

H(Y|X=x) = -Σ y P(Y=y|X=x).log 2 (P(Y=y|X=x))

例如,假设 P(Y=y|X=x) = n y|x /n x。但有可能 n x = 0 和 n y|x = 0。所以,我进行拉普拉斯平滑并定义 P(Y=y|X=x) = (n y|x +1)/(n x +| X|)。这里,|X| 表示 X 可以取的可能值的数量(如果选择 X 作为属性,则可能的拆分数量)。是否有可能由于拉普拉斯平滑,我得到了负面信息增益?

0 投票
0 回答
96 浏览

python - 如何在python中使用库的功能?

我想在python中使用计算条件互信息的函数。我找到了一个实现它的库“mdentropy”。但是当我尝试使用命令查看 mdentropy 库的函数列表时,dir(mdentropy)它显示:

我打开了 mdenetropy 的文件夹,但我看不到任何具有此类功能的 python 文件。

我从这里下载了库:https ://pypi.python.org/pypi/mdentropy

我的问题基本上是:

  • 如何使用该函数从该库计算条件互惠信息?
  • 有没有其他资源可以计算这个函数?
0 投票
1 回答
253 浏览

r - MLR 包:generateFilterValuesData chi.squared 和 information.gain

我正在尝试使用 mlr 包,并希望获得卡方和信息增益值。

我不确定变量information.gain和中有两个零的后果。这是否表明我不应该使用它们来建立模型(例如随机森林)?chi.squaredtricepspressure

当我使用

它给了我60.473卡方。为什么不是0?chisq和 chi-squared-method from 和有什么区别mlr