量子位|SVM原理详细图文教程!一行代码自动选择核函数,还有实用工具( 二 )
尽管在开发实际使用的SVM模型时 , 会设计冗余 , 避免过拟合 , 但仍然需要想办法将误差控制在一个较小的范围 。
可以通过在模型中增加惩罚机制(用c表示)解决这个问题 。
本文插图
本文插图
设SVM输出结果为E , 则上图中出现的E=0则没有惩罚 。
如果c非常大 , 则模型分类更加精准 , 但支持向量到超平面距离小 , 容易出现过拟合 。
若c=1 , 则支持向量到超平面距离最大化 , 尽管会出现一些分类误差 , 但这是一种较好的方案 。
约束凸优化问题
为了克服约束凸优化问题 , 采用PEGASOS算法 。
重新构造一个约束独立性方程:
本文插图
上式表示 , 如果点远离直线 , 则误差将为零 , 否则误差将为(1-t(i)) 。
我们需要最小化的是:
本文插图
由于消除了约束 , 因此可以采用梯度下降来最大程度地减少损失 。
【量子位|SVM原理详细图文教程!一行代码自动选择核函数,还有实用工具】梯度下降算法计算损失:
在SVM上应用梯度下降:
非线性分类
使用SVM对非线性数据进行分类 , 需要将数据投影到更高的维度 , 即通过增加低维数据的特征向量将其转换为高维数据 。
增加数据特征向量需要消耗巨大的计算资源 , 这里采用核函数 。
而这种思路最难的点 , 是为你自己的模型选择一个合适的核函数 。
这里推荐一种自动调参方法GridSearch 。
将多种核函数(线性、RBF、多项式、sigmoid等)等标号 , 依次调用 , 找到一个最合适自己模型的 。
定义一个变量params:
params = [{‘kernel’:[‘linear’, ‘rbf’, ‘poly’, ‘sigmoid’], ‘c’:[0.1, 0.2, 0.5, 1.0, 2.0, 5.0]}
调用:
以上详细介绍了SVM背后的数学原理 , 并提供了一些使用SVM模型时的问题解决办法 。
其中 , 使用代码自动选择核函数的方法来自外国博主Daksh Trehan 。
如果你对SVM的原理有更深刻的理解 , 或有其他实用的技巧 , 请留言分享给大家吧 。
推荐阅读
- 行业互联网|量子计算机潜力巨大(新技术 新进展③)
- IOS系统|从ios企业签名的机制及原理解析掉签的原因
- 行业互联网|三星被英国厂商起诉侵权 QLED 量子点显示技术:双方曾联合研发
- 中年|“墨子号”实现基于纠缠的无中继千公里量子保密通信丨亮点成果
- Science锋芒|意义重大!德国计划在2021年,建成该国首台量子计算机!
- 科学|物理学家首次捕捉到量子纠缠的图像
- 通信|量子密码通信项目本月启动 全球市场潜在规模或超180亿美元
- 电热汇|一文了解5种常见压力计的工作原理
- IBM|IBM制造!欧洲首台量子计算机计划2021年投入使用
- 量子技术|量子计算机网络新进展,微波、光波信号转换获突破