svm 是一種二類分類模型。它的基本模型是在特徵空間中尋找間隔最大化的分離超平面的線性分類器。
當訓練樣本線性可分時,通過硬間隔最大化,學習乙個線性分類器,即線性可分支援向量機;當訓練資料近似線性可分時,引入鬆弛變數,通過軟間隔最大化,學習乙個線性分類器,即線性支援向量機;當訓練資料線性不可分時,通過使用核技巧及軟間隔最大化,學習非線性支援向量機。
以上各種情況下的數學推到應當掌握,硬間隔最大化(幾何間隔)、學習的對偶問題、軟間隔最大化(引入鬆弛變數)、非線性支援向量機(核技巧)。
當訓練資料線性可分時,存在無窮個分離超平面可以將兩類資料正確分開。感知機利用誤分類最小策略,求得分離超平面,不過此時的解有無窮多個。線性可分支援向量機利用間隔最大化求得最優分離超平面,這時,解是唯一的。另一方面,此時的分隔超平面所產生的分類結果是最魯棒的,對未知例項的泛化能力最強。可以藉此機會闡述一下幾何間隔以及函式間隔的關係。
一是對偶問題往往更易求解,當我們尋找約束存在時的最優點的時候,約束的存在雖然減小了需要搜尋的範圍,但是卻使問題變得更加複雜。為了使問題變得易於處理,我們的方法是把目標函式和約束全部融入乙個新的函式,即拉格朗日函式,再通過這個函式來尋找最優點。二是可以自然引入核函式,進而推廣到非線性分類問題。
當樣本在原始空間線性不可分時,可將樣本從原始空間對映到乙個更高維的特徵空間,使得樣本在這個特徵空間內線性可分。而引入這樣的對映後,所要求解的對偶問題的求解中,無需求解真正的對映函式,而只需要知道其核函式。核函式的定義:k(x,y)=<ϕ(x),ϕ(y)>,即在特徵空間的內積等於它們在原始樣本空間中通過核函式 k 計算的結果。一方面資料變成了高維空間中線性可分的資料,另一方面不需要求解具體的對映函式,只需要給定具體的核函式即可,這樣使得求解的難度大大降低。
這裡說的缺失資料是指缺失某些特徵資料,向量資料不完整。svm 沒有處理缺失值的策略。而 svm 希望樣本在特徵空間中線性可分,所以特徵空間的好壞對svm的效能很重要。缺失特徵資料將影響訓練結果的好壞。
一般選擇線性核和高斯核,也就是線性核與 rbf 核。 線性核:主要用於線性可分的情形,引數少,速度快,對於一般資料,分類效果已經很理想了。 rbf 核:主要用於線性不可分的情形,引數多,分類結果非常依賴於引數。有很多人是通過訓練資料的交叉驗證來尋找合適的引數,不過這個過程比較耗時。 如果 feature 的數量很大,跟樣本數量差不多,這時候選用線性核的 svm。 如果 feature 的數量比較小,樣本數量一般,不算大也不算小,選用高斯核的 svm。
1、lr和svm都可以處理分類問題,且一般都用於處理線性二分類問題(在改進的情況下可以處理多分類問題)
2、兩個方法都可以增加不同的正則化項,如l1、l2等等。所以在很多實驗中,兩種演算法的結果是很接近的。
區別:1、lr是引數模型,svm是非引數模型。
2、從目標函式來看,區別在於邏輯回歸採用的是logistical loss,svm採用的是hinge loss,這兩個損失函式的目的都是增加對分類影響較大的資料點的權重,減少與分類關係較小的資料點的權重。
3、svm的處理方法是只考慮support vectors,也就是和分類最相關的少數點,去學習分類器。而邏輯回歸通過非線性對映,大大減小了離分類平面較遠的點的權重,相對提公升了與分類最相關的資料點的權重。
4、邏輯回歸相對來說模型更簡單,好理解,特別是大規模線性分類時比較方便。而svm的理解和優化相對來說複雜一些,svm轉化為對偶問題後,分類只需要計算與少數幾個支援向量的距離,這個在進行複雜核函式計算時優勢很明顯,能夠大大簡化模型和計算。
5、logic 能做的 svm能做,但可能在準確率上有問題,svm能做的logic有的做不了。
優點:由於svm是乙個凸優化問題,所以求得的解一定是全域性最優而不是區域性最優。不僅適用於線性線性問題還適用於非線性問題(用核技巧)。擁有高維樣本空間的資料也能用svm,這是因為資料集的複雜度只取決於支援向量而不是資料集的維度,這在某種意義上避免了「維數災難」。理論基礎比較完善(例如神經網路就更像乙個黑盒子)。
缺點:二次規劃問題求解將涉及m階矩陣的計算(m為樣本的個數), 因此svm不適用於超大資料集。(smo演算法可以緩解這個問題)只適用於二分類問題。(svm的推廣svr也適用於回歸問題;可以通過多個svm的組合來解決多分類問題)
String 一些問題
前言 等號 對於基本型別,比較的是值,對於引用型別,比較的是記憶體位址。1.在物件池中建立,如果常量池中已經存在則返回常量池中已經有的。private static void test1 結果 true 2.乙個在string pool中,乙個在堆中。private static void test...
C 一些問題
1 if else語句和switch case語句的效率分析對比 switch效率高。switch的效率與分支數無關,當只有分支比較少的時候,if效率比switch高,因為switch有跳轉表。分支比較多,那當然是switch 根據大量的實際程式測試 不考慮不同的編譯器優化程度差異,假設都是最好的優...
mysql 一些問題
1 中文亂碼 問題 推薦用 uft 8 編碼 適配一切介面,mysql中 發生中文亂碼時 開啟mysql 安裝路徑 更改後 重啟mysql 服務即可,有時也需要 重新匯入資料庫 可能是與 source 檔案時 編碼沒有設定好 client password your password port 33...