我从 LIBLINEAR 得到不同的结果,它是 scikit-learn for python 的包装器。前者对 C 参数非常敏感(在我的情况下,质量在默认设置 C=1 时非常低,并且在增加 C 时急剧增加),这与文档中的说明和 scikit-learn 包装器相反行为。这可能是什么原因?
问问题
1431 次
1 回答
0
我不熟悉 scikit-learn 文档所说的内容,但您所描述的行为是预期的。
当您谈论“质量”时,我猜您指的是训练错误和性能错误。您可能知道,参数 C 是模型为每个错误分类“支付”的惩罚成本。从这个意义上说,人们可以认为,如果 C 越高,您会告诉算法尽可能挑剔,并根据提供的参数尽可能地调整数据,因此高 C 往往更接近于过度拟合训练放。
那么,这是一件好事吗?好吧,这取决于,一般来说,如果您将 C 值增加太多,那么您可能会遭受过度拟合,并且在一般性能错误的情况下做得很差。但是,C 值通常会随您的数据以及 /(如果您)对其执行规范化的方式而变化。我总是不得不更改为 C 的默认值,因为它从未对我有用。有时使用 C=10,有时使用 C=100。找到此问题的一个好方法是使用交叉验证来搜索适用于您的数据集的值。
于 2013-06-14T02:05:55.200 回答