python – Sklearn 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-铰链: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |