量子位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的原理有更深刻的理解 , 或有其他实用的技巧 , 请留言分享给大家吧 。
推荐阅读
- 诸葛小武|全程不需消耗一度电,到底是什么原理?,印度人发明蜂巢状土空调
- 以及到底能不能提升电脑的整体性能,别闹了,RGB的发光原理其实与显示器是一样的
- 阻燃板|阻燃板的阻燃原理是什么?
- 量子技术我国量子领域重大突破,解决1250对原子高保真纠缠态,踏入新阶段
- Array|创造出11维量子态,量子加密通信,共享密码的创纪录量子协议!
- 铭成输送带专家|输送带的工作原理
- 历史那点事儿|海底火山的形成原理是什么?海底火山为何不会被海水熄灭?
- 创意+|20天一准生根,多肉服盆难?上盆后不长根系?了解生根原理
- 军事之窗|这结构可靠才怪,为什么说M1加兰德的枪口集气式原理没人用
- 量子计算机|巨大飞跃!比超级计算机快15亿倍的量子计算机,1万年的计算问题仅需200秒
