我学习SVM的过程和资料

前前后后,看了SVM也有几次了。感觉最近才一窥门径。现在梳理一下学习SVM的学习资料和学习过程。

理论基础

推荐:《统计学习方法》 李航

我最开始是在网上找了一些人写的长篇大论的文章来学习SVM的,现在看来,把自己的学习笔记给别人当入门材料是一种极不负责任的行为。
看过这本《统计学习方法》,才发现SVM其实并没有想象中那么难以理解。当然,第一遍看完SVM的章节,仍然有很多不理解的地方。这本书的好处是讲的清晰明了,但同时也要求一定的理论基础(建议先读前两个小节)。读完之后,并不能形成一个比较直观的感觉。然后结合下面的实例,就可以有一个比较直观的概念了。

实例讲解

svm-tutorial.com 这个网站里面有三篇结合实例的讲解,对理解SVM的基础、原理非常有帮助。但是,我在看这几篇文章的时候,作者还没有写到如何求解目标函数及核函数的部分。这部分还要结合Andrew NG的机器学习公开课来看。

  1. SVM - Understanding the math - Part 1 - The margin讲解了最优超平面(hyperplane)与间隔(margin)之间的关系。
  2. SVM - Understanding the math - Part 2讲解了向量间计算距离的基础知识,在这里算是复习了一下。然后,结合第三篇博客看,就很轻松了。
  3. SVM - Understanding the math : the optimal hyperplane这篇文章推导出了用超平面的法向量来表示间隔最优化的目标函数,同时也对限制条件做了一定讲解。我在读这篇文章的时候,结合李航的《统计学习方法》里面讲解SVM的知识,受益匪浅。

核函数实例

关于核函数这部分,《统计学习方法》里面的理论知识比较充足。但是,属于入门阶段的人对这个门很难有一个直观的理解。而Andrew的公开课在这个地方的讲解非常好。

  1. Kernels I非常直观地讲解了核函数的作用和效果。理解一下landmarks和相似度函数,就基本上可以理解SVM的核函数的机理。看完这节公开课,再回到《统计学习方法》的第三小节,就能够比较好地理解:为什么在原特征空间线性不可分的样本,通过核函数映射到新的特征空间就线性可分了。这其中,核函数的作用居功至伟。
  2. Kernels II第二个视频进一步讲解了映射到新的特征空间之后的一些处理细节。

通过Andrew NG的公开课,我对核函数的直观理解如下:

  • 核函数是一个衡量样本点之间的距离(定义有多种)的公式。
  • SVM把每一个样本点通过核函数,扩展到m维(m是样本的个数)。过程是,一个样本点,通过核函数,计算得到与所有样本点的距离关系(包括它自己),形成一个新的向量(长度就是m)。

而后,通过对新的特征空间的损失函数的优化,得到新特征空间的线性分类超平面。而这个过程中,核函数是不变的。

总结

