Weka 属性选择 – 解释不同方法产生不同结果的合理性

我想对一个数值数据集进行属性选择。我的目标是找出最佳属性,稍后将在线性回归中使用这些属性来预测数值。

为了测试,我使用了从这里(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-weight5.2409   4 length5.228    2 normalized-losses5.0422  12 horsepower4.7762   6 height4.6694   3 wheel-base4.4347  10 stroke4.3891   9 bore**4.3388   8 engine-size****4.2756   5 width**4.1509  15 highway-mpg3.9387  14 city-mpg3.9011  11 compression-ratio3.4599  13 peak-rpm2.2038   1 symboling

我的问题是:如何证明这两个结果之间的矛盾?如果两种方法使用不同的算法来实现相同的目标(揭示属性对类的相关性),为什么一个说例如engine-size很重要,而另一个却说不那么重要!?


回答:

没有理由认为RELIEF和信息增益(IG)应该给出相同的结果,因为它们测量的是不同的东西。

IG 查看的是没有属性和在属性条件下的熵的差异;因此,相对于类变量而言,具有高度信息量的属性将被排在最前面。

然而,RELIEF 查看的是随机数据实例,并通过与“附近”的数据实例进行比较来测量特征区分类的效果。请注意,RELIEF 是一种更启发式(即更随机)的方法,你得到的值和顺序取决于多个参数,这与IG不同。

因此,我们不会期望优化不同量的算法给出相同的结果,尤其是一个是依赖参数的。然而,我认为你的结果实际上是相当相似的:例如,curb-weighthorsepower在两种方法中都非常接近顶部。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注