2

我看过关于同一问题的各种文章,尝试了很多解决方案,但没有任何效果。好心劝告。

我在 WEKA 中遇到错误:

“问题评估分类器:测试和训练集不兼容”。

我在用

J48 作为我的算法

这是我的测试集:

Trainset:
https://www.dropbox.com/s/fm0n1vkwc4yj8yn/train.csv

Evalset:
https://www.dropbox.com/s/2j9jgxnoxr8xjdx/Eval.csv

(由于代码太长,我无法复制和粘贴)

我在 WEKA(用于 Traningset)中尝试了“批量过滤”,但它仍然不起作用。

编辑:我什至已经转换了我的.csv to .arff 但仍然是同样的问题。

EDIT2:我已确保两个 CSV 中的标题匹配。即使是同样的问题。请帮忙!

请指教。

4

2 回答 2

4

使用 Weka 将“.csv”文件转换为“.arff”的一个常见错误是,名义属性的值在数据集之间以不同的顺序出现或根本不出现。

您的评估“.arff”文件可能如下所示(跳过不相关的数据):

@relation 评估
@attribute a321 {TRUE}

您的火车“.arff”文件可能如下所示(跳过不相关的数据):

@relation train
@attribute a321 {FALSE}

但是,两者都应包含该属性的所有可能值,并且顺序相同:

@attribute a321 {真,假}

您可以通过在文本编辑器中对“.arff”文件进行后处理并更改标题来解决此问题,以便您的标称值在文件之间以相同的顺序(和数量)出现。

于 2013-11-05T21:04:06.493 回答
0

如何将数据集划分为训练集和测试集?

您可以使用RemovePercentage过滤器(包weka.filters.unsupervised.instance)。

在资源管理器中,只需执行以下操作:

训练集:

  • 加载完整的数据集
  • 在预处理面板中选择 RemovePercentage 过滤器
  • 为拆分设置正确的百分比
  • 应用过滤器
  • 将生成的数据另存为新文件

测试集:

  • 加载完整的数据集(或者只使用 undo 来恢复对数据集的更改)
  • 如果尚未选择,请选择 RemovePercentage 过滤器
  • 将 invertSelection 属性设置为 true
  • 应用过滤器
  • 将生成的数据保存为新文件
于 2015-06-04T13:42:41.360 回答