Weka 属性选择——证明不同方法的不同结果
Weka Attribute selection - justifying different outcomes of different methods
我想对数字数据集使用属性选择。
我的目标是找到我稍后将在线性回归中用于预测数值的最佳属性。
为了测试,我使用了从 here(datasets-numeric.jar) 获得的 autoPrice.arff
使用 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
我的问题是:
我如何证明这两个结果之间存在矛盾?如果这两种方法使用不同的算法来实现相同的目标(揭示属性与 class 的相关性),为什么一个说 engine-size 很重要而另一个说没那么多!?
没有理由认为 RELIEF 和信息增益 (IG) 应该给出相同的结果,因为它们测量的是不同的东西。
IG 查看没有属性和条件化之间的熵差异;因此,高度信息属性(相对于class变量)将排名最高。
然而,RELIEF 查看随机数据实例,并通过与 "nearby" 数据实例进行比较来衡量该特征区分 classes 的程度。
请注意,relief 是一种更启发式(即更随机)的方法,您获得的值和顺序取决于多个参数,这与 IG 不同。
所以我们不希望优化不同数量的算法给出相同的结果,尤其是当一个算法依赖于参数时。
但是,我会说实际上你的结果 是 非常相似:例如curb-weight
和 horsepower
在这两种方法中都非常接近顶部。
我想对数字数据集使用属性选择。 我的目标是找到我稍后将在线性回归中用于预测数值的最佳属性。
为了测试,我使用了从 here(datasets-numeric.jar) 获得的 autoPrice.arff 使用 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
我的问题是: 我如何证明这两个结果之间存在矛盾?如果这两种方法使用不同的算法来实现相同的目标(揭示属性与 class 的相关性),为什么一个说 engine-size 很重要而另一个说没那么多!?
没有理由认为 RELIEF 和信息增益 (IG) 应该给出相同的结果,因为它们测量的是不同的东西。
IG 查看没有属性和条件化之间的熵差异;因此,高度信息属性(相对于class变量)将排名最高。
然而,RELIEF 查看随机数据实例,并通过与 "nearby" 数据实例进行比较来衡量该特征区分 classes 的程度。 请注意,relief 是一种更启发式(即更随机)的方法,您获得的值和顺序取决于多个参数,这与 IG 不同。
所以我们不希望优化不同数量的算法给出相同的结果,尤其是当一个算法依赖于参数时。
但是,我会说实际上你的结果 是 非常相似:例如curb-weight
和 horsepower
在这两种方法中都非常接近顶部。