1、在R语言中,实现支持向量机的是e1071软件包中的svm函数。首先,安装并加载软件包。
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)#查看数据集中各变量的属性
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个支持向量。
4、利用建立好的模型进行悴匙吭佰预测。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)#真实值与预测值混淆矩阵在实际应用中,通过调整函数形式可以优化模型。