【问题标题】:How to do proper testing in Weka and how to get desired results ?如何在 Weka 中进行适当的测试以及如何获得所需的结果?
【发布时间】:2012-04-20 15:22:25
【问题描述】:

我目前正在研究应用 ANN、SVM 和线性回归方法来预测基于气象因素(13 个因素)的地区水果产量 总数据集为:36

在 WEKA 上实现这些方法时,我得到了不好的结果: 就像在 MultilayerPreceptron 的情况下,我的结果是: (我将数据集分为 28 个用于训练,8 个用于测试) ===运行信息===

方案:weka.classifiers.functions.MultilayerPerceptron -L 0.3 -M 0.2 -N 500 -V 0 -S 0 -E 20 -H a -G -R 关系:apr6_data 实例:28 属性:15

构建模型所需时间:3.69 秒

=== 对测试集的预测 ===

inst# 实际预测误差 1 2.551 2.36 -0.191 2 2.126 3.079 0.953 3 2.6 1.319 -1.281 4 1.901 3.539 1.638 5 2.146 3.635 1.489 6 2.533 2.917 0.384 7 2.54 2.744 0.204 8 2.82 3.473 0.653

=== 测试集评估 === ===总结===

相关系数 -0.4415 平均绝对误差 0.8493 均方根误差 1.0065 相对绝对误差 144.2248 % 根相对平方误差 153.5097 % 实例总数 8

如果使用 SVM 进行回归: inst# 实际预测误差 1 2.551 2.538 -0.013 2 2.126 2.568 0.442 3 2.6 2.335 -0.265 4 1.901 2.556 0.655 5 2.146 2.632 0.486 6 2.533 2.24 -0.293 7 2.54 2.766 0.226 8 2.82 3.175 0.355

=== 测试集评估 === ===总结===

相关系数 0.2888 平均绝对误差 0.3417 均方根误差 0.3862 相对绝对误差 58.0331 % 根相对平方误差 58.9028 % 实例总数 8

我的应用程序中可能出现的错误是什么?请告诉我 ! 谢谢

【问题讨论】:

  • 您必须向我们提供更多信息。您正在使用哪些属性(类型、范围)?你到底想预测什么?此外,一般而言,您需要一个远大于 36 的数据集才能获得良好的结果。
  • 我基本上是用year(1),annual_rainfall(1),max_temperature(4),min_temperature(4),solar_radiation(4)。 Max_temperature、min_temperature 和太阳辐射都是 4 个因素,因为我只考虑水果季节......即 nov-dec、dec-jan、jan-feb、feb-mar。所以每个都成为一个因素。都是数值数据,范围如下:
  • 年:1973-74 至 2008-2009 年降雨量:365mm 至 1617mm 辐射约 11 至 20 ... 最高和最低温度,以摄氏度为单位。产量以吨/公顷为单位。
  • 我需要规范化数据吗?我猜它是由 WEKA 分类器完成的。
  • 离散化预测可能会更好,例如进入低/中/高产量。

标签: machine-learning weka svm prediction neural-network


【解决方案1】:

我需要规范化数据吗?我猜它是由 WEKA 分类器完成的。

如果你想规范化数据,你必须这样做。 Preprocess tab -> Filters (choose) -> 然后找到 normalize 然后点击 apply。

如果你想离散化你的数据,你必须遵循同样的过程。

离散化预测可能会更好,例如分为低/中/高产量。

您需要标准化或离散化——这不能根据您的数据或单次运行来说明。例如,离散化为朴素贝叶分类器带来了更好的结果。对于 SVM-不确定。

我没有从您的数据中看到您的 Precision、Recall 或 F 分数。但是正如您所说,您在测试集上的结果很差,那么您的分类器很可能正在经历过拟合。尝试增加训练实例(我猜 36 太少了)。当您增加培训实例时,请随时向我们发布正在发生的事情。

【讨论】:

  • 我正在使用 SMOReg 和 MultiLayer Preceptron 分类器以及线性回归进行预测任务。我正在选择规范化 MLP 中的属性并在 SMOReg 中使用规范化过滤器。我想我将不得不为线性回归明确使用过滤器?另外我想知道是否有任何方法可以让测试数据(在 arff 文件中)在 WEKA 中进行标准化,或者我们必须单独进行?
  • 如果您的数据范围变化很​​大,我认为您应该在使用 LR 时对数据进行规范化。您是否需要进行标准化 - 如果没有看到数据,我无法判断;我的意思是这一切都取决于数据。是的,您可以在 Weka Explorer 中的预处理选项卡选择过滤器中规范化您的数据,然后您将找到树状结构选项。在那里你会发现NORMALIZE。选择它后,单击 NORMALIZE -PARAMETERS 所在的窗口,然后您将有很多选项 - 您可以对数据执行规范化。
猜你喜欢
  • 2020-10-13
  • 2014-09-09
  • 2020-09-27
  • 1970-01-01
  • 2020-11-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多