【机器学习基础】深入讨论机器学习 8 大回归模型的基本原理以及差异!
作者 | 臺運鵬
幾乎每個機器學習從業者都知道回歸,其中一些人可能認為這沒什么大不了的,只是從參數之間的切 換罷了。本文將闡明每種回歸算法的細節,以及確切的區別。包括 :
OLS
Weighted Least Squares
Lasso
Ridge
Polynomial Regression
Logistic regression
Support Vector Regression
Elastic Net
Bayesian Regression
RANSAC
Theil Sen
Huber Regression
Decision Tree Regression
1. 介紹
我們的數據:???,??我們打算從我們的數據集中訓練一個模型,并 在未知的測試集中測試它。算法性能良好的標準是錯誤低(從預測值到實際值的距離)。當涉及回歸任務 時,我們第一時間就會想到線性回歸。
??
這個模型是線性的并且易于實現(圖 1)。??被叫做斜率并且??被叫做截距。??解釋了當??改變的時 候??改變的程度。??意味著隨機錯誤(白色噪音),一般說來都會被省略。
2. OLS
在機器學習中,我們經常通過優化目標函數來找出最好的模型。OLS(Ordinary Least Squares) 充當 了一個很有效果的損失函數只要模型滿足六個 OLS 的必要假設。那么它就能通過優化如下的函數來找到 具有最小方差的無偏差模型。
??
2.1 首要的假設
? 線性
換句話說,只有直線是可以的。如果??和??之間的關系是非線性的,比如??,那么整個模型 就會爛掉。對付這種情況一般采用特征轉換。??和??之間的關系會永遠被改變如果采用這種方法。因此我們必須把??和??之間的 correlation 納入考慮范圍。我們可以通過計算??(決策系數)來 判斷 correlation.??代表著我們能從??預測出??的能力。??的那一列,括號里是原來未經改變的 值(表 1),對于??也一樣。注意我用??來生成了 10000 個隨機點。??代表的是噪音并且它的范圍是從 0 到 1。??遵循隨機均勻分布。如果要更進一步實施特征轉換, 多項式回歸是一個不錯的選擇。
圖1.?普通回歸模型
??
??
表1.?改變結果
如表 1 所示,應用特征變換時??發生變化,目的是找到具有最佳??的線性模型。請注意,線性 表示是??相對于改變后的??。如果是這樣,原始??和預測的??的散點圖應適合原始分布圖。此假設對于線性回歸最為重要,并且可以解釋當??和??不滿足線性關系的時候用 Ridge 或 Lasso 的 效果也很差。
多項式回歸用多項式替換原始的??,以實現比以前更線性的關系或出于某些原因更改特征。有趣的 是,它有點像泰勒展開式。當您的模型違反了線性,然后您可以嘗試所有多項式回歸找到最佳的,這 是一個很好的方法。?
如果特征維度是 2 維
-???
-???
圖2.?可視化改變結果
-???
? 常量誤差方差這意味著殘差是均勻分布的,在統計上稱為無異方差當我們應用模型時,通過觀察??可以得到一堆預測值。然后我們可以計算出預測值和真實值之間的誤差。我們還可以計算誤差的 方差。如果誤差遵循正態分布,則其方差為常數(??)。此外,其分布是對稱的。殘差的分布也應 該是均勻和對稱的,因此我們可以使用殘差圖進行檢測(圖 3),并且 QQ 圖可以檢測誤差是否遵 循正態分布。我使用的數據可以從這里下載:https://www.kaggle.com/quantbruce/real-estate-price-prediction。
我將 X2 house age 設為??,將 Y house price of unit area 設為??。請注意,我刪除了??等于 0 的點。我選擇了 200 個點作為研究。
??
??
上面第2個式子表示標準正態分布,?,。?如圖 3 所示,如果噪聲遵循正態分布,則分布應均勻, 如圖(b)所示。直方圖應該像鐘形曲線。我們可以小心得出結論,即如果誤差遵循正態分布,則噪 聲分布應適合 Q-Q 圖中的線。
在弄清楚異方差性之后,我們不知不覺會想到一個問題,即異方差如何影響我們的模型以及如何對 其進行改進。最常見的方法是嘗試特征轉換,例如 Log。如圖 4 所示,它可以在某種程度上使我們 的殘差更加穩定。它始終是嘗試的一種選擇,但不是解決問題的有效方法。
Weighted Least Squares 的性能比 OLS 好得多。相對而言,當??都等于 1 時,應該是 OLS。在 OLS 中,模型給每個點同樣的注意力。但那是它位于無異方差下,而我們遇到更多有異方差的場景。我們的想法是給那些噪音小的點更多注意。因此,模型給那些點更大的權重。
注意,我為前 20 個權重選擇了不同的值,其他權重值始終為 1。不同的權重等同于噪聲的異常分 布。如表 2 所示,模型仍為無偏見的,也就是說,截距始終為正確的。但是,斜率的標準偏差會急 劇變化。因此,我們無法使用它來得出推論并檢驗關于斜率的假設。
??
如圖 5 所示,圖(a)表示權重 =1 時 OLS 是 MLS 的特例,而圖(b)和圖(c)表示權重變化時, 截距幾乎保持不變。
圖3.?正態與非正態
表2.?斜率和截距
而且,我們可以應用 Box Cox 特征轉換,它可以使數據更接近正態分布??梢詮倪@里下載數據:https://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-white.csv。我選擇 total sulfur dioxide 作為 X,quality 作為 y. 因此,它可以減輕異方差(圖 6)。請注意,并 非總是如此一個很好的解決方案。但是我們可以在 WLS 之前嘗試使用它們。有時候,情況可能更 糟(圖 7)。
??錯誤獨立分布(無自相關)。例如,您要預測股票市場中的市場份額。但錯誤是相關的,而它們本 應為??(獨立分布)。當發生金融危機時,股票的份額將在未來幾個月內減少。可以通過 Durbin Watson Test(表 3)或繪制 textbf 自相關圖進行檢測。如果 y 的值位于在??,則為正相關。如 果值等于 0,則它們的含義是無相關。否則,它們的含義是負相關。
表3.?Durbin Watson Test
自相關會影響標準差,但不太可能影響模型的系數和截距。?
有兩種常見的解決方法。第一種方法是添加被忽律的變量。例如,您想按時間預測股票表現。無疑, 該模型具有很高的自相關性。但是,我們可以添加 S & P 500。希望它可以減輕自相關。第二種方 法是改變模型函數。您可以將線性模型轉換為平方模型。另外,也別忘了多項式回歸。
無多重共線性。如果自變量彼此相關,則數據中存在多重共線性。我們可以使用方差膨脹因子(VIF) 進行檢測(?? 是決策系數)。如果值為 1,表示預測變量之間不存在多重共線性。如果值大于 5,則 表示存在潛在的多重共線性。如果值大于 10,則表示明顯的多重共線性。
圖4.?Log 和殘差之間的關系
??
我們回歸模型的目標是通過找到合適的系數來找出自變量(??)與 因變量(??)之間的關系。但是 當存在多重共線性時,該系數無法被解釋出來。我們實際上不知道確切的關系是什么。但是,如果 我們只想進行好的預測,它仍然有效。并且如果多重共線性的程度適中,則不必太在意。我們可以 刪除高度相關的變量或增加樣本容量。
??無外生性。如果我們選擇的??對??幾乎沒有影響,這意味著真實的預測不是基于??而是??,則存 在外生性。最佳解決方案是要搞清楚到底哪些因素會影響我們的預測值,然后選擇合適的??。
3. Lasso Regression
3.1 Background
在機器學習中,我們采用我們的模型通過對大量數據進行訓練來預測值。但是,對過多數據進行訓練 會產生一個副產品,即機器可能會記住所有訓練數據。當涉及到新的測試數據時,我們的機器無法對其進 行正確的估算,這稱為過擬合。實際上,我們不知道到底需要多少數據。如果縮減數據量,則可能會導致 textbf 欠擬合。因此,我們必須更改模型。
??
3.2 稀疏方法
在這里,我們使用均方誤差。最初,我們需要使模型的誤差盡可能小,這可能會導致復雜的模型(太多系數)。通常,如果我們的模型是太復雜了,它的泛化能力很低。為了解決這個問題,出現了正則化。??代表我們要懲罰模型的程度(變簡單)。通過添加 L1 常項,我們將選擇一個誤差最小的簡單模型,該模型與奧卡姆剃刀原則一致。L1 可能把許多系數設置為??。不可避免地,某些特征會因此失去對??的影響, L1 真正要做的是執行特征選擇。
3.3 震蕩
梯度下降在使目標函數最小化中起著關鍵作用。在優化過程中,L1 總是減去常數。因此,當數據值 很小時,L1 尤為重要。L1 執行特征選擇,不穩定并可能導致震蕩。
圖5.?中間那條顯示 OLS 和 MLS 擬合情況數據,其他是兩個算法的預測值范圍
?
4.?Ridge Regression
4.1 背景?
盡管 Lasso 能夠處理過擬合,但它缺乏穩定性。因此,Ridge 是 Lasso 的替代方案。
4.2 穩定性?
為什么 Ridge 比 Lasso 更穩定?例如,通過最小二乘法得到模型??。這很復 雜。使用 Lasso 可以得到??雖然我們可以通過 Ridge 獲得??。Ridge 要求每個系數都盡可能小,但是不會激烈到設置某些系數為 0。
??
4.3 更好的選擇
同樣,它使用梯度下降。但是 Lasso 和 Ridge 之間的區別是 Ridge 不是減去常數而是系數向量。假 設我們在一座山頂上,Lasso 所做的只是往前挪了一小步,而 Ridge 就看哪個方向比較陡,就直接邁出一 大步,因此,Ridge 比 Lasso 更快。當值很大時,Ridge 應該是比 Lasso 更好的選擇。總而言之,從穩定 性和速度的角度來看,Ridge 比 Lasso 來得好,如圖 8。
??
圖6.?Box Cox 改變可能有幫助
5.?Elastic?Net?Regression
Elastic Net 是 Ridge 回歸和 Lasso 回歸之間的中間地帶。它將 Lasso 的損失函數與 Ridge 的損失函數混合在一起。它的參數??控制混合比例。如果??,則為 Ridge.If ??,是 Lasso。那么什么 時候使用 Lasso,Ridge 或 Elastic Regression?在大多數情況下,Ridge 是一個很好的默認設置。如果您 的數據具有太多特征(例如,深度學習),則某些特在沒有意義。因此,我們希望刪除某些特在。但實際 上,我們不知道要刪除哪些特征。Lasso 充滿風險。如果某些特征是相關的(多重共線性),則 Elastic Net Regression 是最佳選擇。它不太可能將某些參數設置為零。它可能對某些相關的自變量進行聚類。
??
6. Robust Regression
6.1 Background?
數據并不總是很好,可能包括一些異常值。因為機器不知道存在異常值,所以它仍然給予它們同樣的 關注。因此,異常值可能會破壞模型。這就是 Robust Regression 被提出的原因。
6.2 RANSAC
圖7.?Box Cox 改變可能更糟糕
隨機抽樣一致是魯棒回歸模型之一。通過不斷重新估計,RANSC 使用共識集(Inliers Set)的所有 成員來提高準確性。
6.3 Theil-Sen Regression?
這是一種無參數方法,這意味著它無需對數據的分布進行任何假設。它還具有一個臨界情況(通常為 29.3 % ),表明它只能容忍異常值分布的最大值為 29.3 %。
6.4 Huber Regression?
當值很大時,Huber 會將其損失函數轉換為線性損失,以最大程度地減少對模型的影響。??作為閾值, 決定多大的數據需要給予線性損失。
??
?
7. Bayesian Regression
7.1 Bayesian?Theorem?
例如,我們將采用一個模型來區分電子郵件是正常的還是垃圾郵件。因此,我們的模型所面對的是它必須對未知電子郵件進行預測。我們的數據包含 100 封電子郵件,其中 10% 是垃圾郵件。因此,垃圾郵 件的百分比為 10 。但這絕對不是全部。在貝葉斯中,它稱為前驗概率,這代表著分布的基礎假設,同時 這也是貝葉斯開始的地方。在算法開始時,貝葉斯是有偏見的,所以該模型很容易受到一開始的數據分布的影響。例如,如果我們只有 10 封普通電子郵件,我們未來是不可能不收到一封垃圾郵件的。換句話 說,如果我們的數據量很小,就不太建議實施貝葉斯算法。但是,不斷進行數據訓練,我們最終應該會獲 得理想的結果。下面的等式,P(B)是歸一化項,P(A)是前驗概率。?()?是后驗概率??偠灾?#xff0c; 當我們擁有大量數據時,貝葉斯算法可能是一個很好的選擇,它可以像其他算法一樣準確地執行。
??
7.2 MLE?
一般來說,我們的目標是找出真正的數據分布,這幾乎是不可能的。因此,我們需要一個與問題域的 數據分布更接近的數據分布。MLE(最大似然法)。它表示我們希望最大化從假設分布采樣出真正分布在數據集中的數據的概率。(圖 9)
圖8.?Lasso VS Ridge
??
7.3 MAP?
通常,我們可以使用 MAP 最大化后驗概率)替換 MLE。它基于貝葉斯定理。MAP 是 貝葉斯回歸 (下式)的基礎。貝葉斯回歸不像其他算法,它不會生成單個值,而是生成可能的分布范圍。在大多數 情況下,MLE 和 MAP 可能會得到相同的結果。但是,當 MAP 的假設為與 MLE 不同,它們無法獲得相 同的結果。當先驗概率服從均勻分布時,它們可以獲得相同結果。從另一個角度來看,如果我們對數據 有精確的理解,則貝葉斯回歸為一個很好的選擇,因為它可以作為先驗概率,或者我們可以像 Weighted Least Errors 一樣給每個不同的選擇不同的權重。有趣的是,前驗分布可以看作是正則化或模型的偏見, 因為前驗分布可以是改為 L2 范數,這種模型也被稱為貝葉斯嶺回歸。下式表示給定模型 m,輸 出 y 的概率。以及??和??(標準差)是任意值。
??
8. Support Vector Regression
8.1 最大化邊際?
支持向量機最初是為分類問題發明的。與其他算法不同,SVM 不僅需要正確分類所有數據,還需要 數據到超平面的距離最大。如果我們的??。我們的線性模型為??。數據點,離超平 面最經的分別帶有正負標簽的點到超平面的距離相加為 邊界(??)。然后將 SVM 轉換為最大化邊界。我們可以將最大化??變為最小化?? 。因為??大于 0,??比??大。除分類線外,SVM 還具有兩條虛線。SVM 有兩種類型。所有數據點都必須正確分類,這被稱為 Hard Margin,這是不現 實的,因為 Hard Margin 容易導致過擬合,而 Soft Margin 可以容忍一些錯誤,此方法聽起來更可靠,與實際情況相符。
圖9. 貝葉斯回歸
??
8.2 對偶問題?
通常,我們可以通過拉格朗日乘子法??將這個極值問題轉化為對偶問題。然后我們可以計算每個參 數的偏導數(此處為 w,b)并將其設置為 0,以進一步求出 w,b 的值。
??
然后我們將 w,b 替換為確切的值。當?,?轉置時,它們保持不變,因為它們是數值。我們引入?,?可以更好地區分它們。
??
我們可以將其用于目標函數。注意,對偶問題與原問題所求相反。
??
8.3 核技巧?
在大多數情況下,數據在 2D 中是不可分離的。在多項式回歸中,我們將數據映射到高維。類似地, 核函數可以用來解決這種問題,這里我們用??來代表被映射后的向量。因此,一切都煥然一新。
??
但是在大多數情況下,映射后的維度太大,以致于我們無法計算??。這就是為什么我們 需要一個核函數的原因。總而言之,SVM 受核函數約束。如果我們將數據映射到錯誤的維度,那么一切 都會壞掉!通常,在處理文本數據時,我們會優先使用線性核。
??
表4.?常見核函數
我們打算最大化邊界,并盡可能減少錯誤。最初,我們采用 0-1 損失。
??
然后我們的目標函數如下所示。C 是一個常數,描述了損失函數的重要性。如果 C 趨于正無窮大,則 意味著不允許發生訓練數據上的錯誤。但是,問題是我們無法用梯度下降解決??,因為它不是凸函數且 不連續。因此,我們提出了一些替換它的功能(替代損失)。
??
在這里,我們采用 Hinge Loss 來代替。
??
另外,Hard Margin 總是很爛。Soft Margin允許少量錯誤發生。??顯示預測與約束的不一致程度。
??
8.4 Regularization?
簡而言之,??是結構性風險,其余的是經驗性風險。通常來說,??表示模型具備的特征,這里我們要最大化邊界。??。它可以看作是 正則化的一種,旨在減小假設空間的規模。
??
8.5 SVR?
在常見的回歸任務中,如果預測完全等于標簽,則損失等于 0。有趣的是,支持向量回歸可以容忍??偏差,這意味著如果我們的預測與真實標簽之間的距離大于??,則其損失會超過 0(圖 10)。
9. Logistic Regression
9.1 Sigmoid 函數?
如果輸入為正,則輸出大于 0.5; 如果輸入為負,則輸出小于 0.5。Sigmoid 函數能夠將所有數據映射 到 (0, 1)。我們可以將輸出視為概率。請注意,邏輯回歸不用于回歸任務,而是用于分類問題。其輸出表 示每個可能的標簽可能性。在二元邏輯回歸中,??。
??
9.2 損失函數
圖10. SVR
這里我們將對數損失作為損失函數。我們可以得出一個結論:如果我們的標簽為 1,則我們的預測趨 向于更趨近于 1,損失很可能減少,而我們的預測趨于于趨近于 0,則損失將急劇增加。
??
但是,如果損失函數看起來像這樣,就不可能在其上實現梯度下降。注意這里??。下 面的等式等同于上面的等式。??可能會加快計算速度。
??
10. 結論?
10.1 了解你的模型?
許多模型不是即插即用的。它有一些約束,只有滿足他們的假設,它們才能表現良好。因此,了解模型背后的內容比盲目地應用模型更重要。此外,當面臨難題時,您應該對可以嘗試的算法有一個完整的了 解。?
10.2 數據第一位?
機器學習問題不是獲取數據和應用模型。給模型提供什么樣的數據對模型的最佳性能起關鍵作用。如果對模型了解得很少,就無法理解什么樣的數據正是您的模型需求,您無法進一步預處理數據。最終,您 將永遠不會讓模型的性能產生任何提升。這是浪費時間。
往期精彩回顧適合初學者入門人工智能的路線及資料下載機器學習及深度學習筆記等資料打印機器學習在線手冊深度學習筆記專輯《統計學習方法》的代碼復現專輯 AI基礎下載機器學習的數學基礎專輯溫州大學《機器學習課程》視頻 本站qq群851320808,加入微信群請掃碼:總結
以上是生活随笔為你收集整理的【机器学习基础】深入讨论机器学习 8 大回归模型的基本原理以及差异!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微信公众号怎么快速导出一个月的文章数据
- 下一篇: 怎么关闭默认使用腾讯视频播放视频文件