1. logistic回歸
手動求導
2. svm支援向量機
現在假設有兩類線性可分的樣本,一類圈圈,一類叉叉。分類問題就是要找乙個超平面,將這兩類分開,但是能分割開這兩類的超平面有很多,如下面的圖所示。感知機演算法就是隨機的找到乙個能夠分開的超平面,它並不關心這個超平面如何。下面三個圖中,直覺上感覺,第三個超平面是最理想的。
那麼為什麼第三個超平面是最理想的呢?原因是測試集上的樣本是我們觀測得到的資料,而觀測到的資料和它真實分布是有一定的誤差的,下面三個圖中灰色的圓圈表示了每個平面能夠容忍誤差的大小,當誤差超過這個圓圈的範圍,分割面就要犯錯誤了,所以第三個圖的容忍誤差的能力是最強的。這是從直觀上的乙個解釋,下面推導svm的過程中會解釋為什麼這個是最佳的分割面。
這樣,能容忍誤差的能力最大的那個超平面是我們要的,定義margin為,由分割平面開始往兩邊推,到碰到樣本點時候的距離。如下面的圖所示,黃色部分即為margin。
以下是幾種常用的核函式表示:
線性核(linear kernel)
多項式核(polynomial kernel)
徑向基核函式(radial basis function)
也叫高斯核(gaussian kernel)
,因為可以看成如下核函式的領乙個種形式:
3.lr和svm的異同
相同點:
1,lr和svm都是分類演算法。
2,如果不考慮核函式,lr和svm都是線性分類演算法,即分類決策面都是線性的。
3,lr和svm都是監督學習演算法。
不同點:
1,本質上是其loss function不同。
2,支援向量機只考慮區域性的邊界線附近的點,而邏輯回歸考慮全域性(遠離的點對邊界線的確定也起作用)。
線性svm不直接依賴於資料分布,分類平面不受一類點影響;lr則受所有資料點的影響,如果資料不同類別strongly unbalance,一般需要先對資料做balancing。
3,在解決非線性問題時,支援向量機採用核函式的機制,而lr通常不採用核函式的方法。
這個問題理解起來非常簡單。分類模型的結果就是計算決策面,模型訓練的過程就是決策面的計算過程。通過上面的第二點不同點可以了解,在計算決策麵時,svm演算法裡只有少數幾個代表支援向量的樣本參與了計算,也就是只有少數幾個樣本需要參與核計算(即kernal machine解的係數是稀疏的)。然而,lr演算法裡,每個樣本點都必須參與決策面的計算過程,也就是說,假設我們在lr裡也運用核函式的原理,那麼每個樣本點都必須參與核計算,這帶來的計算複雜度是相當高的。所以,在具體應用時,lr很少運用核函式機制。
4,線性svm依賴資料表達的距離測度,所以需要對資料先做normalization,lr不受其影響。
5,svm的損失函式就自帶正則!!!(損失函式中的1/2||w||^2項),這就是為什麼svm是結構風險最小化演算法的原因!!!而lr必須另外在損失函式上新增正則項!!!
python 程式設計中遇到的基本問題
1.怎樣查詢函式的定義?help str.startswith help on method descriptor startswith s.startswith prefix start end bool return true if s starts with the specified pre...
機器學習基本概念和模型訓練基本問題
二叉樹很容易理解,在這裡我們一般用滿二叉樹 就是非葉子節點都有2個分支的樹形資料結構 決策樹最初是用來做決策用的,就好像下面的見不見相親物件的決策過程一樣 如果把最後的決策結果看成是分類,那麼決策樹就可以用來分類了,例如,下面的例子就是把相親物件分為見和不見兩種。假如下面是你是否見相親物件的決策樹,...
mysql 的基本問題 MySQL 基本問題整理
整理 mysql 安裝部署運維問題解決優化記錄。1 安裝 系統為 centos7 1 rpm 包方式安裝yum install wget wget wget 解壓到某個路徑,安裝全部的 rpm 包yum install mysql rpm 2 yum 庫方式安裝 可參考官網切換版本 rpm ivh ...