机器学习笔记之SVM(SVR)算法

news/2025/1/30 22:41:42/

学过SVM后,看了那么多别人的文章,是时候自己总结一波了。权当写的笔记供自己日后再回顾吧。
PS:结合自己在工作过程中(我这里用SVR做股票预测)用到的知识来写的,不会很全面,若有些知识这里没提及读者可自行查找。
1 概述
支持向量机(support vector machine)是一种分类算法,但是也可以做回归,根据输入的数据不同可做不同的模型(若输入标签为连续值则做回归,若输入标签为分类值则用SVC()做分类)。通过寻求结构化风险最小来提高学习机泛化能力,实现经验风险和置信范围的最小化,从而达到在统计样本量较少的情况下,亦能获得良好统计规律的目的。通俗来讲,它是一种二类分类模型,其基本模型定义为特征空间上的间隔最大的线性分类器,即支持向量机的学习策略便是间隔最大化,最终可转化为一个凸二次规划问题的求解。

SVM算法的优缺点:
SVM算法优点区
• 可用于线性/非线性分类,也可以用于回归;
• 低泛化误差;
• 容易解释;
• 计算复杂度较低;
• 可以解决高维问题;
缺点区
• 对参数和核函数的选择比较敏感;
• 原始的SVM只比较擅长处理二分类问题;
SVM属于监督学习算法,监督学习流程如图所示:
这里写图片描述

2 算法原理
2-1 在n维空间中找到一个分类超平面,将空间上的点分类。如下图是线性分类的例子。
这里写图片描述
图 2-1-1 线性分类的例子
2-2. 一般而言,一个点距离超平面的远近可以表示为分类预测的确信或准确程度。SVM就是要最大化这个间隔值。而在虚线上的点便叫做支持向量Supprot Verctor。如图4-1-1-2所示:
这里写图片描述
图2-1-1-2 支持向量的标识图
2-3. 实际中,我们会经常遇到线性不可分的样例,此时,我们的常用做法是把样例特征映射到高维空间中去如图4-1-1-3所示:
这里写图片描述
图2-1-1-3 对于线性不可分数据的处理方法
3 数据处理
preprocessing.scale()作用:
scale()是用来对原始样本进行缩放的,范围可以自己定,一般是[0,1]或[-1,1]。
缩放的目的主要是
1)防止某个特征过大或过小,从而在训练中起的作用不平衡;
2)为了计算速度。因为在核计算中,会用到内积运算或exp运算,不平衡的数据可能造成计算困难。

4 SVR参数选择
对于SVM算法,我们首先导入sklearn.svm中的SVR模块。SVR()就是SVM算法来做回归用的方法(即输入标签是连续值的时候要用的方法),通过以下语句来确定SVR的模式(选取比较重要的几个参数进行测试。随机选取一只股票开始相关参数选择的测试)。
svr = SVR(kernel=’rbf’, C=1e3, gamma=0.01)

4-1. kernel:核函数的类型,一般常用的有’rbf’,’linear’,’poly’,等如图4-1-2-1所示,发现使用rbf参数时函数模型的拟合效果最好。
这里写图片描述
图4-1-2-1 函数参数“Linear”,“RBF”,“Poly”对模型的拟合效果图”

4-2. C:惩罚因子。C表征你有多么重视离群点,C越大越重视,越不想丢掉它们。C值大时对误差分类的惩罚增大,C值小时对误差分类的惩罚减小。当C越大,趋近无穷的时候,表示不允许分类误差的存在,margin越小,容易过拟合;当C趋于0时,表示我们不再关注分类是否正确,只要求margin越大,容易欠拟合。如图4-1-2-2所示发现当使用1e3时最为适宜。
这里写图片描述
图 4-1-2-2 参数C与准确度的关系图

4-3. gamma: 是’rbf’,’poly’和’sigmoid’的核系数且gamma的值必须大于0。随着gamma的增大,存在对于测试集分类效果差而对训练分类效果好的情况,并且容易泛化误差出现过拟合。如图4-1-2-3所示发现gamma=0.01时准确度最高。
这里写图片描述
图4-1-2-3 参数gamma与准确度的关系图

以上大概就是就是建立股票预测模型的整个过程,在这里重点讲的还是算法中各个方法的作用和各主要参数代表的含义,希望对大家有所帮助。


http://www.ppmy.cn/news/451740.html

相关文章

分布式搜索引擎ElasticSearch(三)---ElasticSearch进阶使用、深入理解搜索技术、集群架构原理

ElasticSearch ElasticSearchterm查询match查询Elasticsearch架构原理Master节点DataNode节点分片(Shard)副本指定分片、副本数量 Elasticsearch重要工作流程Elasticsearch文档写入原理Elasticsearch检索原理 Elasticsearch准实时索引实现手工控制搜索结…

ES7介绍

前言 本篇文章主要介绍ES7ES8的一些新功能,并结合ES6的一些API做出了相应的比较。 ES7 1.Array.prototype.includes() includes()作用,是查找一个值在不在数组里,若是存在则返回true,不存在返回false. 1.基本用法: [a, b, c].includes(a) // tru…

尚硅谷ES7-ES11新特性(66th)

一、ECMASript 7 新特性 1. Array.prototype.includes includes 方法用来检测数组中是否包含某个元素,返回布尔类型值。 2. 指数运算符 在 ES7 中引入指数运算符 **,用来实现幂运算,功能与 Math.pow(a, b) 结果相同。 2 ** 3 // 8 Math.…

【分享】酒店7S管理实施内容

华天谋7s管理专家概述:7S即:“整理、整顿、清扫、清洁、安全、节约、素养”七项内容。“7S”来源于日本的“5S”,它是日本企业独特的一种管理模式,被誉为日本经济腾飞的两大工业法宝之一。近几年,7S管理从制造业发展到…

Elasticsearch系列(七)ES数据搜索之原理分析

本文转载于ES映射和分析 前言 在探究ES数据搜索原理时,先了解下ES的mapping和analysis机制,关于mapping的详细可以参考之前的文章:Elasticsearch系列(三)mapping详解 映射(mapping)机制用于进行字段类型确认,将每个字段匹配为一…

java tt-7s-d_JAVA TT-7S-D 超轻7速折叠自行车质量_参数_评价

自行车的出现给我们带来简单快捷的出行方式,同时具有保护环境的作用,零排放零污染,为地球做出贡献。这款java的自行车产品,拥有小巧的造型设计,缔造出简单时尚的风格,同时这款车子可以进行折叠,…

elasticsearch(三)-- 理解ES的索引操作

一、前言 上一章我们主要学习了es的几个客户端,那么我们后面也主要通过kibana客户端、HighLevelClient高级客户端这两个来学习es. 这一章的学习我们主要是学习一些Elasticsearch的基础操作,主要是深入一些概念,比如索引的具体操作&#xff0…

L3-018. 森森美图

一、题目 二、个人理解 Tips: 此题第一个难点就是读懂题目,当时费了挺长时间才知道样例是如何算出的。如下图所示,是其面部轮廓,其分数计算过程为 score12291(22)∗(2–√−1)&a…