我从LIBLINEAR得到了不同的结果,它的包装器在scikit-learn for python中。前者对C参数非常敏感(在我的例子中,质量在默认设置C=1下非常低,并且随着C的增加而急剧增加),这与文档中的声明和scikit learn包装器的行为相反。这可能是什么原因呢?
发布于 2013-06-14 10:05:55
我对scikit-learn文档所说的内容并不熟悉,但您所描述的行为是预期的。
当你谈到“质量”时,我猜你指的是训练错误和性能错误。正如您可能知道的那样,参数C是模型为每个错误分类“支付”的惩罚成本。从这个意义上说,人们可以认为,对于较高的C,您会告诉算法尽可能挑剔,并尽可能地调整到给定的参数提供的数据,因此,较高的C往往更接近过度拟合训练集。
那么,这是件好事吗?嗯,这取决于,一般来说,如果你把C值增加得太多,那么你可能会受到过度拟合的影响,而且做得很差,会产生一般的性能误差。然而,C值通常会随着你的数据以及如何(如果你)对它执行标准化而变化。我总是不得不更改为C的默认值,因为它对我来说从来都不起作用。有时使用C=10,有时使用C=100。找到这一点的一个好方法是使用交叉验证来搜索适用于您的数据集的值。
https://stackoverflow.com/questions/17082392
复制相似问题