gpt4 book ai didi

python - Sklearn LinearSVC 库中惩罚和损失参数的区别

转载 作者:太空宇宙 更新时间:2023-11-03 13:17:17 26 4
gpt4 key购买 nike

我对 SVM 理论不是很熟悉,我在 python 中使用这个 LinearSVC 类:

http://scikit-learn.org/stable/modules/generated/sklearn.svm.LinearSVC.html#sklearn.svm.LinearSVC

我想知道 penalty 和 loss 参数有什么区别?

最佳答案

在机器学习中,损失函数衡量解决方案的质量,而惩罚函数对您的解决方案施加一些限制。

具体来说,让 X 成为您的数据,y 成为您数据的标签。然后,损失函数 V(f(X),y) 衡量您的模型 f 将您的数据映射到标签的程度。这里,f(X) 是预测标签的向量。

L1 和 L2 范数是常用且直观理解的损失函数(参见*)。 L1 范数:V(f(X),y) = |f(x1) - y1| + ... + |f(xn) - yn|,其中 f(xi) - 第 i 个对象的预测标签,yi 是实际标签。 L2 范数:V(f(X),y) = sqrt(|f(x1) - y1|^2 + ... + |f(xn) - yn|^2 ),其中 sqrt 是平方根。

至于惩罚函数,它用于对您的解 f 施加一些约束 R(f)。 L1 范数可以是 R(f)=|f1| + ... + |fm|,同样可以定义 L2 范数。这里,f1,...,fm 是模型的系数。您最初不知道它们,这些是机器学习算法从您的数据中学习的值。

最终,总成本函数为 V(f(X),y) + lambda*R(f)。目标是找到可以最小化成本函数的 f。然后这个 f 将用于对新的看不见的物体进行预测。为什么我们需要惩罚函数?事实证明,惩罚函数可能会为您的解决方案添加一些不错的属性。例如,当您拥有太多特征时,L1 范数可通过生成稀疏解来帮助防止过度拟合。

* 这并不是支持向量机的工作原理,但可能会让您对这些术语的含义有所了解。例如,在 SVM 中,使用了 L1-hinge 损失函数和 L2-hinge 损失函数。 L1-铰链:V(f(X),y) = max(0,1 - y1*f(x1)) + ... + max(0,1 - yn*f(xn)),以及L2 类似,但有平方项。您可能会在 Machine Learning class by Andrew Ng on Coursera 中找到对 ML 的很好介绍。

关于python - Sklearn LinearSVC 库中惩罚和损失参数的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25042909/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com