韦卡的分类准确性



我正在使用Weka GUI进行分类。我是Weka的新手,对这些选项感到困惑

  • 使用训练集
  • 提供的测试装置
  • 交叉验证

为了训练我的分类算法(例如 J48),我用交叉验证进行了 10 倍的训练,准确率相当不错 (97%)。当我测试我的分类时 - 准确率下降到大约 72%。我很困惑。请问有什么提示吗?我是这样做的:

  • 我在训练数据上训练我的模型(例如:train.arff
  • 我在"结果"列表中右键单击要保存的模型的项目选择"保存模型"并将其另存为j48tree.model

然后

  • 我通过提供的测试集按钮加载测试数据(例如:test.arff
  • 右键单击结果列表,我选择了加载模型并选择 j48tree.model
  • 我选择了Re-evaluate model on current test set

我做错了吗?为什么准确率从97%悲惨地下降到72%?还是只做 10 折的交叉验证就足以训练和测试分类器?

注意:我的训练数据集和测试数据集具有相同的属性和标签。唯一的区别是,我在测试集上有更多的数据,我认为这不会成为问题。

我认为你如何使用WEKA没有任何问题。

你提到你的测试集比训练大?什么是分裂?通常的经验法则是测试集应该是整个数据集的 1/4,即比训练小 3 倍,绝对不大。仅此一项就可以解释从97%下降到72%,顺便说一下,这对于现实生活中的情况来说还不错。

如果您 https://weka.wikispaces.com/Learning+curves 建立学习曲线,这将很有帮助,因为它将解释您是否有偏差或方差问题。从您的值来看,听起来您的方差很大(即数据集的参数太多),因此添加更多示例或更改训练集和测试集之间的拆分可能会有所帮助。

更新我通过随机森林对有问题的数据集进行了快速分析,我的表现与作者发布的表现相似。详细信息和代码可在 gitpage http://omdv.github.io/2016/03/10/WEKA-stackoverflow

相关内容

最新更新