Task5 SVM

Task5 SVM


支持向量机(Support Vector Machine,即SVM)是一种典型的二分类模型,与传统的分类器不同,SVM分类器在实现经验风险最小化的基础上,还要求置信范围尽可能小,也就是说最终目的是寻找结构风险最小化。通俗的来说,SVM二分类本质就是通过在特征空间内寻找间距最大的超平面将数据划分为两类,以实现区分。SVM于1964年提出,该算法能够有效处理非线性问题,泛化能力强,具有鲁棒性,至今依然是解决一些非线性问题的首选方法,其中HOG+SVM的特征提取识别组合成了许多识别问题的主要思想,下面介绍SVM的基本算法。
假设给定训练样本,在一个样本空间内的划分超平面有无数个。
在这里插入图片描述
虽然划分样本的超平面很多,但是最优超平面只有一个,正如图4.7的粗线所示。由于数据噪声等因素的影响,可能导致图中的正例向下偏移,而负例向上偏移,这就导致了一些超平面的划分出现了错误,图中粗线所在的超平面能够有效的避免这个问题,因此它的泛化能力最强,抗干扰能力最好,求解出这个超平面正是SVM算法的目的。
通常我们定义样本空间的超平面如下面公式:
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
OpenCV中的SVM(支持向量机)是一种机器学习算法,用于分类和回归问题。SVM通过将训练数据映射到高维空间,并在该空间中找到一个最优超平面来分离不同的类别。它可以在不同的核函数(如线性核、多项式核和高斯核)下工作,并且可以根据数据的特性和问题的要求进行设置。 在OpenCV中,使用SVM的步骤如下: 1. 创建一个分类器对象:使用cv::ml::SVM::create()函数创建一个SVM分类器对象。 2. 设置相关参数:通过svm->setType()设置分类器类型,svm->setKernel()设置核函数类型,并使用其他函数设置其他参数,如svm->setGamma()、svm->setC()、svm->setTermCriteria()等。 3. 获取数据集:创建训练数据集,使用cv::ml::TrainData::create()函数将数据和标签传递给训练数据对象。 4. 训练模型:使用svm->train()函数训练分类器,传入训练数据集。 5. 预测:使用svm->predict()函数对测试数据进行预测,返回预测结果。 6. 保存和加载模型:使用svm->save()函数将模型保存为xml文件,使用cv::ml::SVM::load()函数加载保存的模型。 此外,还可以使用cv::ml::SVM::trainAuto()函数来自动选择最优参数进行训练,该函数会尝试不同的参数组合,并选择效果最好的参数。 希望以上信息能够对你有所帮助。如果还有其他问题,请随时提问。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [OpenCV(一)---支持向量机 SVM](https://blog.csdn.net/qq_42995327/article/details/114462958)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值