python – Sklearn LinearSVC库中惩罚和损失参数之间的差异

python – Sklearn LinearSVC库中惩罚和损失参数之间的差异,第1张

概述我对SVM理论不太熟悉,我在 python中使用这个LinearSVC类: http://scikit-learn.org/stable/modules/generated/sklearn.svm.LinearSVC.html#sklearn.svm.LinearSVC 我想知道惩罚损失参数之间的区别是什么? 在机器学习中,损失函数测量解决方案的质量,而惩罚函数对您的解决方案施加一些限制. 具体 我对SVM理论不太熟悉,我在 python中使用这个linearSVC类:

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

我想知道惩罚和损失参数之间的区别是什么?

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

具体来说,让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铰链损失和L2铰链损失函数. 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库中惩罚和损失参数之间的差异全部内容,希望文章能够帮你解决python – Sklearn LinearSVC库中惩罚和损失参数之间的差异所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1193162.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存