我发现软件包被用来计算“信息增益”,用于选择C4.5决策树中的主要属性,并尝试使用它们来计算“信息增益”。
但是每个包的计算结果是不同的,如下代码所示。
> IG.CORElearn <- attrEval(In_Occu ~ In_Temp+In_Humi+In_CO2+In_Illu+In_LP+Out_Temp+Out_Humi, dataUSE1, estimator = "InfGain")
> IG.RWeka <- InfoGainAttributeEval(In_Occu ~ In_Temp+In_Humi+In_CO2+In_Illu+In_LP+Out_Temp+Out_Humi, dataUSE1)
> IG.FSelector <- information.gain(In_Occu ~ In_Temp+In_Humi+In_CO2+In_Illu+In_LP+Out_Temp+Out_Humi,dataUSE1)
> IG.CORElearn
In_Temp In_Humi In_CO2 In_Illu In_LP Out_Temp Out_Humi
0.04472928 0.02705100 0.09305418 0.35064927 0.44299167 0.01832216 0.05551973
> IG.RWeka
In_Temp In_Humi In_CO2 In_Illu In_LP Out_Temp Out_Humi
0.11964771 0.04340197 0.12266724 0.38963327 0.44299167 0.03831816 0.07705798
> IG.FSelector
attr_importance
In_Temp 0.08293347
In_Humi 0.02919697
In_CO2 0.08411316
In_Illu 0.27007321
In_LP 0.30705843
Out_Temp 0.02656012
Out_Humi 0.05341252为什么每个包的计算结果是不同的?哪一个是对的?
发布于 2017-09-27 11:48:31
在G5W的答复https://datascience.stackexchange.com/a/16249/29575](https://datascience.stackexchange.com/a/16249/29575])中添加FSelector (可能还有其他实现),在计算分数之前对特性进行离散化。
对于FSelector,这是在文件selector.info.gan.R中完成的。您可以使用FSelector:::discretize.all检查离散化。此步骤删除更改功能排序的范围内的信息。
https://datascience.stackexchange.com/questions/16219
复制相似问题