黑箱方法 支持向量机①

简介: 1. 介绍支持向量机(Support Vector Machine,SVM)是Corinna Cortes和Vapnik等于1995年首先提出的,它在解决小样本、非线性及高维模式识别中表现出许多特有的优势,并能够推广应用到函数拟合等其他机器学习问题中。

1. 介绍

支持向量机(Support Vector Machine,SVM)是Corinna Cortes和Vapnik等于1995年首先提出的,它在解决小样本、非线性及高维模式识别中表现出许多特有的优势,并能够推广应用到函数拟合等其他机器学习问题中。 SVM几乎可以适用于所有的学习任务,包括分类和数值预测两个方面。著名的应用包括:

  • 在生物信息学领域中,识别癌症或者其他遗传病的微阵列基因表达数据的分类
  • 罕见却重要的事件检测,如内燃机故障,安全漏洞等。
  • 当支持向量机用于二分类时,它最容易理解

2.原理

SVM可以想象成一个平面,该平面定义了各个数据点之间的界限,而这些数据点代表是根据它们的特征值在多维空间绘制。支持向量机的目标是创建一个平面边界,称为一个超平面,使得任何一边的数据划分都是均匀的。通过这种方式,svm结合了近邻学习和线性回归,因此允许支持向量机对复杂的关系进行建模。

支持向量机将向量映射到一个更高维的空间里,在这个空间里建立有一个最大间隔超平面。在分开数据的超平面的两边建有两个互相平行的超平面。建立方向合适的分隔超平面使两个与之平行的超平面间的距离最大化。其假定为,平行超平面间的距离或差距越大,分类器的总误差越小

img_5e9a4c5eb1ba206926cdd0f26704994a.jpe
image

3.kernlab

建立模型:
m <- ksvm(target ~ predictors , data = data, kenal = "rbfdot" , c = 1)

  • kernal:给出一个非线性映射,例如"rbfdot"(径向基函数),"polydot"(多项式函数),"tandot"(双曲正切函数),"vanilladot"(线性函数)
  • c:对于软边界的惩罚大小,较大的c值会导致边界较窄。

p <- predict(m, test, type = "response")

  • 函数ksvm所训练的模型
  • test:包含测试数据的数据框
  • type:用于指定预测的类型为“respon”(预测类别), 或者“probabiilities”(预测概率, 每一列对应一个类水平值)
  • 例子:classifier <- ksvm(letter ~., data = letter_trian, kernal = "vanilladot")
  • prediction <- predict(classifier, latter_test)
  • 划分训练集和测试集
setwd("E:\\Rwork")
rm=list()
#install.packages("kernlab")
library(kernlab)  
iris=iris
##########拆分数据集
iris=iris
N = sample(2,nrow(iris),replace = T,prob = c(0.7,0.3))
train = iris[N==1,]
test = iris[N==2,]
dim(train)
dim(test)
  • 建立模型
#=================================
set.seed(12345) # for reproducing results
ksvmfit <- ksvm(Species ~ ., data = train, type = "C-bsvc",
                kernel = "rbfdot", kpar = list(sigma = 0.01), C = 10, prob.model = TRUE)
ksvmfit

> ksvmfit
Support Vector Machine object of class "ksvm" 

SV type: C-bsvc  (classification) 
 parameter : cost C = 10 

Gaussian Radial Basis kernel function. 
 Hyperparameter : sigma =  0.01 

Number of Support Vectors : 40 

Objective Function Value : -36.6708 -15.7083 -208.9155 
Training error : 0.039216 
Probability model included. 
  • 预测
predict=predict(ksvmfit, test, type = "probabilities")
 
predict=predict(ksvmfit, test, type = "response")

> real=test$Species
> table(predict,real)
            real
predict      setosa versicolor virginica
  setosa         19          0         0
  versicolor      0         12         0
  virginica       0          2        15
> #==========================================
> test=cbind(test,as.data.frame(predict))
目录
相关文章
|
Windows 网络协议 缓存
流媒体技术学习笔记之(十一)Windows环境运行EasyDarwin
流媒体平台框架下载安装 Github下载   下载地址:https://github.com/EasyDarwin/EasyDarwin/releases 解压安装   选择Windows 安装平台的安装包(下载解压)   把解压生成的文件夹重命名放在本地磁盘,我这里测试放在E盘:   介绍其中的来个批处理文件: start.
2934 0
|
9月前
|
存储 数据采集 数据处理
如何在Python中高效地读写大型文件?
大家好,我是V哥。上一篇介绍了Python文件读写操作,今天聊聊如何高效处理大型文件。主要方法包括:逐行读取、分块读取、内存映射(mmap)、pandas分块处理CSV、numpy处理二进制文件、itertools迭代处理及linecache逐行读取。这些方法能有效节省内存,提升效率。关注威哥爱编程,学习更多Python技巧。
225 8
|
10月前
|
人工智能 自然语言处理
AI生成海报 or 人工手绘 ,哪个更好
AIGC(人工智能生成内容)正引领智能化转型的浪潮,涵盖文字、图片、音频等多种形式。AI生成海报以其速度快、设计酷炫、创意无限和成本低等优势脱颖而出,尤其适合中小企业和个人。相比人工手绘海报虽富有情感和温度,但耗时较长且成本较高,AI生成海报更显高效便捷。两者各具特色,但在快节奏的今天,AI生成海报无疑是更省时省力的选择。
|
9月前
|
搜索推荐 数据挖掘 API
阿里巴巴API接口对电商的影响与收益
在全球电子商务快速发展的背景下,阿里巴巴作为领先的B2B平台,为中小企业提供商品批发、分销、供应链管理等一站式服务,并通过开放的API接口为开发者和电商企业提供数据资源与功能支持。本文将深入解析阿里巴巴API接口的功能(如商品搜索、详情、订单和用户管理)、应用(如商品展示、搜索优化、交易管理和用户行为分析)、收益(如流量增长、销售提升、库存优化)及实际案例,附带代码示例,助力电商从业者提升运营效率和用户体验。
317 0
|
11月前
|
机器学习/深度学习 存储 人工智能
人工智能的伦理困境与挑战
在本文中,我们将探讨人工智能技术的快速发展所带来的一系列伦理问题和挑战。随着AI技术的不断进步和应用范围的扩大,如何确保其发展符合道德标准、保护个人隐私以及避免潜在的社会不公成为了亟待解决的问题。本文旨在通过分析当前AI领域面临的主要伦理困境,并提出可能的解决方案或缓解措施,以促进更加负责任地使用和发展人工智能技术。
1033 1
|
大数据 数据挖掘 数据建模
|
机器学习/深度学习 人工智能 自然语言处理
AIGC的局限性
AIGC的局限性
1125 1
|
人工智能 数据可视化 物联网
AMiner发布:2022年人工智能全球最具影响力学者榜单AI 2000(1)
AMiner发布:2022年人工智能全球最具影响力学者榜单AI 2000
475 0
|
监控 安全 算法
sshd服务安装-ssh命令使用方法
SSH协议:安全外壳协议。为 Secure Shell 的缩写。SSH 为建立在应用层和传输层基础上的安全协议。
1193 0
sshd服务安装-ssh命令使用方法
|
存储 数据采集 Oracle
数仓建设保姆级教程,离线和实时一网打尽(理论+实战)(一)
数仓建设保姆级教程,离线和实时一网打尽(理论+实战)
712 0