机器学习之线性回归(Linear Regression)
生活随笔
收集整理的這篇文章主要介紹了
机器学习之线性回归(Linear Regression)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
線性學(xué)習(xí)中最基礎(chǔ)的回歸之一,本文從線性回歸的數(shù)學(xué)假設(shè),公式推導(dǎo),模型算法以及實際代碼運行幾方面對這一回歸進行全面的剖析~
一:線性回歸的數(shù)學(xué)假設(shè)
1.假設(shè)輸入的X和Y是線性關(guān)系,預(yù)測的y與X通過線性方程建立機器學(xué)習(xí)模型
2.輸入的Y和X之間滿足方程Y=X+e,e是誤差項,噪音項,假設(shè)e是獨立同分布的,服從IID(independent and identity distribution)和均值為0,方差為某一定數(shù)的正態(tài)分布(也叫高斯分布)e服從正態(tài)分布是由中新計值定理決定的
二、線性回歸建模
2.1方程式表示:
數(shù)學(xué)形式:
矩陣形式:
其中,X矩陣是m行(n+1)列的,每一行是一個樣本,每一列是樣本的某一個特征矩陣(n+1)行一列的,它是X的權(quán)重,也是線性回歸要學(xué)習(xí)的參數(shù)
2.2 損失函數(shù)(Loss function)對數(shù)極大似然和最小二乘的聯(lián)系:由線性函數(shù)的假設(shè)知道,噪音項滿足高斯分布,其中一個樣本的正態(tài)分布的數(shù)學(xué)表達為:
那么,通過極大估計求得似然函數(shù)為所有樣本的乘積,如下:
經(jīng)過數(shù)學(xué)運算和推導(dǎo),求極大似然的最大值可以轉(zhuǎn)化為求其log函數(shù)的最大值,推導(dǎo)過程如下:
要使得極大似然取得極大值,上式中的后一項就要最小,也可以將求線性回歸的極大似然轉(zhuǎn)化為求最小二乘的最小值,也就是常見到的線性函數(shù)的最小二乘求損失函數(shù)的數(shù)學(xué)形式:
由此就得到了線性函數(shù)的loss function三、線性函數(shù)算法:求解參數(shù)機器算法的目的就是通過建立模型并通過選擇合適的算法來求出參數(shù)下的y和實際的Y之間的差值盡量的小,也就是預(yù)測的準確率在訓(xùn)練集和測試集足夠高3.1 當矩陣可逆(滿秩)時,通過normal equation可以直接求解目標函數(shù)轉(zhuǎn)化為矩陣形式:
對其求導(dǎo)并求駐點
另上式為0,可求得
此算法的缺點是:當矩陣很大是,計算非常耗時且占用資源3.2 當矩陣不可逆(非滿秩)時,通過梯度下降求解初始化,沿著負梯度方向進行迭代,知道變化很小或者不變化
梯度下降中設(shè)計到的參數(shù)是,步長alpha,迭代次數(shù)t,這些對于計算最終的都會影響,所以需要調(diào)參優(yōu)化。常用的梯度下降算法有SGD,BGD,mBGD,實際中以mBGD使用最多四、線性回歸防止overfitting機器學(xué)習(xí)最忌諱的是死記硬背,像考試一樣平時學(xué)習(xí)只記得死答案了,在考試的時候就不會做題目了,為了靈活變通,overfitting的方法就出現(xiàn)了,線性回歸中最常用的是引入正則化項,也就懲罰項,給損失函數(shù)的參數(shù)賦予一個約束項,使其不能任意的無限大或者無限小,加入正則化損失函數(shù)變?yōu)?#xff1a;
4.1當矩陣滿秩時,引入正則項后的變?yōu)?#xff1a;
4.2當矩陣不滿秩時,引入正則項后的變?yōu)?#xff1a;
總結(jié)
以上是生活随笔為你收集整理的机器学习之线性回归(Linear Regression)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python中read()、readli
- 下一篇: ACE线程管理机制