LIBSVM过度拟合

时间:2014-05-10 11:17:01

标签: machine-learning svm libsvm cross-validation

在我进行了10次交叉验证后,我训练了两个svms(LIBSVM)和15451个样本,并找到了gamma和C(RBF内核)的最佳参数值。在一个svm我只使用了1个功能,而在第二个svm中我只使用了一个功能(看看这个附加功能是否正在改进预测)。在CV之后,我的准确度为75%(具有一个特征的SVM)和77%(具有该额外一个的SVM)。在对另外15451个实例进行测试后,我的准确度分别为70%和72%。

我知道这称为过度拟合,但在这里很重要,因为它只有5%的差异。

我该怎么做才能避免过度拟合?

仅使用一两个功能和相对较大的训练集是否真的很好?

希望你能帮助我。

1 个答案:

答案 0 :(得分:3)

这里过度拟合似乎有些混乱。

简而言之,“过度拟合”并不意味着您对拟合训练集的准确性(不成比例地)高于拟合通用测试集。相反,这是效果,而不是原因。

“过度拟合”意味着你的模型试图不费力地适应训练集,并且在拿起所有信号后,它开始适应噪音。作为一个(非常标准的)示例,假设生成来自直线的数据点,但随后添加一点高斯噪声:这些点将“大致”在一条线上,但不完全相同。当你试图找到一条能够通过每一点的曲线时(例如27级的多项式)当你真正需要的是一条直线时,你会过度拟合。

通过视觉检查这一点的一种方法是绘制学习曲线。

这个网页看起来很有用,所以我从这里开始了解更多信息:http://www.astroml.org/sklearn_tutorial/practical.html