SVM和logistic regression的一些对比

SVM和logistic regression的一些对比

一、SVM的常用目标函数形式

SVM和logistic regression的一些对比

soft margin svm可表示为:

SVM和logistic regression的一些对比

其中,C表示惩罚系数;C越大,表示对margin越严格,即对不满足约束的样本数要更少;

反之,C越小,表示对margin越宽松,即可接受不满足约束的样本数越多。

例如下图所示:

SVM和logistic regression的一些对比

 

二、SVM和logistic regression的对比

1、对于SVM目标函数的解读

SVM的目标函数与带了L2正则的Model的目标函数很相似,并且具有相同的一些性质。

SVM和logistic regression的一些对比

  SVM和logistic regression的一些对比

 

2、三种常用替代损失函数对比

SVM和logistic regression的一些对比

因此,SVM目标函数中的max(1-ys,0)函数与Logistic regression的目标函数很像;如果给LR加入L2正则化,那么有:

SVM和logistic regression的一些对比

 

三、Probabilistic SVM的实现思路

1、鉴于SVM和加L2正则的LR model很相似出发:

(1)idea1

将soft margin的SVM进行求解,将得到的w,b参数当作LR model的w’,b’的近似解,然后使用sigmoid函数进行概率求解。

优点:直接使用了svm和LR的相似性,实际使用上,较为简单,通常表现还不错。

缺点:实际上几乎丧失了LR model推导中的maximum likelyhood等性质。

SVM和logistic regression的一些对比

 

 

 

 

 

 

 

 

 

 

(2)idea2

 将soft margin的SVM进行求解,将得到的w,b参数当作LR model解的起始点,再进行LR模型的求解。

缺点:效果和单独使用LR model求解差不多,并且对于kernel svm,则无法使用LR model进行近似。

 SVM和logistic regression的一些对比

 

2、采用融合SVM和LR各自优势的思路

(1) 做法

      将SVM求解出来的结果(即求解出w和b)后计算(wx+b)的值value,然后在value上加上两个自由度的操作,即放缩操作A,平移操作B;在A和B两个参数上使用logistic regression进行训练(实际上是把A和B分别当作LR model里的w和b参数来求解),这样可以比较吻合在logistic regression中的maximum likelyhood的需求。

优点:保留了svm原有的性质,包括kernel svm的性质;可以使用LR model获得概率值表示。

几何解释:用SVM 找出分类超平面的法向量,然后不改变法向量,但是在法向量之上再加上一些放缩和平移操作,使其更吻合在logistic regression中的maximum likelyhood的需求。

SVM和logistic regression的一些对比

 

(2) Probabilistic SVM的目标函数:

 SVM和logistic regression的一些对比

 

(3)Probabilistic SVM一般化的求解步骤

SVM和logistic regression的一些对比

 

转载于:https://www.cnblogs.com/xieb1994/p/9886139.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/101339.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • django 聚合函数_聚合函数和非聚合函数

    django 聚合函数_聚合函数和非聚合函数前言orm模型中的聚合函数跟MySQL中的聚合函数作用是一致的,也有像Sum、Avg、Count、Max、Min,接下来我们逐个介绍聚合函数所有的聚合函数都是放在django.db.models

    2022年7月29日
    5
  • laravel 增加不存在数据库的字段

    laravel 增加不存在数据库的字段

    2021年10月24日
    49
  • 示例的意思_实例

    示例的意思_实例JBoss 系列三十八:jBPM5示例之 Reusable Sub-Process

    2022年4月22日
    58
  • python 元组删除某个元素_python二维数组

    python 元组删除某个元素_python二维数组我想写一些东西从数组中删除一个特定的元素。我知道我必须for遍历数组以查找与内容匹配的元素。假设我有一系列电子邮件,并且想摆脱与某些电子邮件字符串匹配的元素。我实际上想使用for循环结构,因为我还需要对其他数组使用相同的索引。这是我的代码:forindex,iteminemails:ifemails[index]==’something@something.com’:emails….

    2022年8月10日
    5
  • MySQL中日期时间类型与格式化「建议收藏」

    MySQL中日期时间类型与格式化「建议收藏」Mysql中常用的几种时间类型有:date、datetime、time、year、timestamp;Datetime:时间日期型,格式是YYYY-mm-ddHH:ii:ss,表示的范围是从1000到9999。但是有零值,0000-00-0000:00:00;Date:日期,就是datetime中的date部分;Time:时间(段),指定的某个区间之间,从-时间到+时间(有负时间表示);T

    2022年4月30日
    53
  • 缓存穿透,缓存击穿,缓存雪崩解决方案分析

    缓存穿透,缓存击穿,缓存雪崩解决方案分析前言设计一个缓存系统,不得不要考虑的问题就是:缓存穿透、缓存击穿与失效时的雪崩效应。缓存穿透缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时被动写的,并且出于容错考虑,如果从存储层查不到数据则不写入缓存,这将导致这个存在的数据每次请求都要到存储层去查询,失去了缓存的意义。在流量大时,可能DB就挂掉了,要是有人利用不存在的key频繁攻击我们的应用,这就是漏洞。解决方案

    2022年6月30日
    21

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号