R语言:SVM的实现 |
您所在的位置:网站首页 › roc红酒 › R语言:SVM的实现 |
SVM是比较常用的分类算法,其核心采用的是线性分类器,如果数据在当前维度下不可分割,可以映射到更高的维度之上。本文将着重介绍SVM算法的R语言实现。 使用的是e1071包中的svm函数。 数据简介本文数据选择了红酒质量分类数据集,这是一个很经典的数据集,原数据集中“质量”这一变量取值有{3,4,5,6,7,8}。为了实现二分类问题,我们添加一个变量“等级”,并将“质量”为{3,4,5}的观测划分在等级0中,“质量”为{6,7,8}的观测划分在等级1中。 数据下载戳我 因变量:等级 自变量:非挥发性酸性、挥发性酸性、柠檬酸、剩余糖分、氯化物、游离二氧化硫、二氧化硫总量、浓度、pH、硫酸盐、酒精 library(openxlsx) wine = read.xlsx("C:/Users/Mr.Reliable/Desktop/classification/winequality-red.xlsx") #将数据集分为训练集和测试集,比例为7:3 train_sub = sample(nrow(wine),7/10*nrow(wine)) train_data = wine[train_sub,] test_data = wine[-train_sub,] SVM的实现 R包下载 install.packages('e1071') 实现SVMsvm函数的重要参数: 参数意义formula y y y~ x 1 + 1 2 + . . . + x n x_1+1_2+...+x_n x1+12+...+xn,确定自变量和因变量data使用的数据集type分类:C-classification(default)/nu-classification;文本分类:one-classification;回归:eps-regression(default)/nu-regressionkernellinear/polynomial/radial/sigmoidSVM算法有很多参数可以选择,而且当type和kernel的选择不同时,其他的参数才有意义,如果没有特别的要求,剩下的参数其实可以不使用或者使用默认值。具体详见SVM算法的参数详解 library(pROC) #绘制ROC曲线 library(e1071) #数据预处理 train_data$等级 = as.factor(train_data$等级) test_data$等级 = as.factor(test_data$等级) #svm:由于是分类问题,此处我们选择C-classification wine_svm |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |