测试和训练集不兼容

时间:2013-11-05 10:51:23

标签: csv data-mining weka test-data training-data

我已经看过关于同一问题的各种文章,试过很多解决方案但没有任何工作。请建议。

我在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中的标题都匹配。甚至   然后同样的问题。请帮忙!

请建议。

2 个答案:

答案 0 :(得分:4)

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

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

  

@relation Eval
  @attribute a321 {TRUE}

您的火车“.arff”文件可能看起来像这样(跳过不相关的数据):

  

@relation train
  @attribute a321 {FALSE}

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

  

@attribute a321 {TRUE,FALSE}

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

答案 1 :(得分:0)

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

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

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

训练集:

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

测试集:

  • 加载完整数据集(或只使用撤消将更改还原为数据集)
  • 如果尚未选择,则选择RemovePercentage过滤器
  • 将invertSelection属性设置为true
  • 应用过滤器
  • 将生成的数据另存为新文件