svm算法:
SVM本身是一個強分類器,他的目的是找到最優(yōu)的超平面,SVM思想:找到一個超平面,如果可以使得最不確性樣本最確性,可能就找到一個最優(yōu)的超平面
SVM這個算法很慢
正確分類的點來說,幾何間隔就是點到超平面的距離
點到線的距離越小,幾何間隔越小,確性度就越小
損失函數(shù)就是最大化最小的幾何間隔
svm算法會強行不讓分類點落在超平面上
確信度的理解:
1. 沒有通過距離來描述確性度
2. 通過幾何間隔來描述確性度
3. 很巧的是,只有倍正確分類的點來說,距離=確信度,誤分類點的幾何間隔等于距離的負數(shù)
svm損失函數(shù)的作用:
在線性可分的情況下,svn第一個解決的問題就是將所有的樣本點正確分類
第二個解決的是在所有的超平面中找到一個最好的超平面
拉格朗日:
拉格朗日的約束條件必須是<=0
拉個朗日做的是最小化的問題
svm的求解結(jié)果:
1. SVM的求解結(jié)果,結(jié)果會有2個超平面,wx+b = 1, wx+b = -1, 稱之為間隔邊界,間隔邊界內(nèi)沒有任何樣本點,這個情況下,稱之為硬間隔
2. 每一個樣本點都會被分配到一個ai, 在間隔邊界上的點,ai > 0, 在間隔邊界外的點,ai =0。
3. 最后真正去計算w,b的值,真正起到計算的是ai > 0的點,這些點的信息,決定了最后w和b的值的信息。它們的信息最終支持了超平面位置的計算,將它們稱之為支持向量。
4. 至少有一對支持向量,可以出現(xiàn)多個支持向量
數(shù)據(jù)線性不可分:
在數(shù)據(jù)線性不可分的情況下,可以使用軟間隔來進行分類
1. 如果點很雜, 并且很可能無法線性可分
2. 引入松弛,從而讓條件不再那么嚴格,從而允許間隔邊界內(nèi)出現(xiàn)點,甚至出誤分類點。
3. 為了不然松弛太張狂,將松弛進行懲罰,如何懲罰,就是在損失函數(shù)中+C * 松弛就可以了。
4. 當前我們的間隔邊界就由硬間隔,變成了軟間隔
對于非線性問題:
可以將維度升高,在高維的情況下嘗試去找一個超平面
1. 升緯很簡單,但是升緯代價太大了,首先要每一個樣本都要做維度的升高,第二個地方就是在高緯空間下,每兩個本直接都要做點乘,本維度就大,計算過程時間非常長。很有1個2位維度空間,可能會升高高1000個維度下。
2. kernel是一些特別巧妙的函數(shù),這些函數(shù)最簡單功能就是升維,但是它可能很方便幫助解決維度災(zāi)難
3. 可以直接在低緯度空間下做樣本和樣本的點乘,對結(jié)果進行簡單的處理,就可以直接得到在高緯度空間樣本點乘的結(jié)果,就沒有任何的必要去做升維了。
簡介kernel理解
1. kernel可以幫助我們在高緯空間下找到一個超平面解決當前維度下線性不可分的數(shù)據(jù)
2. kernel沒有必要做升維,簡便計算‘
所有核函數(shù)中rbf的效果是最好的
在出現(xiàn)數(shù)據(jù)不平衡的問題的時候,可以和決策樹一樣通過class_weight進行權(quán)重的設(shè)置
核函數(shù):
在做核函數(shù)時,需要對所有連續(xù)型的變量進行去量綱的處理








暫無數(shù)據(jù)