用R语言实现支持向量机

支持向量机(Support Vector Machine, SVM)是一种二分类模型,它通过构造一个最优超平面对数据进行分类。超平面就是在高维空间中将不同类别的数据分离开的一个分界面,最优超平面则是离两个类别最近的数据点的距离最大的那个超平面。

以下是一个使用R语言中支持向量机进行分类的示例。

首先,我们需要加载必要的库。

library(e1071)
library(ggplot2)

将R自带的鸢尾花数据集分成训练集和测试集:

该数据集包括150个样本和4个特征(花萼长度、花萼宽度、花瓣长度和花瓣宽度),并且每个样本都有一个标签,表示其属于哪一类鸢尾花。

# 生成模拟数据集
set.seed(123)
n <- 100
X1 <- cbind(rnorm(n, mean = 0), rnorm(n, mean = 0))
X2 <- rbind(X1, cbind(rnorm(n, mean = 2), rnorm(n, mean = 2)))
y <- c(rep(1, n), rep(2, n))
data <- data.frame(x = X1, y = as.factor(y))

接下来,使用svm函数对数据进行建模:

model <- svm(Species ~ ., data = train)

这里的Species是鸢尾花的类别,.表示使用除了Species以外的所有变量作为特征。

最后,使用predict函数对测试集进行预测:

pred <- predict(model, test)

完整的代码如下:

library(e1071)
data(iris)

set.seed(123)
trainIndex <- sample(1:nrow(iris), 100)
train <- iris[trainIndex, ]
test <- iris[-trainIndex, ]

model <- svm(Species ~ ., data = train)

pred <- predict(model, test)
table(pred, test$Species)

运行代码后,可以得到测试集上的分类结果和混淆矩阵。根据混淆矩阵可以计算出准确率、召回率、F1值等指标,评估模型的性能。

运行结果:

pred setosa versicolor virginica

setosa 16 0 0

versicolor 0 20 0

virginica 0 1 13

以上是简单的支持向量机示例。SVM是一个非常有用的分类算法,广泛用于机器学习和数据科学领域。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Evaporator Core

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值