6-12 SVM小结
介绍了SVM的概念以及如何利用SVM进行一个身高体重的训练和预测。如果类别比较简单的话,那么在二维空间上它有可能就是一条直线。如果类别比较复杂,那么投影到高维空间上它就是一个超平面。所以SVM的本质它就是寻求这样一个最优的超平面。超平面只要找到了,那么就可以利用这个超平面完成分类问题。
SVM支持很多核,这里主要使用线性核。
数据准备。数据也称为训练样本。在准备训练样本的时候需要注意几个地方,第一它需要有正负样本两种情况。第二正样本和负样本的个数不一定要完全相同,也有可能是1:2、1:3甚至是2:3、2:4,任意的组合都可以。
在准备样本的时候一定要准备一个label标签。这个label标签运用唯一的描述当前的训练数据。而正是因为有了这个label标签,所以它也是一个监督学习的过程。监督学习就是说在学习一个数据的时候,要监督一下它的对和错。比如说学习一个[152,53],来判断一下它是0和1。那么我们可以用1来监督它,1表明它就是男生的身高和体重。这是数据的问题。
如果大家对SVM的算法推导这方面感兴趣的话,大家可以课下找一些相关的资料和书籍来仔细地研究一下它到底是如何进行公式推导。
Hog特征区别于Haar特征,Hog特征更加地复杂,而且适用场景也不同。
# 1 思想 分类器
# 2 如何? 寻求一个最优的超平面 分类
# 3 核: line
# 4 数据: 样本
# 5 训练 SVM_create() train predict
# svm本质 寻求一个最优的超平面 分类
# svm 核: line
# 身高体重 训练 预测
import cv2
import numpy as np
import matplotlib.pyplot as plt
# 1 准备data 男生的身高体重 女生的身高体重
rand1 = np.array([[155,48],[159,50],[164,53],[168,56],[172,60]])#女生的五组数据,五组数据中分别描述五组人不同的身高和体重
rand2 = np.array([[152,53],[156,55],[160,56],[172,64],[176,65]]) # 2 label 标签
label = np.array([[0],[0],[0],[0],[0],[1],[1],[1],[1],[1]]) # 3 data 对数据进行一定的处理,特别是我们的训练数据.我们的训练数据要这样来做.
data = np.vstack((rand1,rand2))#给它一个元组,合并rand1和rand2
data = np.array(data,dtype='float32') # svm 所有的数据都要有label
# [155,48] -- 0 女生 [152,53] ---1 男生
# 监督学习 0 负样本 1 正样本 # 4 训练
svm = cv2.ml.SVM_create() #ml 机器学习模块 SVM_create() 创建
# 属性设置
svm.setType(cv2.ml.SVM_C_SVC) # svm type 设置SVM类型
svm.setKernel(cv2.ml.SVM_LINEAR)# line 线性内核、线性分类器
svm.setC(0.01)
# 训练
result = svm.train(data,cv2.ml.ROW_SAMPLE,label)
# 预测
pt_data = np.vstack([[167,55],[162,57]]) #0 女生 1 男生
pt_data = np.array(pt_data,dtype='float32')
print(pt_data)
(par1,par2) = svm.predict(pt_data)
print(par1,par2)
print(par2)
6-12 SVM小结的更多相关文章
- [连载]《C#通讯(串口和网络)框架的设计与实现》- 12.二次开发及应用
目 录 第十二章 二次开发及应用... 2 12.1 项目配制... 3 12.2 引用相关组件... 4 12.3 构建主程序... 5 ...
- 每周一书《Oracle 12 c PL(SQL)程序设计终极指南》
本周为大家送出的书是<Oracle 12 c PL(SQL)程序设计终极指南>,此书由机械工业出版社出版, 孙风栋,王澜,郭晓惠 著. 内容简介: <Oracle 12c PL/SQ ...
- 数学之路(3)-机器学习(3)-机器学习算法-SVM[5]
svm小结 1.超平面 两种颜色的点分别代表两个类别,红颜色的线表示一个可行的超平面.在进行分类的时候,我们将数据点 x 代入 f(x) 中,如果得到的结果小于 0 ,则赋予其类别 -1 ,如果 ...
- 机器学习算法与Python实践之(四)支持向量机(SVM)实现
机器学习算法与Python实践之(四)支持向量机(SVM)实现 机器学习算法与Python实践之(四)支持向量机(SVM)实现 zouxy09@qq.com http://blog.csdn.net/ ...
- 第 12 章 MySQL 可扩展设计的基本原则
前言: 随着信息量的飞速增加,硬件设备的发展已经慢慢的无法跟上应用系统对处理能力的要求了.此时,我们如何来解决系统对性能的要求?只有一个办法,那就是通过改造系统的架构体系,提升系统的扩展能力,通过组合 ...
- SVM的简单介绍
ng的MI-003中12 ——SVM 一.svm目标函数的由来 视频先将LR的损失函数: 在上图中,先将y等于0 和y等于1的情况集合到一起成为一个损失函数,然后分别讨论当y等于1的时候损失函数的结果 ...
- 12.Mysql存储过程和函数
12.存储过程和函数12.1 什么是存储过程和函数存储过程和函数是事先经过编译并存储在数据库中的一段SQL语句的集合,调用存储过程和函数简化应用开发人员的工作,减少数据在数据库和应用服务器之间的传输, ...
- MySQL性能调优与架构设计——第12章 可扩展设计的基本原则
第12章 可扩展设计的基本原则 前言: 随着信息量的飞速增加,硬件设备的发展已经慢慢的无法跟上应用系统对处理能力的要求了.此时,我们如何来解决系统对性能的要求?只有一个办法,那就是通过改造系统的架构体 ...
- 12、Semantic-UI之输入框
12.1 基础输入框 在Semantic-UI中可以定义多个样式的输入框,可以将图片与输入框结合,输入提示信息文字,设置输入框的状态. 示例:定义基础输入框 用户名: <div class= ...
随机推荐
- Spring注入内部的Beans
以下内容引用自http://wiki.jikexueyuan.com/project/spring/injecting-inner-beans.html: 如你所知,Java内部类在其他类的范围内定义 ...
- 配置maven从私服上下载构件
maven 本地setting.xml配置 <!--配置maven从私服上下载构件 --> <profiles> <profile> <repositorie ...
- nrf51822中app_button 的应用
Button Handler(按键处理程序) 按键处理程序是使用GPIOTE(GPIO Task and Event)的处理机制实现的,为了防止按键的抖动.在GPIOTE event(事件)处理程序中 ...
- AppCan移动应用开发平台新增9个超有用插件(内含演示样例代码)
使用AppCan平台进行移动开发.你所须要具备的是Html5+CSS +JS前端语言基础.此外.Hybrid混合模式应用还需结合原生语言对功能模块进行封装,对于没有原生基础的开发人员,怎样实现App里 ...
- Bean property XX' is not writable or has an invalid setter method
刚刚搞spring.property注入时遇到这个问题,百度一下.非常多人说是命名或者get set方法不一致的问题,可是这个我是知道的.写的时候也注意到这些.所以应该不是这个问题.以为是xml头写的 ...
- 多线程网页爬虫 python 实现
采用了多线程和锁机制,实现了广度优先算法的网页爬虫. 对于一个网络爬虫,如果要按广度遍历的方式下载,它就是这样干活的: 1.从给定的入口网址把第一个网页下载下来 2.从 ...
- eclipse中progress一直在刷新问题处理
- postgres SQL编译过程
PG启动首先完成主进程和后台进程的启动,启动时完成数据库文件的打开,共享内存的建立等.接着,所有SQL都会启动1个单独的进程处理SQL的执行过程. 新的进程首先是进行自身的初始化,最主要的是初始化内存 ...
- 细数AutoLayout以来UIView和UIViewController新增的相关API
本文转载至 http://www.itjhwd.com/autolayout-uiview-uiviewcontroller-api/ 细数AutoLayout以来UIView和UIViewContr ...
- SQL常见问题及解决备忘
1.mysql中:you cant't specify tartget table for update in from clause 错误 含义:在同一语句中update或delete某张表的时候, ...