Weka的分类准确性

时间:2016-03-09 04:32:04

标签: machine-learning classification weka

我使用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次交叉验证就足以训练和测试分类器了吗?

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

1 个答案:

答案 0 :(得分:1)

我认为您使用WEKA的方式没有任何问题。

你提到你测试集大于训练吗?什么是分裂?通常的经验法则是测试集应该是整个数据集的1/4,即比训练小3倍,绝对不大。仅这一点就可以解释从97%到72%的下降,这对于现实生活案例来说并不是那么糟糕。

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

<强>更新 我通过randomforest对问题数据集进行了快速分析,我的表现类似于作者发布的表现。详细信息和代码可在gitpage http://omdv.github.io/2016/03/10/WEKA-stackoverflow

上找到