34/100 支援向量機(SVM) 🏗 用超平面來分割數據,適合高維度資料分類!

更新 發佈閱讀 11 分鐘

AI時代系列(1) 機器學習三部曲: 🔹 第一部:《機器學習 —— AI 智慧的啟航》


34/100 第四週:監督學習(分類)


34. 支援向量機(SVM) 🏗 用超平面來分割數據,適合高維度資料分類!


🏗 支援向量機(SVM, Support Vector Machine)

用超平面來分割數據,適合高維度資料分類!

________________________________________


📌 1️⃣ 什麼是支援向量機(SVM)?


支援向量機(Support Vector Machine, SVM)是一種 強大的分類演算法,其核心概念是:


尋找「最佳超平面」來分隔數據

最大化類別之間的間隔(Margin)

適合高維度數據,對異常值較不敏感


📌 SVM 的應用場景


垃圾郵件分類(Spam vs. Non-Spam 📩)

影像識別(手寫數字識別 🖊️)

癌症檢測(腫瘤是良性或惡性 🏥)

股票趨勢分析(上漲 or 下跌 📈)

________________________________________


📌 2️⃣ SVM 的運作方式


🎯 (1) 找到最佳超平面


超平面(Hyperplane) 是一條線(2D)、一個平面(3D)或更高維度的區隔面,它能將不同類別的數據點分開。


📌 SVM 目標:


找到距離兩類數據「最遠」的超平面

這條最佳超平面稱為「最大邊界超平面(Maximal Margin Hyperplane)」

確保模型有更好的泛化能力(避免過擬合)


🎯 (2) 支援向量(Support Vectors)


離決策邊界最近的數據點,稱為「支援向量」

支援向量決定了分類邊界的位置

只需少量數據點即可定義超平面,減少過擬合


🎯 (3) 硬邊界 vs. 軟邊界


硬邊界 SVM(Hard Margin SVM):嚴格分類,要求所有數據點都被完美分隔(適合線性可分數據)

軟邊界 SVM(Soft Margin SVM):允許少量數據點錯誤分類,提高模型的泛化能力(適合帶有噪音的數據)


📌 軟邊界的調整參數:


C 值(正則化參數)

o C 小 → 允許更多錯誤,邊界更寬,泛化能力更強

o C 大 → 限制錯誤,邊界更窄,可能過擬合

________________________________________


📌 3️⃣ SVM 的核函數(Kernel Functions)


SVM 可透過**核函數(Kernel Function)**將資料從低維空間映射至高維空間,進而處理非線性分類問題。**線性核(Linear Kernel)**適用於資料線性可分時,模型訓練快速;**多項式核(Polynomial Kernel)**能捕捉較複雜的多項式關係,適合有曲線邊界的資料;**高斯 RBF 核(Radial Basis Function)**為最常用的非線性核,能處理多數實際應用中的非線性分布;Sigmoid 核模仿神經網路中的啟動函數,在某些特定應用中可提供類似於 MLP 的效果。選擇合適的核函數是影響 SVM 效能的關鍵之一。


📌 常見選擇


線性數據 → 線性核

非線性數據 → RBF(最常用)

當特徵空間較小時,多項式核也是不錯的選擇

________________________________________


📌 4️⃣ Python 實作:SVM 分類

我們來實作 SVM 進行二元分類,並繪製決策邊界。

________________________________________


import numpy as np

import matplotlib.pyplot as plt

from sklearn.datasets import make_classification

from sklearn.model_selection import train_test_split

from sklearn.svm import SVC

from sklearn.metrics import accuracy_score


# ✅ 中文字體支援(避免警告)

plt.rcParams["font.sans-serif"] = ["Microsoft JhengHei"] # or PMingLiU

plt.rcParams["axes.unicode_minus"] = False


# 1 建立模擬資料

X, y = make_classification(n_samples=200, n_features=2,

n_informative=2, n_redundant=0,

n_classes=2, random_state=1)


# 2 分割訓練/測試集

X_train, X_test, y_train, y_test = train_test_split(X, y,

test_size=0.2,

random_state=1)


# 3 建立 SVM 模型(線性核函數)

svm_clf = SVC(kernel='linear', C=1.0)

svm_clf.fit(X_train, y_train)


# 4 預測與評估

y_pred = svm_clf.predict(X_test)

print("✅ 準確率:", accuracy_score(y_test, y_pred))


# 5 視覺化資料與決策邊界

def plot_decision_boundary(model, X, y, title="SVM 決策邊界"):

# 建立網格點

h = 0.02

x_min, x_max = X[:, 0].min() - 1, X[:, 0].max() + 1

y_min, y_max = X[:, 1].min() - 1, X[:, 1].max() + 1

