基于spark的svm算法实现

本文介绍了基于Spark的SVM算法实现,详细讲解了核函数的作用,如多项式、高斯和线性核,以及SMO算法的流程,包括如何选择和更新变量。通过径向基函数的核函数计算,实现了数据的高维映射。最终,通过测试100个二维数据,展示算法达到98%的训练准确率。
摘要由CSDN通过智能技术生成
支持向量机SVM(Support Vector Machine)是一种有监督的学习模型,它的核心有两个:一、核函数(kernel trick);二、序列最小优化算法SMO(Sequential minimal optimization)是John Platt在1996年发布的用于训练SVM的有效算法。本文不打算细化SVM支持向量机的详细推倒算法,只涉及以上两点的内容做一个说明,最后给出算法实现和一个实验对比图。

核函数

核函数在处理复杂数据时效果显著,它的做法是将某一个维度的线性不可分数据采取核函数进行特征空间的隐式映射到高维空间,从而在高维空间将数据转化为线性可分,最后回归到原始维度空间实施分类的过程,常见的几个核函数如下:

多项式核:

高斯核(径向基函数):

线性核:

即是两个矩阵空间的内积。

SMO算法流程

SMO的主要两个步骤就是:

1、选择需要更新的一对,采取启发式的方式进行选择,以使目标函数最大程度的接近其全局最优值;

2、将目标函数对进行优化,以保持其它所有α不变。

以上是两个基本步骤,实现具体推到公式如下:

所需要收到的约束条件为:

同时更新,要求满足如下条件,就可以保证为0的约束

消去可得

其中

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值