[机器学习] sklearn支持向量机
支持向量机SVM(Support Vector Machine)是一种用来进行模式识别、分类、回归的机器学习模型。
SVM原理描述
模型表示
以一个客户好坏分类为案例,客户信息如下所示:
客户信息数轴表示如下所示:
以数学表达式对上述信息进行描述,可以用下式进行表示:
然而该方法对于大型数据集容易发生拟合,且过于复杂。
因此可以忽略一些点,进行一刀切,如下所示:
但是该方法容易导致错分率高。因此SVM就是找一种方式正确的描述分类方程。
超平面
因此该超平面的公式可以用下式进行表示:
\]
其中v是样本向量,在二维空间v=(x,y),在三维空间v=(x,y,z)。w是参数向量,在二维空间w=(A,B),在三维空间w=(A,B,C)。
因此上述距离公式可以表示为:
\]
超平面确定
SVM目标是找到一个超平面,使得其在两个类中间分开。并使得该超平面到两边的距离最大,如下图所示:
但是如果对于线性不可分的情况,如下图所示:
此时上述方式无法确定超平面。在SVM在则是通过升维的方式解决。例如:
因此SVM在一维空间上解决线性不可分割的问题是把函数映射到二维空间。同样在n维空间的线性不可分割问题映射到n+1维空间。而这种映射分类函数,在svm用核函数(kernel)进行构造。
因此支持向量机具体算法步骤为:
- 把所有的样本和其标记交给算法进行训练
- 如果线性可分则直接找出超平面
- 如果线性不可分,进行映射找出超平面
- 得到超平面表达式,进行分类回归
sklearn实现
在sklearn支持向量机主要用SVC类支持。SVC所支持的和函数有linear(线性和函数)、rbf(径向基核函数)、sigmoid(神经元激活函数)等,通常推荐使用rbf函数。以客户评价为例代码如下:
from sklearn import svm
import numpy as np
#年龄
X = np.array([[34, 33, 32, 31, 30, 30, 25, 23, 22, 18]])
X = X.T
#质量
y = [1, 0, 1, 0, 1, 1, 0, 1, 0, 1]
clf = svm.SVC(kernel='rbf').fit(X, y)
p = [[30]]
print(clf.predict(p)) #1
函数其他参数改动可参考官网文档:svm
[机器学习] sklearn支持向量机的更多相关文章
- 机器学习之支持向量机(四):支持向量机的Python语言实现
注:关于支持向量机系列文章是借鉴大神的神作,加以自己的理解写成的:若对原作者有损请告知,我会及时处理.转载请标明来源. 序: 我在支持向量机系列中主要讲支持向量机的公式推导,第一部分讲到推出拉格朗日对 ...
- 机器学习之支持向量机(三):核函数和KKT条件的理解
注:关于支持向量机系列文章是借鉴大神的神作,加以自己的理解写成的:若对原作者有损请告知,我会及时处理.转载请标明来源. 序: 我在支持向量机系列中主要讲支持向量机的公式推导,第一部分讲到推出拉格朗日对 ...
- 机器学习之支持向量机(二):SMO算法
注:关于支持向量机系列文章是借鉴大神的神作,加以自己的理解写成的:若对原作者有损请告知,我会及时处理.转载请标明来源. 序: 我在支持向量机系列中主要讲支持向量机的公式推导,第一部分讲到推出拉格朗日对 ...
- python机器学习-sklearn挖掘乳腺癌细胞(五)
python机器学习-sklearn挖掘乳腺癌细胞( 博主亲自录制) 网易云观看地址 https://study.163.com/course/introduction.htm?courseId=10 ...
- python机器学习-sklearn挖掘乳腺癌细胞(四)
python机器学习-sklearn挖掘乳腺癌细胞( 博主亲自录制) 网易云观看地址 https://study.163.com/course/introduction.htm?courseId=10 ...
- python机器学习-sklearn挖掘乳腺癌细胞(三)
python机器学习-sklearn挖掘乳腺癌细胞( 博主亲自录制) 网易云观看地址 https://study.163.com/course/introduction.htm?courseId=10 ...
- python机器学习-sklearn挖掘乳腺癌细胞(二)
python机器学习-sklearn挖掘乳腺癌细胞( 博主亲自录制) 网易云观看地址 https://study.163.com/course/introduction.htm?courseId=10 ...
- python机器学习-sklearn挖掘乳腺癌细胞(一)
python机器学习-sklearn挖掘乳腺癌细胞( 博主亲自录制) 网易云观看地址 https://study.163.com/course/introduction.htm?courseId=10 ...
- 机器学习之支持向量机原理和sklearn实践
1. 场景描述 问题:如何对对下图的线性可分数据集和线性不可分数据集进行分类? 思路: (1)对线性可分数据集找到最优分割超平面 (2)将线性不可分数据集通过某种方法转换为线性可分数据集 下面将带着这 ...
随机推荐
- AVX图像算法优化系列一: 初步接触AVX。
弄了SSE指令集,必然会在不同的场合不同的人群中了解到还有更为高级的AVX指令集的存在,早些年也确实有偶尔写点AVX的函数,但是一直没有深入的去了解,今年十一期间也没到那里去玩,一个人在家里抽空就折腾 ...
- Codeforces Round #801 (Div. 2) C(规律证明)
Codeforces Round #801 (Div. 2) C(规律证明) 题目链接: 传送门QAQ 题意: 给定一个\(n * m\)的矩阵,矩阵的每个单元的值为1或-1,问从\((1,1)\)开 ...
- Mysql通过Canal同步Elasticsearch
目录 版本管理 Mysql 设置 在MySQL配置文件my.cnf设置: 检查是否开启 增加新用户: 安装 Elasticsearch es 跨域问题 目录挂载 安装 Elasticsearch-He ...
- 题解 SP24 FCTRL2 - Small factorials
双倍经验. 题意 给\(t\) 组数据,求每组数据中\(n\) 的阶乘. 思路 \(n≤100\) . \(100!\) 肯定爆int128,所以高精呗. 那么就是一个阶乘的板子了,应该不难的吧. 具 ...
- 十四、资源控制器之RS
RC (ReplicationController )主要的作用就是用来确保容器应用的副本数始终保持在用户定义的副本数 .即如果有容器异常退出,会自动创建新的 Pod 来替代:而如果异常多出来的容器也 ...
- shell实践
shell实践 父子shell 父shell:我们在登录某个虚拟机控制器终端的时候(连接某一个linux虚拟机)时,默认启动的交互式shell,然后等待命令输入. ps命令参数,是否有横杠的参数作用是 ...
- Python基础部分:4、 python语法之注释
目录 一.python语法之注释 1.什么是注释 2.如何编写注释 二.PEP8规范 一.python语法之注释 1.什么是注释 注释用来向用户提示或解释某些代码的作用和功能,它可以出现在代码中的任何 ...
- 万字详解JVM,让你一文吃透
摘要:本文将带大家详细地了解关于JVM的一些知识点. 本文分享自华为云社区<[JVM]关于JVM,你需要掌握这些 | 一文彻底吃透JVM系列>,作者: 冰 河 . JDK 是什么? JDK ...
- JS数据结构与算法-栈结构
一.认识栈结构 栈也是一种非常常见的数据结构,并且在程序中的应用非常广泛 数组 我们知道数组是一种线性结构,并且可以在数组的任意位置插入和删除数据. 但是有时候,我们为了实现某些功能,必须对这种任意性 ...
- 阿里云 ACK 接入观测云
简介 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理.2021 年成为国内唯一连续三年入选 Gartner 公共云容器报告的 ...