xx, yy = np.meshgrid(np.arange(x_min, x_max, h),

np.arange(y_min, y_max, h))

# 網格點預測分類

Z = model.predict(np.c_[xx.ravel(), yy.ravel()])

Z = Z.reshape(xx.shape)


# 畫出決策邊界

plt.contourf(xx, yy, Z, cmap=plt.cm.coolwarm, alpha=0.3)

plt.scatter(X[:, 0], X[:, 1], c=y, cmap=plt.cm.coolwarm, edgecolors="k")

plt.xlabel("特徵 1")

plt.ylabel("特徵 2")

plt.title(title)

plt.show()


plot_decision_boundary(svm_clf, X, y)

________________________________________


📌 5️⃣ SVM 的優缺點


✅ 優點


適合高維度數據

對異常值較不敏感

適用於小樣本數據

使用核函數可處理非線性數據


⚠ 缺點


計算成本較高(尤其是大數據)

參數(C, gamma)需要調整

對類別不平衡的數據較敏感


📌 解決方案


使用 Grid Search 或 Random Search 調參

對類別不平衡數據調整權重

採用線性核來加速計算

________________________________________


📌 6️⃣ SVM vs. 其他分類方法


各種分類模型各有適用場景:邏輯回歸適用於線性關係明確的問題,模型簡單且易於解釋;**KNN(K 近鄰分類)**適合少量資料與非線性結構,實作容易但對資料量與維度敏感;決策樹與隨機森林具有良好的可解釋性,能處理非線性與複雜特徵間的交互作用;SVM(支持向量機)適合小樣本、高維空間的分類任務,對邊界敏感問題效果佳;而XGBoost則是目前主流的強大集成方法,特別適合用於大數據場景,具有高準確率與良好的泛化能力。

________________________________________


📌 7️⃣ 總結


✅ SVM 透過超平面來分類數據,適合高維度數據

✅ 使用支援向量來決定最佳分類邊界

✅ 可透過核函數(如 RBF)來處理非線性問題

✅ 適合小型數據集,但對大數據計算成本較高


🚀 下一步:探索「隨機森林分類(Random Forest)」來進一步提升分類能力!🌲



