A. 05 SVM - 支持向量機 - 概念、線性可分
04 SVM - 感知器模型
支持向量機(Support Vector Machine, SVM)本身是一個 二元分類演算法 ,是對感知器演算法模型的一種擴展,現在的SVM演算法支持 線性分類 和 非線性分類 的分類應用,並且也能夠直接將SVM應用於 回歸應用 中,同時通過OvR或者OvO的方式我們也可以將SVM應用在 多元分類 領域中。在不考慮集成學習演算法,不考慮特定的數據集的時候,在分類演算法中SVM可以說是特別優秀的。
在感知器模型中,演算法是在數據中找出一個劃分超平面,讓盡可能多的數據分布在這個平面的兩側,從而達到分類的效果,但是在實際數據中這個符合我們要求的超平面是可能纖悔帶存在多個的。
在感前液知毀蘆器模型中,我們可以找到多個可以分類的超平面將數據分開,並且優化時希望所有的點都離超平面盡可能的遠,但是實際上離超平面足夠遠的點基本上都是被正確分類的,所以這個是沒有意義的;反而比較關心那些離超平面很近的點,這些點比較容易分錯。所以說我們只要 讓離超平面比較近的點盡可能的遠離這個超平面 ,那麼我們的模型分類效果應該就會比較不錯。SVM其實就是這個思想。
SVM核心思想: 找到離分割超平面較近的點(預測錯誤可能會高),然後想辦法讓它們離超平面的距離遠。
PS: SVM在若干年前,當數據量還比較少的時候,SVM是最好的分類模型。但是現在隨著數據量的不斷增大,SVM模型運算速度較慢的缺點開始暴露。而且隨著這些年集成學習的不算成熟,現在SVM普遍用於集成學習中基模型的構建。
線性可分(Linearly Separable): 在數據集中,如果可以找出一個超平面,將兩組數據分開,那麼這個數據集叫做線性可分數據。
線性不可分(Linear Inseparable): 在數據集中,沒法找出一個超平面,能夠將兩組數據分開,那麼這個數據集就叫做線性不可分數據。
分割超平面(Separating Hyperplane): 將數據集分割開來的直線/平面叫做分割超平面。
間隔(Margin): 數據點到分割超平面的距離稱為間隔。
支持向量(Support Vector): 離分割超平面最近的那些點叫做支持向量。
回顧: 支持向量到超平面的距離為:
PS:在SVM中支持向量到超平面的函數距離一般設置為1;
SVM模型 是讓所有的分類點在各自類別的支持向量的兩邊,同時要求支持向量盡可能的遠離這個超平面,用 數學公式 表示如下:
1、將此時的目標函數和約束條件 使用KKT條件 轉換為拉格朗日函數,從而轉換為 無約束的優化函數 。
2、引入拉格朗日乘子後,優化目標變成:
3、根據拉格朗日對偶化特性,將該優化目標轉換為等價的對偶問題來求解,從而優化目標變成:
4、所以對於該優化函數而言,可以先求優化函數對於w和b的極小值,然後再求解對於拉格朗日乘子β的極大值。
5、首先求讓函數L極小化的時候w和b的取值,這個極值可以直接通過對函數L分別求w和b的偏導數得到:
6、將求解出來的w和b帶入優化函數L中,定義優化之後的函數如下:
7、通過對w、b極小化後,我們最終得到的優化函數只和β有關,所以此時我們可以直接極大化我們的優化函數,得到β的值,從而可以最終得到w和b的值;
8、求解w T +b中b的值。
假設存在最優解β*; 根據w、b和β的關系,可以分別計算出對應的w值和b值(使用支持向量對應的樣本點來計算,作為實際的b值, 支持向量求解出的b值是唯一解 );
這里的(xs,ys)即 支持向量 ,根據KKT條件中的對偶互補條件(鬆弛條件約束),支持向量必須滿足以下公式:
06 SVM - 線性可分SVM演算法和案例
B. 線性與非線性的區別
選擇線性還是非線性的模型,最終還是要取決於我們的數據是線性可分還是線性不可分的。
一、樣本的汪敗搭線性可分和線性不可分:
區別是看決策邊界是否是直線或者平面,線性枯大是可以用曲線擬合(回歸)的,但是線性的分類一定是一個點或一條直線或平面。
判斷數據集是否線性方法:
使用線性回歸模型進行擬合,計算最小平方誤差r2_score。如果r2_score值比較大,則意味著數據集本質上是線性的,否則數據集是非線性的。
二、模型的線性與非線性:
1、看決策邊界是否是一個點、一條直線或平面(線性函數)
2、看一個權重系數w是否隻影響1個特徵x,例如神經網路模型是非線性模型,特徵x不僅僅受一個權重困拿系數影響,因此,它的解釋性較弱
樣本線性不可分,也可以選擇線性模型,例如SVM,可以使用核函數對特徵進行映射,將特徵空間映射到高維空間中去,變得線性可分
C. 線性可分svm的基本思想
線性可分svm的基本思想
一首困、決策面方程
以二維空間為例,二維空間中任意一條直線方程可以寫為
我們將其向量化,可以得到
但是演算法本身是通過改變數據分布來達到實現,它根據每次訓練集之中每個樣本的分類正確與否,以及上次的總體分類的准確率,來判斷每個樣本的權值。
將修改過權值的新數據集送給下層分類器進行訓練,最後將每次訓練得到的分類器融合起來,作為者虧念決策分類器。使用adaboost分類器可以排除一些不必要的訓練數據特徵,並放在關鍵的訓練數據上面。
SVM(Support Vector Machine)指的是支持向量機,是常見的一種判別方法。在機器學習的領域,是一個有監督的學習模型,通常用來進行模式識別、分類以及回歸分析。
SVM的主要思想可以概括為兩空信點:
1是針對線性可分情況進行分析,對於線性不可分的情況,通過使用非線性映射演算法將低維輸入空間線性不可分的樣本轉化為高維特徵空間使其線性可分,從而使得高維特徵空間採用線性演算法對樣本的非線性特徵進行線性分析成為可能。
2是基於結構風險最小化理論之上在特徵空間中構建最優超平面,使得學習器得到全局最優化,並且在整個樣本空間的期望以某個概率滿足一定上界。
D. 請簡述線性可分svm的基本思想
SVM對於二元線性可分數據的基本原理如下;SVM 是一種二類分類模型。它的基本模型是在特徵空間中尋找間隔最大化的分離超平面的線性分類器。
1、當訓練樣本線性可分時,通過硬間隔最大化,學習一個線性分類器,臘晌即線性可分支持向量機;
2、當訓練數據近似線性可分時,引入鬆弛變數,通過軟間隔最大化,學習一個線性分類器,即線性支持向量機;當訓練數據線性不可分時,通過使用核技巧及軟間隔最大化,學習非線性支持向量機。
SVM是一個面向數輪碧鋒據的分類演算法,它的目標是為確定一個分類超平面,從而將不同的數據分隔開。擴展:支持向量機學習方法包括構建由簡至繁的模型:線性可分支持向量機、線性支持向量機及非線性支持向量機
E. 什麼是線性可分和線性不可分
線性可分就是說可以用一個線性函數把兩類樣本分開,比如二維空間中的直線、三維空間中的平面以及高維空間中的線性函數。
所謂可分指可以沒有誤差地分開;線性不可分指有部分樣本用線性分類面劃分時會產生分類誤差的情況。
在這種情況下,SVM就通過一個非線性映射函數把樣本映射到一個線性可分高維空間,在此高維空間建立線性分類面,而此高維空間的現行分類面對應的就是輸入空間中的非線性分類面。
判斷是否線性可分:不同樣本集用凸包包起來,判斷不同凸包的邊是否有交叉。
(5)什麼是線性可分的數據集擴展閱讀:
判兄氏斷線性可分和線性不可分——凸包
1、中心法
先構造一個中心點,然後將它與各點連接起來,按斜率遞增的方法,求出凸包上部;再按胡猛斜率遞減的方法,求出凸包下部。
2、水平法
從最左邊的點開始,按斜率遞增的方法,求出凸包上部;再按斜率遞減的方法,求出凸包下部。水平法較中心法減少了斜率無限大的可能,減少了代碼的復雜度。
3、快包法
選擇最左、最右、最上、最下的點,它們必組成一個凸四邊形(或三角形)。這個四邊形內的點必定不在凸包上。然後將其餘的點按最褲塵橋接近的邊分成四部分,再進行快包法(QuickHull)。