r语言 svm 大样本_利用R语言实现支持向量机(SVM)数据挖掘案例

本文介绍了如何使用R语言实现支持向量机(SVM)进行数据挖掘,包括两种建立模型的方式,模型参数设置,如核函数的选择和gamma参数的影响。通过iris数据集建立SVM模型,分析模型参数,预测结果并进行模型精度评估。通过调整模型中不同类别的权重比例,优化模型以提高预测精度,最终达到所有样本预测正确的目标。
摘要由CSDN通过智能技术生成

建立模型

svm()函数在建立支持向量机模型的时候有两种建立方式。简单地说,一种是根据既定公式建立模型;而另外一种方式则是根据所给的数据模型建立模型。

根据函数的第一种使用格式,针对上述数据建模时,应该先确定所建立的模型所使用的数据,然后再确定所建立模型的结果变量和特征变来那个。代码如下:

library(e1071)

data(iris)

#建立svm模型

model

在使用第一种格式建立模型时,如果使用数据中的全部特征变量作为模型特征变量时,可以简要地使用“Species~.”中的“.”代替全部的特征变量。

根据函数的第二种使用格式,在针对iris数据建立模型时,首先应该将结果变量和特征变量分别提取出来。结果变量用一个向量表示,而特征向量用一个矩阵表示。在确定好数据后还应根据数据分析所使用的核函数以及核函数所对应的参数值,通常默认使用高斯内积函数作为核函数,具体分析代码如下:

#提取iris数据中除第5列以外的数据作为特征变量

x

#提取iris数据中第5列数据作为结果变量

y

#建立svm模型

model

在使用第二种格式建立模型时,不需要特别强调所建立模型的哪个是,函数会自动将所有输入的特征变量数据作为建立模型所需要的特征变来那个。

在上述过程中,确定核函数的gamma系数时所使用的R语言所代表的意思为:如果特征向量是向量则gamma值取1,否则gamma值为特征向量个数的倒数。

结果分析

summary(model)

Call:

svm.default(x = x, y = y, kernel = "radial", gamma = if (is.vector(x)) 1 else 1/ncol(x))

Parameters:

SVM-Type: C-classification

SVM-Kernel: radial

cost: 1

gamma: 0.25

Number of Support Vectors: 51

( 8 22 21 )

Number of Classes: 3

Levels:

setosa versicolor virginica

通过summary()函数可以得到关于模型的相关信息。其中,SVM-Type项目说明本模型的诶别为C分类器模型;SVM-Kernel项目说明本模型所使用的核函数为高斯内积函数且核函数中参数gamma的取值为0.25;cost项目说明本模型确定的约束违反成本为1。

在输出结果中,我们还可以看到,对于该数据,模型找到了51个支持变量;第一类具有8个支持向量,第二类具有22个支持向量,第三类具有21个支持向量。最后说明了模型中的三个类别为:setosa、versicolor和virginica。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值