支持向量机(Support Vector Machine, SVM)是一种广泛应用于机器学习和数据挖掘的监督学习模型。它通过构建一个超平面或者多个超平面来进行分类和回归任务。在R语言中,我们可以使用e1071包来实现支持向量机算法。
首先,我们需要安装并加载e1071包:
install.packages("e1071")
library(e1071)
接下来,我们可以准备用于训练和测试的数据。SVM常用于处理二分类问题,所以我们从一个例子开始,将其拓展到多分类问题。这里我们使用著名的鸢尾花数据集。
# 导入鸢尾花数据集
data(iris)
# 将数据集划分为训练集和测试集
set.seed(123) # 设置随机种子以保证可重复性
train_index <- sample(1:nrow(iris), nrow(iris)*0.7) # 随机选择70%的样本作为训练集
train_data <- iris[train_index, ] # 训练集
test_data <- iris[-train_index, ] # 测试集
接下来,我们可以使用svm()函数来构建支持向量机模型。在二分类问题中,我们可以使用type参数指定不同的核函数,例如线性核(linear)、多项式核(polynomial)和径向基核(radial)等。
# 构建支持向量机模型
svm_model <- svm(Species ~ .,