向量遍歷 機器學習實戰專案 支援向量機

2021-10-14 21:45:54 字數 2741 閱讀 6379

支援向量機(support vector machines, svm):是一種機器學習演算法。

支援向量機 場景

支援向量機 原理

svm 工作原理

對於上述的蘋果和香蕉,我們想象為2種水果型別的炸彈。(保證距離最近的炸彈,距離它們最遠)

尋找最大分類間距

轉而通過拉格朗日函式求優化的問題

尋找最大間隔

為什麼尋找最大間隔

怎麼尋找最大間隔

點到超平面的距離

鬆弛變數(slack variable)

smo 高效優化演算法

序列最小優化(sequential minimal optimization, smo)

smo用途:用於訓練 svm

smo目標:求出一系列 alpha 和 b,一旦求出 alpha,就很容易計算出權重向量 w 並得到分隔超平面。

smo思想:是將大優化問題分解為多個小優化問題來求解的。

smo原理:每次迴圈選擇兩個 alpha 進行優化處理,一旦找出一對合適的 alpha,那麼就增大乙個同時減少乙個。

這裡指的合適必須要符合一定的條件

這兩個 alpha 必須要在間隔邊界之外

這兩個 alpha 還沒有進行過區間化處理或者不在邊界上。

smo 偽**大致如下:

建立乙個 alpha 向量並將其初始化為0向量當迭代次數小於最大迭代次數時(外迴圈) 對資料集中的每個資料向量(內迴圈): 如果該資料向量可以被優化 隨機選擇另外乙個資料向量 同時優化這兩個向量 如果兩個向量都不能被優化,退出內迴圈 如果所有向量都沒被優化,增加迭代數目,繼續下一次迴圈
svm 開發流程

收集資料:可以使用任意方法。準備資料:需要數值型資料。分析資料:有助於視覺化分隔超平面。訓練演算法:svm的大部分時間都源自訓練,該過程主要實現兩個引數的調優。測試演算法:十分簡單的計算過程就可以實現。使用演算法:幾乎所有分類問題都可以使用svm,值得一提的是,svm本身是乙個二類分類器,對多類問題應用svm需要對**做一些修改。
svm 演算法特點

優點:泛化(由具體的、個別的擴大為一般的,就是說:模型訓練完後的新樣本)錯誤率低,計算開銷不大,結果易理解。缺點:對引數調節和核函式的選擇敏感,原始分類器不加修改僅適合於處理二分類問題。使用資料型別:數值型和標稱型資料。
課本案例(無核函式)專案概述對小規模資料點進行分類

開發流程

收集資料

3.5424851.977398-13.0188962.556416-17.551510-1.58003012.114999-0.004466-18.1271131.2743721
準備資料

分析資料: 無

訓練演算法

def smo******(datamatin, classlabels, c, toler, maxiter): """smo****** args: datamatin 特徵集合 classlabels 類別標籤 c 鬆弛變數(常量值),允許有些資料點可以處於分隔面的錯誤一側。 控制最大化間隔和保證大部分的函式間隔小於1.0這兩個目標的權重。 可以通過調節該引數達到不同的結果。 toler 容錯率(是指在某個體系中能減小一些因素或選擇對某個系統產生不穩定的概率。) maxiter 退出前最大的迴圈次數 returns: b 模型的常量值 alphas 拉格朗日乘子 """ datamatrix = mat(datamatin) # 矩陣轉置 和 .t 一樣的功能 labelmat = mat(classlabels).transpose() m, n = shape(datamatrix) # 初始化 b和alphas(alpha有點類似權重值。) b = 0 alphas = mat(zeros((m, 1))) # 沒有任何alpha改變的情況下遍歷資料的次數 iter = 0 while (iter < maxiter): # w = calcws(alphas, datamatin, classlabels) # print("w:

機器學習實戰 支援向量機

有些人認為svm是最好的現成的分類器,這裡說的現成值得是分類器不加修改即可直接使用。同時,這意味著在資料上應用基本形式的svm分類器就可以得到低錯誤率的結果。svm能夠對訓練集之外的資料點作出很好的分類決策。svm有很多實現,本章只關注其中最流行的一種實現,即序列最小優化 smo 演算法。優點 泛化...

機器學習實戰 機器學習實戰 支援向量機(一)

從分類效力來講,svm在無論線性還是非線性分類中,都十分出色 現在桌子上有一些雜亂的 小球 我們想要將他們分開 我們可以放一根棒棒上去 是不是看起來還行,小棍將藍色球和紅色球分開。但這時,又有個人把一顆紅色的小球放在了棍子的另一邊,這樣就有乙個球似乎落在了錯誤的一側,我們可能需要調整棒棒 所謂,sv...

機器學習實戰 初識支援向量機 SVM

svm 支援向量機。支援向量機,其含義是通過支援向量運算的分類器。其中 機 的意思是機器,可以理解為分類器。它是一種二類分類模型,其基本模型定義為特徵空間上的間隔最大的線性分類器,其學習策略便是間隔最大化,最終可轉化為乙個凸二次規劃問題的求解。給定訓練樣本集d y 我 分類學習的基本思想是基於訓練集...