多分类问题

R 中的支持向量机

Kailash Awati

Instructor

Iris 数据集简介

  • 150 条记录,含 5 个属性
    • 花瓣宽度与长度:数值(自变量)
    • 萼片宽度与长度:数值(自变量)
    • 物种:类别(目标变量):setosa、virginica、versicolor
  • 数据集来源于 UCI ML 仓库
R 中的支持向量机

可视化 Iris 数据集

  • 绘制花瓣长度 vs 花瓣宽度。
library(ggplot2)

# 按物种着色,绘制花瓣长度与宽度散点图
p <- ggplot(data = iris,
            aes(x = Petal.Width,
                y = Petal.Length,
                color = Species)) +
     geom_point()

# 显示图形
p
R 中的支持向量机

第 2.4 节 - Iris 数据集:花瓣长度 vs 花瓣宽度,按物种着色区分

R 中的支持向量机

SVM 如何处理多分类问题?

  • SVM 本质上是二分类器。
  • 处理多分类可用以下投票策略:
    • 将数据划分为包含两类的子集。
    • 对每个子集训练二分类模型。
    • 以多数投票为每个样本定类。
  • 称为一对一(one-against-one)策略。
R 中的支持向量机

构建多分类线性 SVM

  • 为 Iris 数据集建立线性 SVM
    • 80/20 训练/测试划分(seed 10),默认 cost
library(e1071)

# 训练模型
svm_model <- svm(Species ~ ., 
                data = trainset, 
                type = "C-classification", 
                kernel = "linear")
  • 计算准确率
pred_train <- predict(svm_model, trainset)
mean(pred_train == trainset$Species)
0.9756098
pred_test <- predict(svm_model, testset)
mean(pred_test == testset$Species)
0.962963
R 中的支持向量机

¡Vamos a practicar!

R 中的支持向量机

Preparing Video For Download...