当前位置: 首页 > article >正文

从0开始机器学习--Day23--支持向量机

经过前面的学习,我们已经知道在解决问题时,重要的不仅仅是要在算法A或算法B中选择更优的,而是考虑怎么选择用于学习算法的特征和正则化参数,相比神经网络和逻辑回归,支持向量机在这两个方面做得更好。

优化目标(Optimization objective)

让我们先从逻辑回归开始讲起,看看如何通过一个小小的改动转为支持向量机。

逻辑回归图像

如图,假如我们有一个y=1的样本,我们的期望是算法经过计算后预测的h_{\theta}(x)\approx1,也就是\theta^{T}x远远大于0;同理,对于y=0的样本期望也是其\theta^{T}x远远小于0。

我们分别画出y=1y=0样本的代价函数图像,并参照其弯曲程度,画出两个新的折线,我们将这两条线命名为cost_{1}(z)cost_{0}(z),如下:

两个新的代价函数图像

接下来,我们就可以写出SCM,也就是支持向量机的1代价函数了,像上述所说,我们把cost_{1}(z)cost_{0}(z)替换进原来的代价函数里,我们把代价函数和正则项看做A和B,那么新的代价函数就是\frac{A}{m}+\frac{B}{2m},由于\frac{1}{m}是常数,不影响我们计算代价函数的最小值,可以约去。在原来的定义里,正则项参数是用于衡量参数\theta的权重,在SVM里也着重研究\theta,只是其形式为CA+B,将C乘在第一项前,如果其很小,说明B的权重很大,在这里只是按照惯例规定,与之前的研究对象并无不同。

值得注意的是,SVM并不会像逻辑回归一样输出一个概率,他的输出是直接对样本进行预测,即当\theta^{T}x\gg0时结果为1,相反则为0。

直观上的大间隔(Large margin intuition)

对比SVM和逻辑回归,两者从结果上来看仅仅是其预测的判定范围不太一样,SVM的范围相比逻辑回归更小,也就意味着其是作了更严谨的判断来得到这样的结果,相差的一小段范围我们称为安全因子。

下面有两幅图,在第一幅图中,最中间的决策边界就是SVM画出来的,你会发现它跟其他线相比和两组样本都隔了一个很远的距离,以确保有新的样本出现时分错的概率更低,也就是鲁棒性(指一个系统在面对内部结构或外部环境改变时,仍然能够维持其功能稳定运行的能力‌)更好;而在第二幅图中,假如我们的C取得很大(可能是为了考虑到一个极端样本),线的倾斜度很高;如果不需要考虑这个样本,那么决策边界大概就是中间这条线,我们可以将其简单理解为线性回归,C就是系数的倒数,C越大,直线越倾斜:

样本线性可分时SVM的决策边界

出现异常值时SVM的决策边界

视频学习来自:https://www.bilibili.com/video/BV1By4y1J7A5?spm_id_from=333.788.player.switch&vd_source=867b8ecbd62561f6cb9b4a83a368f691&p=72


http://www.kler.cn/a/397840.html

相关文章:

  • Python_爬虫3_Requests库网络爬虫实战(5个实例)
  • MySQL数据库:SQL语言入门 【2】(学习笔记)
  • zabbix7.0实操指南:基于麒麟V10操作系统部署zabbix7.0
  • Redis下载历史版本
  • C语言之MakeFile
  • mybatisPlus打印sql配置
  • Python的Matplotlib
  • LoFTR: Detector-Free Local Feature Matching with Transformers—特征点匹配算法系列
  • 【OceanBase 诊断调优】—— ocp上针对OB租户CPU消耗计算逻辑
  • Vue3 -- 项目配置之husky【企业级项目配置保姆级教程4】
  • 【青牛科技】D4147漏电保护电路介绍及应用
  • 刘艳兵-DBA038-以下关于Oracle SGA和PGA的描述中,哪些是正确的?
  • (不看后悔系列二)python网络爬虫爬取网络视频
  • uniapp设置tabBar高斯模糊并设置tabBar高度占位
  • 【客户服务】互联网时代客户投诉处理金点子
  • java对接php系统的AES加密 但是提供的key不符合长度的PKCS7填充补全
  • 工化企业内部能源能耗过大 落实能源管理
  • unity 一个物体随键盘上下左右旋转和前进的脚本
  • 【鸿蒙开发】第十四章 Web组件的使用、基本属性与事件
  • leetcode 扫描线专题 06-leetcode.252 meeting room 力扣.252 会议室
  • LeetCode 90-子集Ⅱ
  • 高阶C语言补充:柔性数组
  • python实战案例----使用 PyQt5 构建简单的 HTTP 接口测试工具
  • 机器学习-基本术语
  • html中select标签的选项携带多个值
  • 【EasyExcel】复杂导出操作-自定义颜色样式等(版本3.1.x)