我想对数字数据集使用属性选择。 我的目标是找到我稍后将在线性回归中使用的最佳属性来预测数值。
为了测试,我使用了从here获得的autoPrice.arff(datasets-numeric.jar) 使用ReliefFAttributeEval我得到以下结果:
Ranked attributes:
**0.05793 8 engine-size**
**0.04976 5 width**
0.0456 7 curb-weight
0.04073 12 horsepower
0.03787 2 normalized-losses
0.03728 3 wheel-base
0.0323 10 stroke
0.03229 9 bore
0.02801 13 peak-rpm
0.02209 15 highway-mpg
0.01555 6 height
0.01488 4 length
0.01356 11 compression-ratio
0.01337 14 city-mpg
0.00739 1 symboling
使用InfoGainAttributeEval(将数字应用于名义过滤器后)给我留下以下结果:
Ranked attributes:
6.8914 7 curb-weight
5.2409 4 length
5.228 2 normalized-losses
5.0422 12 horsepower
4.7762 6 height
4.6694 3 wheel-base
4.4347 10 stroke
4.3891 9 bore
**4.3388 8 engine-size**
**4.2756 5 width**
4.1509 15 highway-mpg
3.9387 14 city-mpg
3.9011 11 compression-ratio
3.4599 13 peak-rpm
2.2038 1 symboling
我的问题是: 我怎样才能证明两个结果之间的矛盾呢?如果2种方法使用不同的算法来实现相同的目标(揭示属性与类的相关性),为什么有人说例如引擎大小很重要而另一种说不是那么多!?
答案 0 :(得分:0)
没有理由认为RELIEF和信息增益(IG)应该给出相同的结果,因为它们衡量的是不同的东西。
IG研究了没有属性和条件的熵之间的差异;因此,高度信息属性(关于类变量)将是排名最高的。
然而,RELIEF查看随机数据实例,并通过与“附近”数据实例进行比较来衡量该功能对类的区分程度。 请注意,浮雕更具启发性(即更随机)方法,并且您获得的值和排序取决于几个参数,与IG不同。因此,我们不希望算法优化不同的数量来得到相同的结果,尤其是当一个参数依赖时。
但是,我会说实际上您的结果 非常相似:例如<{1}}和horsepower
在两种方法中都非常接近顶部。