- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
ID3 算法使用“信息增益”度量。
C4.5 使用“增益比”度量,即信息增益除以 SplitInfo
,而 SplitInfo
对于记录在不同结果之间平均分配的拆分而言很高否则低。
我的问题是:
这如何帮助解决信息增益偏向于有许多结果的 split 的问题?我看不出原因。 SplitInfo
甚至不考虑结果的数量,只考虑拆分中记录的分布。
很可能结果数量较少(例如 2 个),并且记录在这 2 个结果之间平分。在这种情况下,SplitInfo
高,增益比低,并且 C4.5 不太可能选择结果很少的拆分。
另一方面,可能结果数量较少,但分布很不均匀。在这种情况下,SplitInfo
较低,Gain Ratio 较高,并且更有可能选择具有许多结果的拆分。
我错过了什么?
最佳答案
SplitInfo doesn't even take into account the number of outcomes, just the distribution of records in the split.
但它确实考虑了结果的数量。 (即使它也依赖于分布,如您所述)。您的比较是在结果数量相同(“低”)的两种情况之间进行的,因此它无法说明 SplitInfo
如何随着结果数量的变化而变化。
考虑以下 3 种情况,为了比较简单,所有情况都均匀分布:
10 个均匀分布的可能结果
SplitInfo = -10*(1/10*log2(1/10)) = 3.32
100 个均匀分布的可能结果
SplitInfo = -100*(1/100*log2(1/100)) = 6.64
1000 种均匀分布的可能结果
SplitInfo = -1000*(1/1000*log2(1/1000)) = 9.97
因此,如果您必须在 3 种可能的拆分方案之间进行选择,如 ID3 中那样仅使用 Information Gain
,则会选择后者。但是,在 GainRatio
中使用 SplitInfo
,应该清楚的是,随着选择的数量增加,SplitInfo
也会上升,GainRatio
会下降。
所有这些都是在平均分布的假设下解释的。然而,即使分布不均匀,上述情况仍然成立。 SplitInfo
会随着可能结果的数量增加而增加。是的,如果我们保持可能结果的数量不变并改变结果分布,那么 SplitInfo
将有一些差异......但是 Information Gain
也会有差异。
关于math - ID3 和 C4.5 : How Does "Gain Ratio" Normalize "Gain"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13224649/
ID3 算法使用“信息增益”度量。 C4.5 使用“增益比”度量,即信息增益除以 SplitInfo,而 SplitInfo 对于记录在不同结果之间平均分配的拆分而言很高否则低。 我的问题是: 这如何
这个问题在这里已经有了答案: Unable to sign in Sandbox gamecenter on iOS 7 (4 个答案) 关闭 9 年前。 这个问题很奇怪。我的系统版本是IOS7。在
我正在尝试处理 WebAudio API 的一项已弃用的 Chrome 功能,该功能与设置 GainNode.gain.value 有关。我当前的代码是这样的: var source = ctx.cr
我想了解 xgboost 中的特征重要性是如何通过“增益”计算的。来自 https://towardsdatascience.com/be-careful-when-interpreting-your
在 linux 中这段代码不起作用:我添加了两行 // Added two lines. DataLine.Info info = new DataLine.Info( SourceDataLine.
我试图了解如何正确使用 R 包 FSelector,特别是它的 information.gain 函数。 According to the documentation : information ga
我需要在部件上添加键吗 ... ... React 不会提示缺少键,因为这些 div 不是来自数组,但我想知道是否可以提高性能?为了减少代码
我正在阅读这本书 ( NLTK ) 并且令人困惑。 熵 是 defined as : Entropy is the sum of the probability of each label times
问题本质上是如何正确地将增益应用于音频样本? 我在 FreeBSD 和 OSS 上编程,但在音频样本中操作音量可能与其他操作系统和应用程序相同。 我正在研究其他人的应用程序内部结构,例如 ecasou
我一直在尝试让约束排除适用于 postgres 9.5。 我正在使用一些 OSM 数据(13,191,400 行),但无论我使用分区表还是完整表,每当我执行查询时,它花费的时间大致相同。 虽然 Exp
我在使用 Clip.getControl() 时遇到错误:- import java.io.File; import java.io.IOException; import javax.sound.s
这个问题在这里已经有了答案: How can I improve CPU utilization when using the multiprocessing module? (1 个回答) 关闭
我刚刚注意到似乎无法使用 setValueAtTime() 或 方法更改 gainNode 的 gain.value >setValueCurveAtTime() 当没有连接振荡器或振荡器尚未启动时。
我正在使用cordova-plugin-multi-player用Cordova构建一个简单的音频应用程序。 除了其他应用要求音频焦点时,所有内容(在后台播放,管理网络更改)都可以在Android中顺
http://jsbin.com/ifabem/2/edit "use strict"; window.x = "Hello World"; alert(x); // this does't thro
我有一些用 three.js 和 Web Audio API 制作的音乐可视化,但我在静音音频时遇到了问题。 我目前有一个带有分析器和源缓冲区的 AudioContext 对象。我正在努力添加一个增益
我发现了一个我不明白的奇怪案例。也许这是一个 Qt 错误,也许我做错了什么。 标题: // File mylineedit.h #pragma once #include #include cla
我知道这听起来像是一个基于意见的问题,但我认为它足够具体,因为它是一个关于现实生活中的 C++ 实现的问题。 我是一名大学数学专业的学生,我一直在努力自学 C++,我想在使用它的环境中获得入门级编
我们可以通过“权重”获得特征重要性: model.feature_importances_ 但这不是我想要的。我想通过信息获取的重要性。 我们可以通过“增益”图获得特征重要性: xgboost.plo
我的问题很模糊 :o) - 但这里有一个例子 : 当我编写 C 代码时,我能够在出现故障时记录计数器的值: for ( int i = 0 ; i 现在,使用异常,我得到了这个:
我是一名优秀的程序员,十分优秀!