我使用Weka
GUI进行分类。我是Weka的新手并且对选项感到困惑
训练我的分类算法(例如J48),我用交叉验证10次训练,准确性非常好(97%)。当我测试我的分类时 - 准确度下降到大约72%。我感到很困惑。有什么提示吗?我就这样做了:
train.arff
)j48tree.model
然后
test.arff
)
Re-evaluate model on current test set
我做错的方式是什么?为什么准确率从97%惨淡下降到72%?或者只进行10次交叉验证就足以训练和测试分类器了吗?
注意:我的训练和测试数据集具有相同的属性和标签。唯一的区别是,我有更多关于测试集的数据,我认为这不会是一个问题。
答案 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
上找到