就我个人而言,如果使用了哪个算法(尤其是需要调参),而我自己又不是很了解其实现机理,那么用起来会非常别扭。通过一段时间的学习,对SVM的实现原理也算是有了一个比较直观的认识,还是蛮开心的。
我在上面总结的资料里面并没有涉及目标函数的求解方法,如果以后用到再回来看(因为现在用来到,怕是看到,也会很快就忘了)。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: SVM(支持向量机)是一种常用的机器学习算法,用于分类和回归问题。下面是SVM模型训练和测试的步骤和过程: 训练步骤: 1. 收集和准备数据集:首先需要获取用于训练和测试的数据集,并对数据进行预处理,如数据清洗、特征选择和标准化等。 2. 特征提取和选择:根据问题的特征,选择合适的特征来表示样本,并从中提取有用的信息。同时,还可以使用特征选择方法来降低维度和减少噪音。 3. 设置模型参数:SVM模型需要设定一些参数,如核函数的类型、正则化参数等。这些参数的选择对模型的性能和泛化能力有着重要影响。 4. 训练模型:使用训练数据集来训练SVM模型。训练过程中,模型会根据样本的特征和标签,寻找最佳的超平面(或分离边界)来划分不同类别的样本。 5. 参数调优:为了提高模型的性能,可以使用交叉验证等方法来调整模型的参数,以获得更好的分类效果。 测试步骤: 1. 准备测试数据集:将新样本数据集化为与训练数据集一致的格式,然后进行特征提取和选择,与训练数据相对应。 2. 应用模型:将测试数据输入已训练好的SVM模型中,通过计算样本在超平面上的投影位置,进行分类或回归预测。 3. 评估模型性能:根据测试数据预测结果与实际标签进行对比,来评估模型的性能。一般可以使用准确率、召回率、F1值等指标来衡量模型的性能。 4. 模型优化:如果模型的性能不满足需求,可以根据测试结果来优化模型的参数,重新训练和测试,直至达到预期效果。 总结:SVM模型的训练和测试过程主要包括数据准备、特征选择、模型训练与参数调优、测试数据预测和性能评估等步骤。通过不断迭代优化,可以获得较好的分类或回归结果。 ### 回答2: 支持向量机(SVM)是一种常用的机器学习模型,适用于二分类和多分类问题。它的训练和测试过程如下: 训练过程: 1. 收集和准备数据集:首先,需要收集并准备用于训练的数据集。数据集应包含输入特征和对应的类别标签。 2. 特征选择和预处理:为了提高训练效果,可以进行特征选择和预处理。特征选择可以通过比较不同特征的相关性和重要性来选择最好的特征。预处理可以包括标准化、归一化或降维等操作。 3. 划分训练集和验证集:将数据集划分为训练集和验证集,通常采用交叉验证的方法,确保模型在不同数据上的泛化能力。 4. 定义模型和参数:选择合适的SVM模型,并设置相应的超参数。超参数包括正则化参数C、核函数类型、核函数参数等。 5. 训练模型:使用训练集通过SVM算法训练模型。在训练过程中,SVM根据训练集的特征和标签,调整模型的参数,使模型能够最好地分类数据。 6. 模型评估和调参:使用验证集评估模型的性能,并进行参数调优。可以使用不同的指标,如准确率、精确率、召回率等来评估模型。 测试过程: 1. 数据预处理:对测试数据进行与训练集相同的特征选择和预处理操作。 2. 模型预测:使用训练好的SVM模型对测试数据进行分类预测。对于二分类问题,输出为正类或负类;对于多分类问题,输出为属于不同类别的概率分布。 3. 分类结果评估:根据测试集的真实标签和模型预测的结果,计算分类性能指标,如准确率、精确率、召回率等。可以与训练时的验证集结果进行比较,评估模型的泛化能力。 4. 模型优化:根据测试结果,可以进一步调整模型的参数和结构,以提高模型的性能。 通过以上训练和测试过程,可以建立一个优化的SVM模型,并利用该模型对新的数据进行分类预测。 ### 回答3: SVM(支持向量机)是一种常用的监督学习算法,可以用于分类和回归任务。下面将介绍SVM模型的训练和测试步骤和过程。 1. 数据准备:首先收集和准备训练和测试数据集。确保数据集包含输入特征和对应的目标值(用于分类任务)或连续值(用于回归任务)。 2. 特征预处理:根据实际情况对输入特征进行预处理,比如标准化、归一化、特征选择等,以提高模型性能。 3. 训练集和测试集划分:将数据集划分为训练集和测试集,一般采用交叉验证的方法,常用的有k折交叉验证。训练集用于训练模型,测试集用于评估模型性能。 4. 参数选择:SVM模型有一些重要的参数,如核函数类型、正则化参数C等,根据经验或使用网格搜索等方法选择最佳参数组合。 5. 模型训练:使用训练集对SVM模型进行训练,目标是寻找一个最优的超平面,将不同类别的样本分开,以实现分类任务。训练过程中,通过最大化间隔来增加分类的鲁棒性。 6. 模型测试:使用测试集对训练好的模型进行测试,通过模型对测试集样本的预测结果与真实的目标值进行比较,评估模型的性能指标,如精确度、召回率、F1值等。 7. 模型调优:根据测试结果,对模型进行调优,如调整参数、选择更优的特征集、采用不同的核函数等,以提升模型的性能。 8. 模型使用:当模型达到预期的性能后,就可以使用该模型对新的未知样本进行分类或回归预测。 总结:SVM模型的训练和测试过程主要包括数据准备、特征预处理、训练集和测试集划分、参数选择、模型训练、模型测试、模型调优和模型使用。通过反复迭代和优化,可以得到一个性能良好的SVM模型。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值