留言
avatar-img
留言分享你的想法!
avatar-img
Hansen W的沙龍
9會員
274內容數
AIHANS沙龍是一個結合AI技術實戰、產業策略與自我成長的知識平台,主題涵蓋機器學習、生成式AI、創業經驗、財務規劃及哲學思辨。這裡不只提供系統化學習資源與實作案例,更強調理性思維與行動力的結合。無論你是AI初學者、創業者,還是追求人生升維的行者,都能在這裡找到前進的方向與志同道合的夥伴。
Hansen W的沙龍的其他內容
2025/05/28
想秒懂 KNN?本篇以動畫式圖解+Python 實作,教你選 K 值、避維度詛咒,並比較各主流模型優劣,讓你迅速掌握懶惰學習精髓,啟動非線性分類第一步;從距離計算、決策邊界到優缺點與實戰建議一應俱全,讀完立即上手!
Thumbnail
2025/05/28
想秒懂 KNN?本篇以動畫式圖解+Python 實作,教你選 K 值、避維度詛咒,並比較各主流模型優劣,讓你迅速掌握懶惰學習精髓,啟動非線性分類第一步;從距離計算、決策邊界到優缺點與實戰建議一應俱全,讀完立即上手!
Thumbnail
2025/05/28
想以最低門檻踏入分類?本章用邏輯回歸貫穿機率思維、Sigmoid與Python實作,教你一節課掌握二元分類、混淆矩陣、AUC與ROC曲線,並示範閾值調整及決策邊界視覺化,醫療、金融、郵件過濾都能即刻上手,為XGBoost與深度學習奠定扎實基礎。
Thumbnail
2025/05/28
想以最低門檻踏入分類?本章用邏輯回歸貫穿機率思維、Sigmoid與Python實作,教你一節課掌握二元分類、混淆矩陣、AUC與ROC曲線,並示範閾值調整及決策邊界視覺化,醫療、金融、郵件過濾都能即刻上手,為XGBoost與深度學習奠定扎實基礎。
Thumbnail
2025/05/28
想快速掌握分類精髓?本單元用淺顯範例拆解二元與多類別分類差異,從 Sigmoid、Softmax 理論到 Python 實作一步到位,再附模型選擇心法,助你從醫療判斷到影像辨識都能精準出擊,是初學到進階必讀的 AI 分類寶典!
Thumbnail
2025/05/28
想快速掌握分類精髓?本單元用淺顯範例拆解二元與多類別分類差異,從 Sigmoid、Softmax 理論到 Python 實作一步到位,再附模型選擇心法,助你從醫療判斷到影像辨識都能精準出擊,是初學到進階必讀的 AI 分類寶典!
Thumbnail
看更多
你可能也想看
Thumbnail
在小小的租屋房間裡,透過蝦皮購物平臺採購各種黏土、模型、美甲材料等創作素材,打造專屬黏土小宇宙的療癒過程。文中分享多個蝦皮挖寶地圖,並推薦蝦皮分潤計畫。
Thumbnail
在小小的租屋房間裡,透過蝦皮購物平臺採購各種黏土、模型、美甲材料等創作素材,打造專屬黏土小宇宙的療癒過程。文中分享多個蝦皮挖寶地圖,並推薦蝦皮分潤計畫。
Thumbnail
小蝸和小豬因購物習慣不同常起衝突,直到發現蝦皮分潤計畫,讓小豬的購物愛好產生價值,也讓小蝸開始欣賞另一半的興趣。想增加收入或改善伴侶間的購物觀念差異?讓蝦皮分潤計畫成為你們的神隊友吧!
Thumbnail
小蝸和小豬因購物習慣不同常起衝突,直到發現蝦皮分潤計畫,讓小豬的購物愛好產生價值,也讓小蝸開始欣賞另一半的興趣。想增加收入或改善伴侶間的購物觀念差異?讓蝦皮分潤計畫成為你們的神隊友吧!
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 回顧 AI說書 - 從0開始 - 129 中說,Bidirectional Encoder Representations from Transformers (BER
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 回顧 AI說書 - 從0開始 - 129 中說,Bidirectional Encoder Representations from Transformers (BER
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 Vaswani 等人 2017 年解決了設計 Transformer 時最困難的 NLP 問題之一,對於我們人機智慧設計師來說,機器翻譯的人類基準似乎遙不可及,然而,這
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 Vaswani 等人 2017 年解決了設計 Transformer 時最困難的 NLP 問題之一,對於我們人機智慧設計師來說,機器翻譯的人類基準似乎遙不可及,然而,這
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 延續 AI說書 - 從0開始 - 93 介紹了 The Corpus of Linguistic Acceptability (CoLA),其核心思想為:如果該句子在語
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 延續 AI說書 - 從0開始 - 93 介紹了 The Corpus of Linguistic Acceptability (CoLA),其核心思想為:如果該句子在語
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 延續 AI說書 - 從0開始 - 93 介紹了 The Corpus of Linguistic Acceptability (CoLA),其核心思想為:如果該句子在語
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 延續 AI說書 - 從0開始 - 93 介紹了 The Corpus of Linguistic Acceptability (CoLA),其核心思想為:如果該句子在語
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 回顧 AI說書 - 從0開始 - 87 說:Wang 等人 2019 年的論文,提供了合理答案的選擇 (Choice of Plausible Answers, COP
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 回顧 AI說書 - 從0開始 - 87 說:Wang 等人 2019 年的論文,提供了合理答案的選擇 (Choice of Plausible Answers, COP
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 回顧 AI說書 - 從0開始 - 87 說:Wang 等人 2019 年的論文,提供了合理答案的選擇 (Choice of Plausible Answers, COP
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 回顧 AI說書 - 從0開始 - 87 說:Wang 等人 2019 年的論文,提供了合理答案的選擇 (Choice of Plausible Answers, COP
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 回顧 AI說書 - 從0開始 - 87 說:Wang 等人 2019 年的論文,提供了合理答案的選擇 (Choice of Plausible Answers, COP
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 回顧 AI說書 - 從0開始 - 87 說:Wang 等人 2019 年的論文,提供了合理答案的選擇 (Choice of Plausible Answers, COP
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 回顧 AI說書 - 從0開始 - 87 說:Wang 等人 2019 年的論文,提供了合理答案的選擇 (Choice of Plausible Answers, COP
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 回顧 AI說書 - 從0開始 - 87 說:Wang 等人 2019 年的論文,提供了合理答案的選擇 (Choice of Plausible Answers, COP
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 從 AI說書 - 從0開始 - 82 到 AI說書 - 從0開始 - 85 的說明,有一個很重要的結論:最適合您的模型不一定是排行榜上最好的模型,您需要學習 NLP 評
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 從 AI說書 - 從0開始 - 82 到 AI說書 - 從0開始 - 85 的說明,有一個很重要的結論:最適合您的模型不一定是排行榜上最好的模型,您需要學習 NLP 評
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 繼 AI說書 - 從0開始 - 82 與 xxx ,我們談論了衡量 AI 模型的方式,那當你訓練的模型比 State-of-the-Art 還要好並想要進行宣稱時,需要
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 繼 AI說書 - 從0開始 - 82 與 xxx ,我們談論了衡量 AI 模型的方式,那當你訓練的模型比 State-of-the-Art 還要好並想要進行宣稱時,需要
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News