predict函数 R_R语言如何实现支持向量机?

支持向量机是帮助我们解决小样本、非线性及高维数据的重要手段。

1 在R语言中,实现支持向量机的是e1071软件包中的svm函数。

首先,安装并加载软件包。

8dc8b4ec2bd021785b8a1169989f5058.png

2  读取数据集。

gyyz_data=read.csv("gyyz.csv",head=T)#读取数据集

gyyz_data$is_rise=as.factor(gyyz_data$is_rise)#将目标变量转换成分类数据

head(gyyz_data);dim(gyyz_data)#查看数据维度

str(gyyz_data)#查看数据集中各变量的属性

9b3bae9b63bc032f11dca47a441a10be.png3c4bbfc4cdc446f49d98eef91503d389.png

3  建立向量机的主要函数是SVM(),该函数可以用来建立一般情况下的回归模型,也可以用来建立分类模型、密度估计模型。

svm()函数主要有以下两种形式:

第一种:

svm(formula, data = NULL, ..., subset, na.action =

na.omit, scale = TRUE)

第二种:

svm(x, y = NULL, scale = TRUE, type = NULL, kernel =

"radial", degree = 3, gamma = if (is.vector(x)) 1 else 1 / ncol(x),

coef0 = 0, cost = 1, nu = 0.5,class.weights = NULL, cachesize = 40, tolerance = 0.001, epsilon = 0.1,

shrinking = TRUE, cross = 0, probability = FALSE, fitted = TRUE,

..., subset, na.action = na.omit)

其中,第一种函数形式的formula表示公式,一般为y~x1+x2或y~.的形式,data代表数据集。第二种函数形式中的x表示一个特征变量数据集,y表示目标变量;type表示建立模型的类别,主要有C-classification、nu-classification、one-classification(逻辑判别)、eps-regression、nu-regression;kernel表示核函数,主要有线性函数、基核函数、多项式函数、神经网络函数,识别率最高和性能最好的函数是径向基核函数。svm()函数的输出结果中主要包含:SV,即支持向量机;Index表示支持向量样本数据的第几个样本。

建立模型的代码如下:

svm_model=svm(is_rise~.,data=gyyz_data,knernel="radial") #建立svm模型

summary(svm_model)#查看模型输出结果

从结果中可以看出,该模型有48个支持向量,0类和1类分别有24个支持向量。

d51db13b4a70fa048660dd97bf120ddc.png

利用建立好的模型进行预测。

svm_pred=predict(svm_model,gyyz_data)

gyyz_data$svm_pred=svm_pred#将预测结果保存到数据集

head(gyyz_data)#查看预测结果

#查看预测效果

table(gyyz_data$is_rise,gyyz_data$svm_pred)#真实值与预测值混淆矩阵

在实际应用中,通过调整函数形式可以优化模型。

1f6e55aee0927a6c15485a7f524a46c6.png02c65f3f442144728a6082be42bda392.png

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值