文章目錄
概述
基本推導和理論還是以看李航老師的《統計學習方法》為主。
各種算法的原理,推薦理解到可以手撕的程度。
以下為通過網絡資源搜集整理的一些問題及答案,准備的有些倉促,沒能記錄所有資料的來源(侵刪)
logistics公式及推導
https://download.csdn.net/download/yolohohohoho/10972162
LR為什么用sigmoid函數, 為什么不用其他函數?
邏輯回歸模型基於不同於線性回歸的、關於因變量y和自變量x之間關系的假設。特別的,這兩種模型的區別可以在以下兩個邏輯回歸的特性中看出來:
- 邏輯回歸的條件分布y|x是伯努利分布,而線性回歸的是高斯分布,因為邏輯回歸的因變量是二元變量(0或1)。
- 邏輯回歸要預測的值是概率,因此要通過邏輯分布函數約束到(0,1)區間,因為邏輯回歸預測的是某個輸出值(0或1)的概率。
邏輯回歸是廣義線性回歸的一個特例。在廣義線性回歸中,我們認為數據並不是只能服從正態分布,而可以是其他分布,只要他來自於指數族。如果y是二元變量,則很自然地認為他服從二項分布。我們不能簡單地認為E[Y|X]=Xβ,所以我們在他外面加了一個變換——η(E[Y|X])=Xβ。 η(⋅)被稱為link function。當y是二元變量時,η(⋅)就是logit,因為p(y|p)=exp{ylog(p/(1−p))+log(1−p)}。η§=log(p/(1−p)。
https://www.zhihu.com/question/35322351
之所以要選擇canonical link function 是為了簡便計算,使得所有GLM模型對參數的極大似然估計具有相同的形式(正則方程)。
這個函數有什么優點和缺點?
優點
- 輸入范圍是−∞→+∞−∞→+∞ ,而之於剛好為(0,1),正好滿足概率分布為(0,1)的要求。我們用概率去描述分類器,自然比單純的某個閾值要方便很多;
- 單調上升的函數,具有良好的連續性,不存在不連續點。
- 函數關於(0,0.5) 中心對稱
缺點
- 冪運算相對耗時
- sigmoid 函數反向傳播時,很容易就會出現梯度消失的情況
邏輯斯蒂回歸怎么實現多分類?
- Softmax Regression
- K Binary Classifiers
Softmax vs k binary classifiers
This will depend on whether the four classes are mutually exclusive
Softmax公式
邏輯回歸估計參數時的目標函數,如果加上一個先驗的服從高斯分布的假設,會是什么樣?
相當於求最大后驗概率
MAP與ML最大的不同在於p(參數)項,所以可以說MAP是正好可以解決ML缺乏先驗知識的缺點,將先驗知識加入后,優化損失函數。
其實p(參數)項正好起到了正則化的作用。如:如果假設p(參數)服從高斯分布,則相當於加了一個L2 norm;如果假設p(參數)服從拉普拉斯分布,則相當於加了一個L1 norm。
LR和SVM有什么區別?
-
相同點:
- 都是監督的分類算法
- 都是線性分類方法(LR也是可以加核函數)
- 都是判別模型
判別模型和生成模型是兩個相對應的模型。
判別模型是直接生成一個表示P(Y|X)P(Y|X)或者Y=f(X)Y=f(X)的判別函數(或預測模型)
生成模型是先計算聯合概率分布P(Y,X)P(Y,X)然后通過貝葉斯公式轉化為條件概率。
SVM和LR,KNN,決策樹都是判別模型,而朴素貝葉斯,隱馬爾可夫模型是生成模型。
生成算法嘗試去找到底這個數據是怎么生成的(產生的),然后再對一個信號進行分類。基於你的生成假設,那么那個類別最有可能產生這個信號,這個信號就屬於那個類別。判別模型不關心數據是怎么生成的,它只關心信號之間的差別,然后用差別來簡單對給定的一個信號進行分類。
-
不同點:
- LR的損失函數是cross entropy
- SVM的損失函數是最大化間隔距離
不同的loss function代表了不同的假設前提,也就代表了不同的分類原理
LR方法基於概率理論,假設樣本為0或者1的概率可以用sigmoid函數來表示,然后通過極大似然估計的方法估計出參數的值,或者從信息論的角度來看,其是讓模型產生的分布P(Y|X)P(Y|X)盡可能接近訓練數據的分布,相當於最小化KL距離(因為KL距離展開后,后一項為常數,剩下的一項就是cross entropy)。
支持向量機基於幾何間隔最大化原理,認為存在最大幾何間隔的分類面為最優分類面
所以SVM只考慮分類面上的點,而LR考慮所有點,SVM中,在支持向量之外添加減少任何點都對結果沒有影響,而LR則是每一個點都會影響決策。
Linear SVM不直接依賴於數據分布,分類平面不受一類點影響
LR則是受所有數據點的影響,所以受數據本身分布影響的,如果數據不同類別strongly unbalance,一般需要先對數據做balancing。
SVM不能產生概率,LR可以產生概率
LR本身就是基於概率的,所以它產生的結果代表了分成某一類的概率,而SVM則因為優化的目標不含有概率因素,所以其不能直接產生概率(雖然現有的工具包,可以讓SVM產生概率,但是那不是SVM原本自身產生的,而是在SVM基礎上建立了一個別的模型,當其要輸出概率的時候,還是轉化為LR)
SVM甚至是SVR本質上都不是概率模型,因為其基於的假設就不是關於概率的
SVM依賴於數據的測度,而LR則不受影響
因為SVM是基於距離的,而LR是基於概率的,所以LR是不受數據不同維度測度不同的影響,而SVM因為要最小化12||w||212||w||2所以其依賴於不同維度測度的不同,如果差別較大需要做normalization
當然如果LR要加上正則化時,也是需要normalization一下的
如果不歸一化,各維特征的跨度差距很大,目標函數就會是“扁”的,在進行梯度下降的時候,梯度的方向就會偏離最小值的方向,走很多彎路。
SVM會用核函數而LR一般不用核函數的原因
SVM轉化為對偶問題后,分類只需要計算與少數幾個支持向量的距離,這個在進行復雜核函數計算時優勢很明顯,能夠大大簡化模型和計算量。
而LR則每個點都需要兩兩計算核函數,計算量太過龐大。
LR和SVM在實際應用的區別
根據經驗來看,對於小規模數據集,SVM的效果要好於LR,但是大數據中,SVM的計算復雜度受到限制,而LR因為訓練簡單,可以在線訓練,所以經常會被大量采用。
libsvm和liblinear有什么區別?
http://blog.sina.com.cn/s/blog_5b29caf7010127vh.html
Logistics vs 隨機森林 vs SVM
- 模型
- 損失函數
- 優缺點
- 應用場景
邏輯回歸適用於處理接近線性可分的分類問題
如果邊界是非線性的,並且能通過不斷將特征空間切分為矩形來模擬,那么決策樹是比邏輯回歸更好的選擇。
邏輯回歸算法對於數據中小噪聲的魯棒性很好,並且不會受到輕微的多重共線性的特別影響。嚴重的多重共線性則可以使用邏輯回歸結合L2正則化來解決,不過如果要得到一個簡約模型,L2正則化並不是最好的選擇,因為它建立的模型涵蓋了全部的特征
邏輯回歸的優點:
• 便利的觀測樣本概率分數;
• 已有工具的高效實現;
• 對邏輯回歸而言,多重共線性並不是問題,它可以結合L2正則化來解決;
• 邏輯回歸廣泛的應用於工業問題上(這一點很重要)。
邏輯回歸的缺點:
• 當特征空間很大時,邏輯回歸的性能不是很好;
• 不能很好地處理大量多類特征或變量;
• 對於非線性特征,需要進行轉換;
• 依賴於全部的數據(個人覺得這並不是一個很嚴重的缺點)。
決策樹的優點:
• 直觀的決策規則
• 可以處理非線性特征
• 考慮了變量之間的相互作用
決策樹的缺點:
• 訓練集上的效果高度優於測試集,即過擬合[隨機森林克服了此缺點]
• 沒有將排名分數作為直接結果
隨機森林優點
1、在當前的很多數據集上,相對其他算法有着很大的優勢,表現良好
2、它能夠處理很高維度(feature很多)的數據,並且不用做特征選擇
3、在訓練完后,它能夠給出哪些feature比較重要
4、 在創建隨機森林的時候,對generlization error使用的是無偏估計,模型泛化能力強
5、訓練速度快,容易做成並行化方法,訓練時樹與樹之間是相互獨立的
6、 在訓練過程中,能夠檢測到feature間的互相影響
7、 實現比較簡單
8、 對於不平衡的數據集來說,它可以平衡誤差。
1)每棵樹都選擇部分樣本及部分特征,一定程度避免過擬合;
2)每棵樹隨機選擇樣本並隨機選擇特征,使得具有很好的抗噪能力,性能穩定;
對缺失值不敏感,如果有很大一部分的特征遺失,仍可以維持准確度
隨機森林有out of bag,不需要單獨換分交叉驗證集
。
隨機森林缺點:
1) 參數較復雜;
2) 模型訓練和預測都比較慢。
SVM的優點:
• 能夠處理大型特征空間
• 能夠處理非線性特征之間的相互作用
• 無需依賴整個數據
SVM的缺點:
• 當觀測樣本很多時,效率並不是很高
• 有時候很難找到一個合適的核函數
為此,我試着編寫一個簡單的工作流,決定應該何時選擇這三種算法,流程如下:
• 首當其沖應該選擇的就是邏輯回歸,如果它的效果不怎么樣,那么可以將它的結果作為基准來參考;
• 然后試試決策樹(隨機森林)是否可以大幅度提升模型性能。即使你並沒有把它當做最終模型,你也可以使用隨機森林來移除噪聲變量;
• 如果特征的數量和觀測樣本特別多,那么當資源和時間充足時,使用SVM不失為一種選擇。
