導論

R 的支援向量機

Kailash Awati

Instructor

預備知識

  • 目標:理解 SVM 的原理、可用參數,以及最適用的情境。
  • 先備知識:具備 R 中階能力;能用 ggplot() 做基本視覺化。
  • 方式:從 1 維範例開始,逐步擴展到更複雜的例子。
R 的支援向量機

汽水的糖含量

  • 某汽水品牌有兩個版本:
    • Choke-糖含量 11 g/100 ml。
    • Choke-R-糖含量 8 g/100 ml。
  • 實際糖含量會有變動。
  • 給定隨機抽取的 25 個樣本,找出判定品牌的決策規則。
  • 第一步:把資料視覺化!
R 的支援向量機

汽水糖含量-視覺化程式碼

  • 資料在 drink_samples 資料框中。
# 指定資料框,在 geom_point 設定圖形樣式(注意 y = 0)
p <- ggplot(drink_samples) +
  geom_point(aes(sugar_content, 0))

# 以糖含量為標籤標示各點,調整文字大小與位置 p <- p + geom_text(aes(sugar_content, 0, label = sugar_content), size = 2.5, vjust = 2, hjust = 0.5) # 顯示圖形 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 的支援向量機

決策邊界-視覺化程式碼

  • 建立含兩個決策邊界的資料框。
# 定義包含決策邊界的資料框
d_bounds <- data.frame(sep = c(9.1, 9.7))
R 的支援向量機

決策邊界-視覺化程式碼

  • geom_point() 加到圖上
# 把決策邊界加入前一張圖
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") 
# 顯示圖形
p
R 的支援向量機

第 1.1 節-含範例決策邊界的糖含量群聚

R 的支援向量機

最大間隔分隔器

  • 最佳決策邊界會最大化間隔:最大間隔分隔器
  • 最大間隔分隔器位於兩群中心的中點。
  • 將最大間隔分隔器視覺化。
# 建立含最大間隔分隔器的資料框
mm_sep <- data.frame(sep = c((8.8 + 10) / 2))

# 把最大間隔邊界加到前一張圖 p <- p + geom_point(data = mm_sep, aes(sep, 0), color = "blue", size = 4) # 顯示圖形 p
R 的支援向量機

第 1.1 節-最大間隔分隔器

R 的支援向量機

一起來練習吧!

R 的支援向量機

Preparing Video For Download...