1. svm的原理是什麼?
svm是一種二類分類模型。它的基本模型是在特徵空間中尋找間隔最大化的分離超平面的線性分類器。(間隔最大是它有別於感知機)
(1)當訓練樣本線性可分時,通過硬間隔最大化,學習乙個線性分類器,即線性可分支援向量機;
(2)當訓練資料近似線性可分時,引入鬆弛變數,通過軟間隔最大化,學習乙個線性分類器,即線性支援向量機;
(3)當訓練資料線性不可分時,通過使用核技巧及軟間隔最大化,學習非線性支援向量機。
注:以上各svm的數學推導應該熟悉:硬間隔最大化(幾何間隔)—學習的對偶問題—軟間隔最大化(引入鬆弛變數)—非線性支援向量機(核技巧)。
2. svm為什麼採用間隔最大化?
當訓練資料線性可分時,存在無窮個分離超平面可以將兩類資料正確分開。
感知機利用誤分類最小策略,求得分離超平面,不過此時的解有無窮多個。
線性可分支援向量機利用間隔最大化求得最優分離超平面,這時,解是唯一的。另一方面,此時的分隔超平面所產生的分類結果是最魯棒的,對未知例項的泛化能力最強。
然後應該藉此闡述,幾何間隔,函式間隔,及從函式間隔—>求解最小化1/2 ||w||^2 時的w和b。即線性可分支援向量機學習演算法—最大間隔法的由來。
3. 為什麼要將求解svm的原始問題轉換為其對偶問題?
一、是對偶問題往往更易求解(當我們尋找約束存在時的最優點的時候,約束的存在雖然減小了需要搜尋的範圍,但是卻使問題變得更加複雜。為了使問題變得易於處理,我們的方法是把目標函式和約束全部融入乙個新的函式,即拉格朗日函式,再通過這個函式來尋找最優點。)
二、自然引入核函式,進而推廣到非線性分類問題。
4. 為什麼svm要引入核函式?
當樣本在原始空間線性不可分時,可將樣本從原始空間對映到乙個更高維的特徵空間,使得樣本在這個特徵空間內線性可分。
在學習**中,只定義核函式k(x,y),而不是顯式的定義對映函式ϕ。因為特徵空間維數可能很高,甚至可能是無窮維,因此直接計算ϕ(x)·ϕ(y)是比較困難的。相反,直接計算k(x,y)比較容易(即直接在原來的低維空間中進行計算,而不需要顯式地寫出對映後的結果)。
核函式的定義:k(x,y)=,即在特徵空間的內積等於它們在原始樣本空間中通過核函式k計算的結果。
5. svm rbf(高斯核)核函式的具體公式?
gamma(γ)= 1/2σ^2
γ越大( σ 越小),資料間隔越大,越線性可分。
6. 為什麼svm對缺失資料敏感?
這裡說的缺失資料是指缺失某些特徵資料,向量資料不完整。svm沒有處理缺失值的策略(決策樹有)。而svm希望樣本在特徵空間中線性可分,所以特徵空間的好壞對svm的效能很重要。缺失特徵資料將影響訓練結果的好壞。
7. svm如何處理多分類問題?
對訓練器進行組合。其中比較典型的有一對一,和一對多。
一對多,就是對每個類都訓練出乙個分類器,由svm是二分類,所以將此而分類器的兩類設定為目標類為一類,其餘類為另外一類。這樣針對k個類可以訓練出k個分類器,當有乙個新的樣本來的時候,用這k個分類器來測試,那個分類器的概率高,那麼這個樣本就屬於哪一類。這種方法效果不太好,bias比較高。
svm一對一法(one-vs-one),針對任意兩個類訓練出乙個分類器,如果有k類,一共訓練出c(2,k) 個分類器,這樣當有乙個新的樣本要來的時候,用這c(2,k) 個分類器來測試,每當被判定屬於某一類的時候,該類就加一,最後票數最多的類別被認定為該樣本的類。
8. 點到直線距離公式?
9. 什麼是支援向量?
最大化間隔在正樣本和負樣本集合上各形成乙個邊界,位於這兩個邊界上的樣本就是支援向量。後續新樣本的分類就只依賴於這些支援向量的資訊,從而降低了儲存和計算的複雜性。
10. svm怎麼防止過擬合?
引入鬆弛變數
11. lr和svm有異同嗎?
相同點
1.lr和svm都是分類演算法。
看到這裡很多人就不會認同了,因為在很大一部分人眼裡,lr是回歸演算法。我是非常不贊同這一點的,因為我認為判斷乙個演算法是分類還是回歸演算法的唯一標準就是樣本label的型別,如果label是離散的,就是分類演算法,如果label是連續的,就是回歸演算法。很明顯,lr的訓練資料的label是「0或者1」,當然是分類演算法。其實這樣不重要啦,暫且遷就我認為他是分類演算法吧,再說了,svm也可以回歸用呢。
2.如果不考慮核函式,lr和svm都是線性分類演算法,也就是說他們的分類決策面都是線性的。
這裡要先說明一點,那就是lr也是可以用核函式的,至於為什麼通常在svm中運用核函式而不在lr中運用,後面講到他們之間區別的時候會重點分析。總之,原始的lr和svm都是線性分類器,這也是為什麼通常沒人問你決策樹和lr什麼區別,決策樹和svm什麼區別,你說乙個非線性分類器和乙個線性分類器有什麼區別?
3.lr和svm都是監督學習演算法。
4.lr和svm都是判別模型。
判別模型會生成乙個表示p(y|x)的判別函式(或**模型),而生成模型先計算聯合概率p(y,x)然後通過貝葉斯公式轉化為條件概率。簡單來說,在計算判別模型時,不會計算聯合概率,而在計算生成模型時,必須先計算聯合概率。或者這樣理解:生成演算法嘗試去找到底這個資料是怎麼生成的(產生的),然後再對乙個訊號進行分類。基於你的生成假設,那麼那個類別最有可能產生這個訊號,這個訊號就屬於那個類別。判別模型不關心資料是怎麼生成的,它只關心訊號之間的差別,然後用差別來簡單對給定的乙個訊號進行分類。常見的判別模型有:knn、svm、lr,常見的生成模型有:樸素貝葉斯,隱馬爾可夫模型。當然,這也是為什麼很少有人問你樸素貝葉斯和lr以及樸素貝葉斯和svm有什麼區別(哈哈,廢話是不是太多)。
不同點
1.本質上是其loss function不同。
2.支援向量機只考慮區域性的邊界線附近的點,而邏輯回歸考慮全域性(遠離的點對邊界線的確定也起作用)。
當你讀完上面兩個**的內容,深入了解了lr和svm的原理過後,會發現影響svm決策面的樣本點只有少數的結構支援向量,當在支援向量外新增或減少任何樣本點對分類決策面沒有任何影響;而在lr中,每個樣本點都會影響決策面的結果。
支援向量機改變非支援向量樣本並不會引起決策面的變化
邏輯回歸中改變任何樣本都會引起決策面的變化
因為上面的原因,得知:線性svm不直接依賴於資料分布,分類平面不受一類點影響;lr則受所有資料點的影響,如果資料不同類別strongly unbalance,一般需要先對資料做balancing。
3.在解決非線性問題時,支援向量機採用核函式的機制,而lr通常不採用核函式的方法。
這個問題理解起來非常簡單。分類模型的結果就是計算決策面,模型訓練的過程就是決策面的計算過程。通過上面的第二點不同點可以了解,在計算決策麵時,svm演算法裡只有少數幾個代表支援向量的樣本參與了計算,也就是只有少數幾個樣本需要參與核計算(即kernal machine解的係數是稀疏的)。然而,lr演算法裡,每個樣本點都必須參與決策面的計算過程,也就是說,假設我們在lr裡也運用核函式的原理,那麼每個樣本點都必須參與核計算,這帶來的計算複雜度是相當高的。所以,在具體應用時,lr很少運用核函式機制。
11.為什麼求解對偶問題更加高效?
因為只用求解alpha係數,而alpha係數只有支援向量才非0,其他全部為0.
12.手推svm?
一文讀讀懂svm推導全過程
wap html 知識點整理(持續更新)
wap html 知識點整理 持續更新 px為固定大小 em rem為相對大小,其中em相對其父節點,rem相對html根節點 在把px轉換成rem的過程中,會在設定html的css的font size為62.5 已使得在進行px到rem的轉換中1rem 10px。但是這種方式在chrome中不起作...
RAC 知識點整理 2 持續更新
一 只取所需的filters 本段主要介紹rac訊息流的過濾器 filters類別的相關方法 rac中的filters 畫個範圍 乙個signal源可以產生一系列next值,但並非所有值都是需要的,具體的subscriber可以選擇在原有signal上套用filter操作來過濾掉不需要的值。我的定義...
機器學習 演算法面試知識點整理(持續更新中 )
1 監督學習 supervisedlearning 有類別標籤的學習,基於訓練樣本的輸入 輸出訓練得到最優模型,再使用該模型 新輸入的輸出 代表演算法 決策樹 樸素貝葉斯 邏輯回歸 knn svm 神經網路 隨機森林 adaboost 遺傳演算法 2 半監督學習 semi supervisedlea...