我正在使用Weka
GUI进行分类。我是新来的Weka并与选项Weka上的分类精确度
- 使用训练集
- 提供的测试设置
- 交叉验证
训练我的分类算法(如J48)感到困惑,我训练交叉验证10倍,准确度很高(97%)。当我测试我的分类 - 准确度下降到大约72%。我感到很困惑。请提供任何提示?这是我做的:
- 我训练我的模型训练数据(例如:
train.arff
) - 我在你要保存的模型项目的结果列表中右键单击 选择保存模型和例如保存为
j48tree.model
然后
- 我加载测试数据(例如:经由增刊
test.arff
谎称测试设置按钮 - 右键单击在结果列表中,我挑选负载模型并选择j48tree.model
- 我选择
Re-evaluate model on current test set
是我做的方式错了吗?为什么精度从97%下降到72%?或者只做10倍的交叉验证足以训练和测试分类器?
注意:我的训练和测试数据集具有相同的属性和标签。唯一的区别是,我有更多关于测试集的数据,我认为这不会成为问题。
我正在使用此数据集(完整训练数据集和完整测试数据集):https://web.archive。org/web/20150205070216/http://nsl.cs.unb.ca/NSL-KDD/。是的,你是对的,我在我的数据集中有42个特征 – Brown
我实际上下载了这个数据集,并用python的scikit-learn模块中的随机森林对它进行了分类,性能非常好。有一件事仍然不清楚,为什么你的测试集比训练要大?下载的集合大约有17:83分割。下载后我做了两套合并,随机选择20%作为测试集。正如我所说的,表现很好。所以我的建议是 - 你需要调整训练和测试集之间的差距。 – omdv
我利用这个机会,终于在我的gitpage上发布了一些东西(http://torrinos.github.io/datascience/2016/03/10/WEKA-stackoverflow.html)。代码在那里以及细节。祝你好运。 – omdv