知否,知否,線性迴歸基礎教程值得擁有
1. 介紹
迴歸分析是監督學習的一個子領域。它的目的是模擬一定數量的特徵與連續的多個目標變數之間的關係。
在迴歸問題中,我們試圖給出一個定量的答案,用來預測房價或某人看影片的時長。
2. 簡單線性迴歸:透過資料擬合直線
迴歸演算法將透過一組"點",來模擬單個特徵(解釋變數x)和其對應值(目標變數y)之間的關係。
它將透過設定任意一條直線並計算這條直線到資料點的距離來實現。這個距離,就是垂直線,也是資料的殘差或預測誤差。
迴歸演算法在每次迭代過程中都會不斷"挑選"直線,以尋找最優擬合直線,即誤差最小的直線。
我們可以透過以下幾種技術來完成這項任務。
2.1移動線條
2.1.1技巧一
當有一個點和一條線時,我們的目標是讓這條線更接近這一點。在這裡我們將使用一個名為"學習率"的引數。使用學習率的目的是讓直線更好的逼近該點。
換句話說,學習率將決定每次迭代中直線與該點的距離的長度。它通常用α表示。
2.1.2技巧二
使用技巧二要基於這樣的前提:如果有一個點(與現在的點相比)離直線更近,且距離更小,直線就會向那個點移動。
3.梯度下降
假設我們有一組點,我們想開發一個演算法來找到最適合這組點的直線。如前所述,誤差是直線到點的距離。
我們要設計不同的直線並計算誤差。這個過程重複了一遍又一遍,不斷減少錯誤,直到得到完美的直線。這條完美的直線誤差最小。
為了讓誤差最小化,我們將使用梯度下降法。透過梯度下降法,我們可以在每一步中,觀察直線移動的不同方向以減少誤差。
注:梯度(f)為向量場。當它在f域的一個泛型點上求值時,它表示f域更快變化的方向。
所以梯度下降會向負梯度的方向移動一步。
當該演算法經過足夠多的步驟後,它最終將達到區域性或全域性的最小值。需要強調的是,如果學習率的值太大,演算法就會丟失最小值,因為它的步長太大。當然,如果學習率太低,就需要無限長的時間才能到找到這最小值。
4. 小批次梯度下降
4.1批次梯度下降
我們對所有資料點進行平方,會得到一些要新增到模型權重中的值,將它們相加,然後用這些值的和更新權重。
4.2隨機梯度下降
我們可以一個點一個點的進行梯度下降。
4.3實際應用中的梯度下降
在實踐中,這兩種方法都沒有被使用,因為它們在計算上都很慢。進行線性迴歸的最佳方法是將資料分成許多小批。每個批次,大約有相同的點數。然後使用每個批來更新權重。這種方法稱為小批次梯度下降法。
5. 高維度
當我們有一個輸入列和一個輸出列時,我們面對的是一個二維問題,迴歸是一條直線。預測將是一個由自變數和常陣列成的值。
如果我們有更多的輸入列,這意味著有更多的維度,而輸出將不再是直線,而是超越二維的一個"值"(這取決於維度的數量)。
6. 多元線性迴歸
自變數是我們用來預測其他變數的變數。我們試圖預測的變數稱為因變數。
當我們發現,我們試圖預測的結果不僅僅依賴於變數時,我們可以建立一個更復雜的模型來考慮這個問題。前提是它們與所面臨的問題相關。總而言之,使用更多的預測變數可以幫助我們獲得更好的結果。
如下圖所示,這是一個簡單的線性迴歸:
下圖是一個具有兩個特徵的多元線性迴歸圖。
隨著我們新增更多的自變數,我們的問題也不再僅僅侷限於一個二維的平面。但問題也暴露了出來,即視覺化更加困難。但是這裡面的核心思想並未發生根本性的改變。
7. 關於線性迴歸的幾點建議
不是任何情況都適合用線性迴歸。
a)線性迴歸在資料為線性時效果最好:
它從訓練資料中產生一條直線。如果訓練資料中的關係不是真正的線性關係,你將需要進行調整(轉換訓練資料)、新增特性或使用其他模型。
b)線性迴歸對異常值很敏感:
線性迴歸試圖在訓練資料中找到一條最佳直線。如果資料集有一些不符合一般模式的值,線性迴歸模型就會受到離群值的嚴重影響。我們必須小心對待這些異常值,透過合理的方法剔除它們。
處理異常值,我建議大家使用隨機抽樣一致演算法(RNASAC),它將模型擬合到資料的離群值子集中。演算法執行以下步驟:
- 選擇隨機數目的樣本作為離群值,並對模型進行擬合。
- 根據擬合模型測試所有其他資料點,並新增屬於使用者所選值的資料點。
- 用新的點重複模型的擬合。
- 計算擬合模型對異常值的誤差。
- 如果效能滿足使用者的要求或達到一定的迭代次數後,則結束演算法。否則,就回到第一步。重複上述步驟。
8. 多項式迴歸
多項式迴歸是多元線性迴歸分析的一種特殊情況,其中獨立變數x與因變數y之間的關係被模擬為x的第n次多項式。換句話說,當我們的線性資料分佈比較複雜時,我們使用線性模型生成一個曲線來擬合非線性資料。
由預測變數多項式展開而得到的獨立(或解釋性)變數已被用來描述非線性現象,如組織成員的增長率和疾病流行的進展。
9. 正則化
正則化是處理過度擬合的一種常用方法。主要透過以下技術實現:
減少模型的大小:減少模型中可學習引數的數量,以及它們的學習能力。我們的目標是在學習能力過多和不足之間找到一個平衡點。不幸的是,沒有任何神奇的公式來確定這種平衡,必須透過設定不同數量的引數並觀察其效能來測試和評估。
新增權重正則化:一般情況下,模型越簡單越好。因為一個簡單的模型過度擬合可能性很低。我們通常使用的方法是,透過強制其權值只取較小的值來約束網路的複雜性,並對權值的分佈進行正則化。這是透過在網路的損失函式中加入與具有較大權重相關的成本來實現的。成本有兩種方式:
L1正則化:成本與權重係數值的平方成正比。
L2正則化:成本正比於權重係數值的平方。
為決定其中哪項適用於我們的模型,我們建議你留意以下幾點,並考慮問題的具體性質:
λ引數:它是透過正則化計算的誤差。如果我們有一個很大的λ,那麼我們就是在"懲罰"複雜性,最終會得到一個更簡單的模型。如果我們有一個小的λ,我們最終會得到一個複雜的模型。
10. 評價指標
為了跟蹤模型的執行情況,我們需要設定一些評估指標。對評估指標的度量是從生成的線到實點的誤差,它是透過梯度下降來使函式最小化。
處理線性迴歸時,你可能會面臨以下幾點問題:
10.1平均絕對誤差:
平均絕對誤差,即真實資料點與預測結果的絕對差的平均值。如果我們這樣做,梯度下降的每一步都會減少平均絕對誤差值。
10.2均方誤差:
均方誤差(MSE)是實際資料點與預測結果之間平方差的平均值。這種方法的懲罰越大,距離越大。
如果我們將此作為策略遵循,梯度下降的每一步將減少MSE。這將是計算最佳擬合線的首選方法,也稱為普通最小二乘法。
10.3確定係數或R平方
確定係數可以理解為MSE的標準化版本,它提供了對模型效能的更好解釋。
從技術上講,R平方是模型捕捉到的方差的一部分,換句話說,它就是方差。它的定義是:
11.其他的演算法
儘管本文主要關注線性和多元迴歸模型,但在流行的機器學習庫Sci-kit learn中,幾乎每種演算法都適用。其中一些甚至產生了非常好的結果。
一些例子:
- 決策樹迴歸
- 隨機森林迴歸
- 支援向量迴歸
- 套索演算法
- 彈性網路
- 梯度提升迴歸
- Ada Boost迴歸
12. 結論
在本文中,我們已經介紹了迴歸模型的基礎知識,瞭解了它們的工作原理、常見問題以及如何處理它們。我們還了解了什麼是最常見的評估指標。
作者——Victor Roman
來源:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31545819/viewspace-2564389/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 知否?知否?Vue之MVVMVueMVVM
- 知否知否,Java 面試的年貨到了Java面試
- 知否?知否?情人眼裡出程式碼
- 資料結構知否知否系列之 — 線性表的順序與鏈式儲存篇(8000 多字長資料結構
- 線性迴歸基礎程式碼
- 遊戲基礎知識——迴歸、凱旋遊戲
- 知否?知否?一文看懂深度文字分類之DPCNN原理與程式碼文字分類CNN
- 知否?知否!Java工程師常見面試題集錦(四)網際網路人必看!(附答案及視訊教程,持續更新)Java工程師面試題
- 【深度學習基礎-10】簡單線性迴歸(上)深度學習
- 資料科學必備基礎之線性迴歸資料科學
- 線性迴歸
- 有監督學習——線性迴歸
- 機器學習簡介之基礎理論- 線性迴歸、邏輯迴歸、神經網路機器學習邏輯迴歸神經網路
- 【深度學習基礎-13】非線性迴歸 logistic regression深度學習
- 機器學習-線性迴歸機器學習
- 1.3 - 線性迴歸
- 機器學習:線性迴歸機器學習
- Go 基礎教程--2-基礎知識Go
- Python 基礎知識教程Python
- 值得收藏的資料分析基礎知識
- WiFi基礎(六):天線基礎知識WiFi
- 基礎的 Linux 網路命令,你值得擁有Linux
- 機器學習 | 線性迴歸與邏輯迴歸機器學習邏輯迴歸
- Go 基礎知識之分支迴圈Go
- 迴歸問題知識樹
- Linux有哪些特性值得喜愛?linux基礎知識學習Linux
- 機器學習之線性迴歸機器學習
- 線性迴歸實戰
- 多元線性迴歸模型模型
- 機器學習整理(線性迴歸)機器學習
- 線性迴歸總結
- 4-線性迴歸
- Kotlin知識歸納(一) —— 基礎語法Kotlin
- 線性迴歸演算法演算法
- 【機器學習】線性迴歸預測機器學習
- 資料分析:線性迴歸
- PRML 迴歸的線性模型模型
- 機器學習5-線性迴歸機器學習