加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

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

发布时间:2020-12-20 11:36:45 所属栏目:Python 来源:网络整理
导读:我对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介绍

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读