[機器學習][監督式][資料分群] 支持向量機 (Support Vector Machine, SVM)

閱讀時間約 8 分鐘

I. 前言

支持向量機 (Support Vector Machine, 簡稱SVM),是一種將資料分群的機器學習方法。

屬於監督式學習 (supervised learning),因為:

  1. 給定已標記的數據 (labeled data),SVM可以透過訓練得到分類器模型 (classifier model)。
  2. 對於未標記的數據 (unlabeled data),可以利用訓練好的SVM模型來預測未知數據的類別。

II. 原理

在二維平面上,有紅色與藍色兩種顏色的球 (可視為已標記的數據)。

二維平面SVM分類原理

二維平面SVM分類原理

圖上有三條線 (H1、H2、H3),若想用其中一條線將紅藍球分開,

哪一條是最佳的呢? 一起來看看!

  • H1: 無法分開紅、藍球,不考慮。
  • H2: 雖可以將紅、藍球分開,但有沒有更好的選擇?
  • H3: 可以準確地將紅、藍球分開,且向量到距離最近的紅、藍球已最大化,此二向量也作為支持向量 (support vector),其之間的空隙稱為margin,最大化空隙 (maximised margin)視為最佳解。

由上述例子可知,若想找到最佳的分割線 (二維空間)分割平面 (三維空間)需要將支持向量之間的margin最大化 (SVM最主要的核心概念)

III. SVM學習動畫

展示在多維空間找到分割平面的過程。

IV. 範例 (鳶尾花分類)

  1. 載入iris資料集
  2. 70%、30%切分訓練集 (train set)與測試集 (test set)
  3. 以訓練集的特徵 (花萼、花瓣長度與寬度)、類別 (花的種類)訓練SVM模型
    (因為是分類問題,這裡用是使用Support Vector Classifier, SVC)
  4. 訓練完成後,用測試集的特徵預測花的種類
  5. 評估正確率
  6. 視覺化:
    - 用花萼長度與寬度作圖呈現訓練集與測試集的種類分布
    - 測試集種類分布圖上標記黃色星為預測錯誤的點
    (亦可用其他特徵作圖,有多種呈現方式)
訓練集種類分布

訓練集種類分布

測試集種類分布

測試集種類分布

V. 程式碼 (python)

import pandas as pd
import matplotlib.pyplot as plt
import os
from sklearn.model_selection import train_test_split
from sklearn import datasets
from sklearn.svm import SVC
from sklearn.metrics import accuracy_score

#%% 取得當前程式放置目錄
current_path = os.getcwd()

#%% 載入iris資料集
iris = datasets.load_iris()

#%% 抓出資料特徵與種類標記
features = pd.DataFrame(iris.data, columns = iris.feature_names)
species = pd.DataFrame(iris.target, columns = ['species'])

#%% 以70%/30%拆分訓練集與測試集
x_train, x_test, y_train, y_test = train_test_split(features, species, test_size = 0.3)

train_set = pd.concat([x_train, y_train], axis = 1).reset_index(drop = True)
test_set = pd.concat([x_test, y_test], axis = 1).reset_index(drop = True)

#%% SVM訓練
svc = SVC()
svc.fit(train_set[iris.feature_names], train_set['species'])

y_pred = svc.predict(test_set[iris.feature_names])
test_set['species_pred'] = y_pred

# SVM分類準確率
SVM_accuracy = round(accuracy_score(test_set['species_pred'], test_set['species']), 4)
print(f'SVM accuracy: {round(SVM_accuracy * 100, 2)}%')

#%% 以花萼長度(sepal length)與花萼寬度(sepal width)作圖
### 畫出訓練集的群集分布
plt.figure()
for i in range(3):
if i == 0: c = 'blue'
if i == 1: c = 'red'
if i == 2: c = 'black'

item = train_set[train_set['species'] == i]
plt.scatter(item[iris.feature_names[0]], item[iris.feature_names[1]], color = c, label = f'species {i}')

plt.legend()
plt.xlabel(f'{iris.feature_names[0]}')
plt.ylabel(f'{iris.feature_names[1]}')
plt.title('(Train set) clustering distribution')
plt.savefig(current_path + '\\train set_clustering distribution.jpeg')

### 畫出測試集的群集分布,以及標記SVM預測錯誤的點
plt.figure()
for i in range(3):
if i == 0: c = 'blue'
if i == 1: c = 'red'
if i == 2: c = 'black'

item = test_set[test_set['species'] == i]
plt.scatter(item[iris.feature_names[0]], item[iris.feature_names[1]], color = c, marker = 's', label = f'species {i}')

item_pred_error = test_set[test_set['species_pred'] != test_set['species']]
if len(item_pred_error) != 0:
plt.scatter(item_pred_error[iris.feature_names[0]], item_pred_error[iris.feature_names[1]], color = 'orange', marker = '*', s = 100, label = 'error prediction')

