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