6-10 SVM支持向量机1

都是特征加上分类器。还将为大家介绍如何对这个数据进行训练。如何训练得到这样一组数据。

其实SVM支持向量机,它的本质仍然是一个分类器。既然是一个分类器,它就具有分类的功能。我们可以使用一条直线来完成分类,这是一种比较简单的情况。
这是在我们的二维平面上。二维平面上它是由直线和多个直线来组成。如果我们把当前的左边的这样一个图和右边的这样一个图,我们把它投影到一个高维空间上,实际上它就是一个超平面。
这就是SVM支持向量机的核心。首先它的本质它是一个分类器。这个分类器如何进行分类呢?它就是寻求一个最优的超平面来完成这样一个分类。
在寻求超平面的时候它有多种方式。可以使用若干条直线,也可以使用若干个曲线等等。
可以看到一个最简单的SVM分类器是如何进行训练的。
在进行SVM训练的时候,有一个对数据最基本的要求:所有的数据都必须要有标签label。标签是描述当前一组数据唯一的一个属性。我们当前的数据是男生的身高和体重和女生的身高和体重,所以这个标签描述的就是当前的这一个数据到底是男生还是女生。所以每一个身高和体重都要有一个唯一的标签来进行对应。
组装完之后每一个数据都对应的label中的一个标签,然后我们才可以进行训练。像这一种标签的训练我们把它交托为监督学习。监督学习其实最本质的含义,就是在学习的过程中,每学习一组数据就要告诉它学习得对还是不对。
# 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 男生
# 监督学习
6-10 SVM支持向量机1的更多相关文章
- 机器学习实战 - 读书笔记(06) – SVM支持向量机
前言 最近在看Peter Harrington写的"机器学习实战",这是我的学习笔记,这次是第6章:SVM 支持向量机. 支持向量机不是很好被理解,主要是因为里面涉及到了许多数学知 ...
- Python实现SVM(支持向量机)
Python实现SVM(支持向量机) 运行环境 Pyhton3 numpy(科学计算包) matplotlib(画图所需,不画图可不必) 计算过程 st=>start: 开始 e=>end ...
- SVM 支持向量机算法-实战篇
公号:码农充电站pro 主页:https://codeshellme.github.io 上一篇介绍了 SVM 的原理和一些基本概念,本篇来介绍如何用 SVM 处理实际问题. 1,SVM 的实现 SV ...
- SVM支持向量机的基本原理
SVM支持向量机的基本原理 对于很多分类问题,例如最简单的,一个平面上的两类不同的点,如何将它用一条直线分开?在平面上我们可能无法实现,但是如果通过某种映射,将这些点映射到其它空间(比如说球面上等), ...
- 6-11 SVM支持向量机2
SVM支持向量机的核:线性核.进行预测的时候我们需要把正负样本的数据装载在一起,同时我们label标签也要把正负样本的数据全部打上一个label. 第四步,开始训练和预测.ml(machine lea ...
- 机器学习进阶-svm支持向量机
支持向量机需要解决的问题:找出一条最好的决策边界将两种类型的点进行分开 这个时候我们需要考虑一个问题,在找到一条直线将两种点分开时,是否具有其他的约束条件,这里我们在满足找到一条决策边界时,同时使得距 ...
- 跟我学算法-SVM(支持向量机)
支持向量机是一个点离决策边界越近,离决策面越远的问题 求解的过程主要是通过拉格朗日乘子法,来求解带约束的优化问题,在问题中涉及两个方面,一个是线性的,一个是非线性的,非线性的有 我们平时比较常见的高斯 ...
- (转)R语言 SVM支持向量机在 R 语言中的实现和使用
支持向量机是一个相对较新和较先进的机器学习技术,最初提出是为了解决二类分类问题,现在被广泛用于解决多类非线性分类问题和回归问题.继续阅读本文,你将学习到支持向量机如何工作,以及如何利用R语言实现支持向 ...
- [分类算法] :SVM支持向量机
Support vector machines 支持向量机,简称SVM 分类算法的目的是学会一个分类函数或者分类模型(分类器),能够把数据库中的数据项映射给定类别中的某一个,从而可以预测未知类别. S ...
随机推荐
- es中插入数据
es中插入数据 学习了:https://www.imooc.com/video/15769/0 分为指定Id和自动生成Id两种: 1,指定Id使用PUT操作 PUT http://127.0.0.1: ...
- [Javascript] Cancel A Promise Using AbortController
The AbortController interface enables us to cancel a one or more DOM requests. In this lesson, we wi ...
- 【机器学习算法-python实现】协同过滤(cf)的三种方法实现
(转载请注明出处:http://blog.csdn.net/buptgshengod) 1.背景 协同过滤(collaborative filtering)是推荐系统经常使用的一种方法.c ...
- Yii 清理缓存
html: <button onclick="clearCache()">ClearCache</button> js: function clearCac ...
- SIFT算法中DoG特征点的修正
SIFT算法中,在DoG空间找到极值点后,需要对极值点进行修正,本文主要详细的讲解一下为什么需要修正,以及如何对极值点进行修正. 下图演示了二维函数离散空间得到的极值点与连续空间的极值点之间的差别 利 ...
- erlang 中文编码显示乱码问题
许久没做erlang开发了,近期有网友问到erlang的问题.就抽时间看下.问题是这种.模块有中文.将中文直接打印出来.shell下显示会出现乱码.但假设先将中文转成binary.就行正常显示出来. ...
- 2015-03-12---外观模式,建造者模式(附代码),观察者模式(附代码),boost库应用
今天白天主要看了boost库的应用,主要是经常使用的一些库,array,bind,function,regex,thread,unordered,ref,smartpointers库,晚上看了看设计模 ...
- thinkphp getField( )和field( )
thinkphp getField( )和field( ) 做数据库查询的时候,比较经常用到这两个,总是查手册,记不住,现在把它总结下,希望以后用的时候不查手册了. 不管是用select 查询数据 ...
- Java核心技术之基本数据类型
这篇文章.我们讨论一些java的最主要的东西.这些东西我们一般刚刚学java的时候就学过,可是不一定真正明确. 正好,我在做一个读取内存的值,涉及到bit位的值的读取和写.那就能够讨论一个java的基 ...
- SSM整理笔记2——jar包整理
github:https://github.com/lakeslove/SSM 需要的jar包 springMVC和spring: spring.RELEASE.jar spring.RELEASE. ...