日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

机器学习之线性回归(Linear Regression)

發(fā)布時(shí)間:2025/4/16 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 机器学习之线性回归(Linear Regression) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

線性學(xué)習(xí)中最基礎(chǔ)的回歸之一,本文從線性回歸的數(shù)學(xué)假設(shè),公式推導(dǎo),模型算法以及實(shí)際代碼運(yùn)行幾方面對(duì)這一回歸進(jìn)行全面的剖析~

一:線性回歸的數(shù)學(xué)假設(shè)

1.假設(shè)輸入的X和Y是線性關(guān)系,預(yù)測(cè)的y與X通過(guò)線性方程建立機(jī)器學(xué)習(xí)模型

2.輸入的Y和X之間滿足方程Y=X+e,e是誤差項(xiàng),噪音項(xiàng),假設(shè)e是獨(dú)立同分布的,服從IID(independent and identity distribution)和均值為0,方差為某一定數(shù)的正態(tài)分布(也叫高斯分布)e服從正態(tài)分布是由中新計(jì)值定理決定的

二、線性回歸建模

2.1方程式表示:

數(shù)學(xué)形式:


矩陣形式:
其中,X矩陣是m行(n+1)列的,每一行是一個(gè)樣本,每一列是樣本的某一個(gè)特征矩陣(n+1)行一列的,它是X的權(quán)重,也是線性回歸要學(xué)習(xí)的參數(shù)

2.2 損失函數(shù)(Loss function)對(duì)數(shù)極大似然和最小二乘的聯(lián)系:由線性函數(shù)的假設(shè)知道,噪音項(xiàng)滿足高斯分布,其中一個(gè)樣本的正態(tài)分布的數(shù)學(xué)表達(dá)為:
那么,通過(guò)極大估計(jì)求得似然函數(shù)為所有樣本的乘積,如下:
經(jīng)過(guò)數(shù)學(xué)運(yùn)算和推導(dǎo),求極大似然的最大值可以轉(zhuǎn)化為求其log函數(shù)的最大值,推導(dǎo)過(guò)程如下:
要使得極大似然取得極大值,上式中的后一項(xiàng)就要最小,也可以將求線性回歸的極大似然轉(zhuǎn)化為求最小二乘的最小值,也就是常見到的線性函數(shù)的最小二乘求損失函數(shù)的數(shù)學(xué)形式:
由此就得到了線性函數(shù)的loss function三、線性函數(shù)算法:求解參數(shù)機(jī)器算法的目的就是通過(guò)建立模型并通過(guò)選擇合適的算法來(lái)求出參數(shù)下的y和實(shí)際的Y之間的差值盡量的小,也就是預(yù)測(cè)的準(zhǔn)確率在訓(xùn)練集和測(cè)試集足夠高3.1 當(dāng)矩陣可逆(滿秩)時(shí),通過(guò)normal equation可以直接求解目標(biāo)函數(shù)轉(zhuǎn)化為矩陣形式:
對(duì)其求導(dǎo)并求駐點(diǎn)

另上式為0,可求得
此算法的缺點(diǎn)是:當(dāng)矩陣很大是,計(jì)算非常耗時(shí)且占用資源3.2 當(dāng)矩陣不可逆(非滿秩)時(shí),通過(guò)梯度下降求解初始化,沿著負(fù)梯度方向進(jìn)行迭代,知道變化很小或者不變化
梯度下降中設(shè)計(jì)到的參數(shù)是,步長(zhǎng)alpha,迭代次數(shù)t,這些對(duì)于計(jì)算最終的都會(huì)影響,所以需要調(diào)參優(yōu)化。常用的梯度下降算法有SGD,BGD,mBGD,實(shí)際中以mBGD使用最多四、線性回歸防止overfitting機(jī)器學(xué)習(xí)最忌諱的是死記硬背,像考試一樣平時(shí)學(xué)習(xí)只記得死答案了,在考試的時(shí)候就不會(huì)做題目了,為了靈活變通,overfitting的方法就出現(xiàn)了,線性回歸中最常用的是引入正則化項(xiàng),也就懲罰項(xiàng),給損失函數(shù)的參數(shù)賦予一個(gè)約束項(xiàng),使其不能任意的無(wú)限大或者無(wú)限小,加入正則化損失函數(shù)變?yōu)?#xff1a;

4.1當(dāng)矩陣滿秩時(shí),引入正則項(xiàng)后的變?yōu)?#xff1a;
4.2當(dāng)矩陣不滿秩時(shí),引入正則項(xiàng)后的變?yōu)?#xff1a;


import numpy as np import matplotlib.pyplot as plt from sklearn.linear_model import LinearRegression from sklearn.linear_model import RidgeCV from sklearn.cross_validation import train_test_split '''''#load data n=100 x = np.arange(1,100,n)+np.random.randn(n) y = 4*x - 3 + np.random.randn(n) plt . figure () plt . plot(x, y, 'r*', label='X') plt . ylabel (" Y" ) plt . xlabel (" X") plt . legend(loc="best") plt . tight_layout() plt . show() ''' data = ['C:\\Users\\123\\Desktop\\weather\\2015.txt',] w = np. loadtxt ( data [0] , skiprows =1) y = w[:,7]/10 x = w[:,10] plt . figure () plt . plot(x,y,"b*",label="Atmospheric pressure") plt . ylabel (" Temperatures" ) plt . xlabel ("Atmospheric pressure " ) plt . title (' Temperatures trent chart of Shanghai in year 2015 ') plt . tight_layout() plt . legend(loc="best") plt . show() x = x.reshape(-1, 1) x_train, x_test, y_train, y_test = train_test_split(x, y, random_state=1) lr = LinearRegression() lr . fit ( x_train , y_train) y_lr = lr.predict ( x_test ) cv = RidgeCV(alphas=np.logspace(-3, 2, 100)) cv . fit ( x_train , y_train) y_cv = cv.predict ( x_test ) print lr.coef_ print lr.intercept_ print "mes of Linear Regresion squares is", np. mean(( y_lr - y_test ) ** 2) print "accuracy of Linear regression is",lr.score(x_test,y_test) print cv.coef_ print cv.intercept_ print "mes of Linear Regresion+Ridge squares is", np. mean(( y_cv - y_test ) ** 2) print "accuracy of Linear regression is",cv.score(x_test,y_test) x1 = np.arange(len(x_test)) plt.plot(x1,y_test,"y*-",label="Test") plt.plot(x1,y_lr,"ro-",label="Predict") plt.plot(x1,y_cv,"b^-",label="Predict+Ridge") plt . ylabel (" Temperatures" ) plt . xlabel (" Atmospheric pressure") plt . title (' Predict chart ') plt . legend(loc="best") plt . tight_layout() plt . show()


《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結(jié)

以上是生活随笔為你收集整理的机器学习之线性回归(Linear Regression)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。