r语言支持向量机分类
时间: 2025-01-09 16:31:15 浏览: 0
### 使用R语言中的支持向量机进行分类
#### 安装必要的包
为了在R中使用支持向量机(SVM),通常会依赖于`e1071`或`kernlab`这样的软件包。这些库提供了创建和支持向量机模型的功能。
```r
install.packages("e1071") # 如果尚未安装的话
library(e1071)
```
#### 加载数据集并准备训练测试分割
这里以鸢尾花(Iris)数据为例,这是一个经典的数据集,常被用来展示各种机器学习技术的应用[^2]。
```r
data(iris)
set.seed(1234) # 设置种子以便结果可重复
trainIndex <- sample(seq_len(nrow(iris)), size = floor(0.7 * nrow(iris)))
trainingData <- iris[trainIndex, ]
testingData <- iris[-trainIndex, ]
```
#### 训练支持向量机模型
通过调用`svm()`函数来构建一个基于线性核的支持向量机模型。对于多类别分类问题,默认情况下它采用一对一策略(one-vs-one approach)。
```r
svmModel <- svm(Species ~ ., data=trainingData, kernel="linear", cost=1, scale=TRUE)
summary(svmModel)
```
#### 预测新实例所属类别
一旦有了训练好的模型,就可以利用该模型对未知样本做出预测了。
```r
predictions <- predict(svmModel, testingData[, -5])
table(Predicted=predictions, Actual=testingData$Species)
```
此代码片段展示了如何评估模型性能的一个简单混淆矩阵。
#### 调整参数优化模型表现
可以通过调整超参数如kernel类型(`linear`, `radial`)以及cost值等进一步改进模型的表现。例如尝试径向基函数(RBF)作为内核:
```r
rbfSvmModel <- svm(Species ~ ., data=trainingData, kernel="radial", gamma=0.1, cost=10, scale=TRUE)
summary(rbfSvmModel)
```
阅读全文