我们是否需要将数据集划分为测试和培训?

时间:2013-10-14 11:15:49

标签: machine-learning svm libsvm

我提前为这样一个愚蠢的问题道歉!我认为我们需要将数据集划分为svm中的训练和测试,然后使用训练集来查找模型。然后使用测试集检查此模型的准确性。 在libsvm数据集“http://www.csie.ntu.edu.tw/~cjlin/libsvmtools/datasets/multiclass.html”中,一些数据集具有培训和测试,而其他数据集没有经过培训和测试,因此根据libsvm网站中的libsvm指南,相关代码是不同的。例如,在svmguide2数据集中没有指定测试集。那么我们如何测试模型的准确性。

2 个答案:

答案 0 :(得分:0)

这里至少有两个重要方面,首先是你需要自己创造这样的灵感。

第二件事是,将该组分成两部分是相当不够的,因为您仍然可以找到完全无用的模型,对于这一模型,特定的分割将产生良好的结果。这就是交叉验证等概念/策略发挥作用的地方。在CV设置中,您将数据拆分为K个相等大小的块(其中k取自区间[1,n],其中n是数据的大小),并且您在每个块上测试模型的k倍,同时训练它其余的部分。这样,从有限的一组示例中,您可以生成k个独特的测试用例,每个测试用例都具有非重叠的训练和测试子集。特别是设置k = n,你测试所谓的“留一个”情景,这在理论研究中经常被提到。 k的最常见选择是10,5或3。

答案 1 :(得分:-1)

您必须自己划分整个数据。我实际上建议有两套以上。一旦完成了训练和测试,有一个额外的设置来检查你是否没有受到先前的训练 - 训练 - 再训练迭代的偏倚是有帮助的。

此外,如果您打算使用交叉验证来查找参数,则需要更多数据集。

相关问题