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

 手机用户2502859707 发布于 2022-12-31 14:14

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

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

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

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

    具体来说,让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规范可以是,同样可以定义L2规范.这里,f1,...,fm是模型的系数.您最初不了解它们,这些是通过机器学习算法从您的数据中学习的值.R(f)=|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相似但是平方项.您可以在Coursera上找到Andrew Ng在机器学习课程中对ML的一个很好的介绍

    2022-12-31 14:17 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有