介绍

R 中的支持向量机

Kailash Awati

Instructor

预备知识

  • 目标:理解 SVM 的工作原理、可选参数及其最佳适用情境。
  • 先修:R 中级;使用 ggplot() 的基础可视化。
  • 方法:从一维示例开始,逐步过渡到更复杂示例。
R 中的支持向量机

汽水的含糖量

  • 某汽水厂的旗舰品牌有两个版本:
    • Choke——含糖量 11 g/100 ml。
    • Choke-R——含糖量 8 g/100 ml。
  • 实际含糖量存在波动。
  • 给定随机抽取的 25 个样本,找出判断品牌的决策规则。
  • 第一步:可视化数据。
R 中的支持向量机

汽水含糖量——可视化代码

  • 数据在 drink_samples 数据框中。
# Specify dataframe, set plot aesthetics in geom_point (note y = 0)
p <- ggplot(drink_samples) +
  geom_point(aes(sugar_content, 0))

# Label each point with sugar content value, adjust text size and location p <- p + geom_text(aes(sugar_content, 0, label = sugar_content), size = 2.5, vjust = 2, hjust = 0.5) # Display plot p
R 中的支持向量机

第1.1章——含糖量聚类

R 中的支持向量机

决策边界

  • 在区间内选两个候选边界:
    • 9.1 g/100 ml
    • 9.7 g/100 ml
  • 分类(决策)规则:
    • if (y < 9.1) then "Choke-R" else "Choke"
    • if (y < 9.7) then "Choke-R" else "Choke"
  • 将它们叠加到前一页的图中。
R 中的支持向量机

决策边界——可视化代码

  • 创建包含两个决策边界的数据框。
# Define data frame containing decision boundaries
d_bounds <- data.frame(sep = c(9.1, 9.7))
R 中的支持向量机

决策边界——可视化代码

  • 使用 geom_point() 添加到图中
# Add decision boundaries to previous plot
p <- p + 
  geom_point(data = d_bounds,
             aes(sep, 0),
             color = "red",
             size = 3) +
  geom_text(data = d_bounds,
            aes(sep, 0, label = sep),
            size = 2.5,
            vjust = 2,
            hjust = 0.5,
            color = "red") 
# Display plot
p
R 中的支持向量机

第1.1章——含糖量聚类与示例决策边界

R 中的支持向量机

最大间隔分隔器

  • 最佳边界使间隔最大:最大间隔分隔器。
  • 最大间隔分隔器位于两簇的中点。
  • 将其可视化。
# Create data frame with maximal margin separator
mm_sep <- data.frame(sep = c((8.8 + 10) / 2))

# Add mm boundary to previous plot p <- p + geom_point(data = mm_sep, aes(sep, 0), color = "blue", size = 4) # Display plot p
R 中的支持向量机

第1.1章——最大间隔分隔器

R 中的支持向量机

开始练习!

R 中的支持向量机

Preparing Video For Download...