线性回归算法原理简介
1,線性回歸概念
回歸和分類的區別:簡單地說,回歸就是通過數據預測出一個目標值(實際值),分類就是通過數據預測出一個類別(二分類,多分類)。
比如:銀行貸款實例
(1)數據:每個個人(樣本)的工資和年齡(兩個特征)
(2)目標:預測銀行會貸款給個人多少錢(標簽,回歸)或者預測銀行會不會給貸款(標簽,分類)
(3)建立以特征為自變量的擬合函數,確定函數參數以求出函數值(標簽)
可以添加一列x0(取值都為1)引入偏置項,使組合式簡潔工整,方便進行矩陣運算,提高效率。
2,誤差:
誤差的特點:
高斯分布圖:
高斯分布的實際意義:銀行可能會多給,也可能會少給(均值為0),但是絕大多數情況下這個浮動不會太大,極小情況下浮動會比較大,符合正常情況。
3,似然函數的引入,取對數操作,最小二乘法
似然函數:根據樣本數據服從的規則來估計合理的參數值(參數估計),即什么樣的參數和數據組合(預測值)后恰好是真實值(是真實值的可能性越大越好,最大似然函數,極大似然估計)。
m是樣本的個數,累乘(獨立性分布)。
對數似然:對數可以將乘法轉換成加法,簡化計算。(若數據存在偏度也有對數據取對數的,是數據的分布服從假設)
展開化簡:
目標:讓似然函數(單調性相同,對數變換后也一樣)越大越好,即令下式越小越好:
如果數據上升到更高維的空間,我們嘗試使用最大似然估計來解釋最小二乘的合理性。
將目標函數展開:
對上式求偏導:
令偏導等于0(凸函數,凸優化)則有:
X,y對應于給定樣本的數據(已知),一般情況下都可求解。并不一定可直接求解,線性回歸可以當做是一個特例。
評估方法:
最常用的評估項:
取值越接近于1我們認為模型擬合的越好。
4,梯度下降
由于目標函數并不一定可直接求解,舉個例子,我要優化一個深度神經網絡DNN(Deep neural network)的網絡參數(換言之,優化此網絡對于已知數據擬合結果的正確性),可不可以用最小二乘準則去衡量某一擬合結果相對于標準答案的偏差程度呢?可以。而同時,由于DNN模型本身的復雜性,我們沒有辦法像線性擬合時那樣,在理論和公式的層面求出一個最優解,因此需要引入所謂的BP算法(實質上就是梯度下降法)進行參數的迭代求解。
梯度下降法,是假設條件更為廣泛(無約束)的,一種通過迭代更新來逐步進行的參數優化方法,最終結果為局部最優;機器學習的方法就是交給機器一堆數據,然后告訴它什么樣的學習方式是對的(目標函數),然后讓它朝著這個方向去做(不斷地優化迭代),求出偏導后是梯度上升的值,所以梯度下降是梯度的反方向。
建立目標函數:
以下山為例(怎樣最快到達山谷的最低點):
(1)找到當前最合適的方向
(2)走一小步(走快了有可能越過最低點)
(3)按照方向(偏導)與步伐(更新量)去更新的參數
批量梯度下降:
綜合考慮所有樣本,容易得到最優解,但是由于每次考慮所有樣本,速度很慢。
隨機梯度下降:
每次找一個樣本,迭代速度快,但不一定每次都朝著收斂的方向(數據噪音、異常等)。
小批量梯度下降法:
每次更新選擇一小部分(10個樣本)數據來算,批處理數量:32,64,128都可以(能多大可以多大),很多時候還得考慮內存和效率,很實用。
學習率(步長):對結果會產生巨大的影響,一般小一些(0.01),而把迭代步數加大,也可以在迭代過程中不斷減小學習率。
總結
以上是生活随笔為你收集整理的线性回归算法原理简介的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 求一个帅气的个性签名。
- 下一篇: 狗为什么开始尿在家里???[已扎口]