plt.legend()
plt.xlabel(f'{iris.feature_names[0]}')
plt.ylabel(f'{iris.feature_names[1]}')
plt.title('(Test set) clustering distribution')
plt.savefig(current_path + '\\test set_clustering distribution.jpeg')


參考資料

  1. Ch. 1. 什麼是人工智慧
3會員
1內容數
留言0
查看全部
發表第一個留言支持創作者!
你可能也想看
Google News 追蹤
Thumbnail
接下來第二部分我們持續討論美國總統大選如何佈局, 以及選前一週到年底的操作策略建議 分析兩位候選人政策利多/ 利空的板塊和股票
Thumbnail
🤔為什麼團長的能力是死亡筆記本? 🤔為什麼像是死亡筆記本呢? 🤨作者巧思-讓妮翁死亡合理的幾個伏筆
Thumbnail
這篇文章深入探討了數據科學與機器學習中的主要聚類算法,包括 K-means、DBSCAN 和層次聚類。介紹了每種算法的工作原理、優缺點及其適用場景,幫助讀者理解何時選擇何種聚類技術。本文還提供了相關的程式碼範例,方便讀者進一步學習與實踐。
人工智能(AI)和機器學習(ML)正在改變我們生活的方方面面,從購物推薦到醫療診斷,再到犯罪預測。我們常常認為這些技術工具是客觀公正的,能夠幫助我們擺脫人類的偏見和主觀判斷。然而,事實並非如此簡單。 讓我們從一個著名的案例說起。2018年,亞馬遜公司被爆出其招聘AI系統存在性別歧視。這個系統被
Thumbnail
監督式學習是機器學習的一種方法,通過利用標註數據進行訓練,模型學習輸入特徵與結果標籤間的關係。此方法分為分類與回歸兩類,並涵蓋了多種算法如線性回歸、邏輯回歸和決策樹等。每種算法各有優缺點,適用於不同的應用場景。學習這些內容有助於理解如何選擇合適的模型以解決實際問題。
Thumbnail
🍀🍀🍀fumi老師:❤️❤️❤️ 🥰🥰🥰今天練習的是遠距離的靈氣療癒技術,「靈氣療癒師」這項技術蘊含著無窮的珍貴價值,不僅僅能夠帶來身心靈的療癒,更能引導對於生命課題帶來的學習。 🌸🌸🌸成為一名靈氣療癒師,意味著能夠成為他人療癒的橋樑,透過能量的傳遞與平衡,協助他人釋放身心的壓
Thumbnail
🍀🍀🍀fumi老師:❤️❤️❤️ 🥰🥰🥰看著學生療瘉報告紀錄,深深地感受到原生家庭對每個人影響之深遠,靈氣療癒的深度再次的讓Fumi老師折服,很感動學生詳細的紀錄,在學習靈氣療癒後真正的落實在生活之中,更體會到將所學融入生活的重要性。 💞💞💞身邊的人,無論是親人、朋友、以及所有
Thumbnail
機器學習(Machine Learning,ML)已經在各個領域實現了令人印象深刻的成就,但同時也帶來了一系列重大的倫理挑戰。本文將深入探討這些挑戰,包括AI的偏見和公平性問題、隱私保護和數據安全,以及AI倫理的國際標準。 AI的偏見和公平性問題 1. 偏見的數據: ML模型的訓練數據可能包含偏
Thumbnail
在機器學習中,我們的目標是找到一種能夠最好地描述數據的模型。例如,在迴歸問題中,我們希望找到一種函數,該函數能以一種對我們的目標變數(例如:銷售量、股票價格等) 的最佳估計的方式,描述輸入特徵(例如:廣告支出、市場狀況等)。
Thumbnail
「其實我是屬於個性內向,不太會做令人注目事情的人。」曾擔任過康橋秀岡校區第八屆學生會副會長的林以昕如此描述自己。了解自己的個性,總是以積極學習的態度參與於校內各項活動,讓她今年以亮眼的學習歷程與成績獲得多間大學錄取,包括加州大學柏克萊分校的青睞,將前往國外朝生技產業領域的學習夢想前進。
Thumbnail
去年錄製好的線上課程,今年終於上架了! 非常慚愧,在方格子平台還沒寫幾篇內容,就要先宣傳自己的課程。不過現在67折優惠,宣傳還是有必要的吧,哈!我就維持喜寫論述的習性,介紹一下這門課程,以及我在這個領域──金融商品價格預測──所看見的狀況。 好奇的可以當補充課外知識,有興趣的可以看文末的課程連結。
Thumbnail
練習的機會是非常難得的經驗,不論是對「學員」或是「我」~ 在過程中~我都會仔細且謹慎地幫學員注意從祈請文開始-現場能量場的變化,目前學員的成長軌跡的紀錄,到整個最後的結尾~重點是-以當前學員做出來的空間結界,顏色變化/能量質地/空間的防禦程度/空間結界的持久......等等,都是我必須詳細觀察的重點
Thumbnail
接下來第二部分我們持續討論美國總統大選如何佈局, 以及選前一週到年底的操作策略建議 分析兩位候選人政策利多/ 利空的板塊和股票
Thumbnail
🤔為什麼團長的能力是死亡筆記本? 🤔為什麼像是死亡筆記本呢? 🤨作者巧思-讓妮翁死亡合理的幾個伏筆
Thumbnail
這篇文章深入探討了數據科學與機器學習中的主要聚類算法,包括 K-means、DBSCAN 和層次聚類。介紹了每種算法的工作原理、優缺點及其適用場景,幫助讀者理解何時選擇何種聚類技術。本文還提供了相關的程式碼範例,方便讀者進一步學習與實踐。
人工智能(AI)和機器學習(ML)正在改變我們生活的方方面面,從購物推薦到醫療診斷,再到犯罪預測。我們常常認為這些技術工具是客觀公正的,能夠幫助我們擺脫人類的偏見和主觀判斷。然而,事實並非如此簡單。 讓我們從一個著名的案例說起。2018年,亞馬遜公司被爆出其招聘AI系統存在性別歧視。這個系統被
Thumbnail
監督式學習是機器學習的一種方法,通過利用標註數據進行訓練,模型學習輸入特徵與結果標籤間的關係。此方法分為分類與回歸兩類,並涵蓋了多種算法如線性回歸、邏輯回歸和決策樹等。每種算法各有優缺點,適用於不同的應用場景。學習這些內容有助於理解如何選擇合適的模型以解決實際問題。
Thumbnail
🍀🍀🍀fumi老師:❤️❤️❤️ 🥰🥰🥰今天練習的是遠距離的靈氣療癒技術,「靈氣療癒師」這項技術蘊含著無窮的珍貴價值,不僅僅能夠帶來身心靈的療癒,更能引導對於生命課題帶來的學習。 🌸🌸🌸成為一名靈氣療癒師,意味著能夠成為他人療癒的橋樑,透過能量的傳遞與平衡,協助他人釋放身心的壓
Thumbnail
🍀🍀🍀fumi老師:❤️❤️❤️ 🥰🥰🥰看著學生療瘉報告紀錄,深深地感受到原生家庭對每個人影響之深遠,靈氣療癒的深度再次的讓Fumi老師折服,很感動學生詳細的紀錄,在學習靈氣療癒後真正的落實在生活之中,更體會到將所學融入生活的重要性。 💞💞💞身邊的人,無論是親人、朋友、以及所有
Thumbnail
機器學習(Machine Learning,ML)已經在各個領域實現了令人印象深刻的成就,但同時也帶來了一系列重大的倫理挑戰。本文將深入探討這些挑戰,包括AI的偏見和公平性問題、隱私保護和數據安全,以及AI倫理的國際標準。 AI的偏見和公平性問題 1. 偏見的數據: ML模型的訓練數據可能包含偏
Thumbnail
在機器學習中,我們的目標是找到一種能夠最好地描述數據的模型。例如,在迴歸問題中,我們希望找到一種函數,該函數能以一種對我們的目標變數(例如:銷售量、股票價格等) 的最佳估計的方式,描述輸入特徵(例如:廣告支出、市場狀況等)。
Thumbnail
「其實我是屬於個性內向,不太會做令人注目事情的人。」曾擔任過康橋秀岡校區第八屆學生會副會長的林以昕如此描述自己。了解自己的個性,總是以積極學習的態度參與於校內各項活動,讓她今年以亮眼的學習歷程與成績獲得多間大學錄取,包括加州大學柏克萊分校的青睞,將前往國外朝生技產業領域的學習夢想前進。
Thumbnail
去年錄製好的線上課程,今年終於上架了! 非常慚愧,在方格子平台還沒寫幾篇內容,就要先宣傳自己的課程。不過現在67折優惠,宣傳還是有必要的吧,哈!我就維持喜寫論述的習性,介紹一下這門課程,以及我在這個領域──金融商品價格預測──所看見的狀況。 好奇的可以當補充課外知識,有興趣的可以看文末的課程連結。
Thumbnail
練習的機會是非常難得的經驗,不論是對「學員」或是「我」~ 在過程中~我都會仔細且謹慎地幫學員注意從祈請文開始-現場能量場的變化,目前學員的成長軌跡的紀錄,到整個最後的結尾~重點是-以當前學員做出來的空間結界,顏色變化/能量質地/空間的防禦程度/空間結界的持久......等等,都是我必須詳細觀察的重點