国产精品久久久久久久久久东京,久久精品亚洲国产,国产色呦呦,亚洲最大av网

好房網(wǎng)

網(wǎng)站首頁百科全書 >正文

多元線性回歸模型(機(jī)器學(xué)習(xí)線性回歸原理介紹和功能實現(xiàn))

2022-06-13 22:09:33 百科全書來源:
導(dǎo)讀目前大家應(yīng)該是對多元線性回歸模型(機(jī)器學(xué)習(xí)線性回歸原理介紹和功能實現(xiàn))比較感興趣的,所以今天好房網(wǎng)小編CC就來為大家整理了一些關(guān)于多...
目前大家應(yīng)該是對多元線性回歸模型(機(jī)器學(xué)習(xí)線性回歸原理介紹和功能實現(xiàn))比較感興趣的,所以今天好房網(wǎng)小編CC就來為大家整理了一些關(guān)于多元線性回歸模型(機(jī)器學(xué)習(xí)線性回歸原理介紹和功能實現(xiàn))方面的相關(guān)知識來分享給大家,希望大家會喜歡哦。

多元線性回歸模型(機(jī)器學(xué)習(xí)線性回歸原理介紹和功能實現(xiàn))

線性回歸(Linear Regression)模型是最簡單的線性模型之一,很具代表性。本文將詳細(xì)介紹一下機(jī)器學(xué)習(xí)中 線性回歸模型的求解過程和編碼實現(xiàn)。

內(nèi)容概要:

機(jī)器學(xué)習(xí)線性回歸原理介紹和功能實現(xiàn)

什么是線性回歸

在幾何意義上,回歸就是找到一條具有代表性的直線或曲線(高維空間的超平面)來擬合輸入數(shù)據(jù)點和輸出數(shù)據(jù)點。線性回歸 可以理解為找到 用來擬合輸入數(shù)據(jù)點和輸出數(shù)據(jù)點的 那條具有代表性直線或曲線的過程。

為了理解線性回歸的概念,我們可以先從一個實例來引入本文的主題。

1 問題描述----波士頓房價預(yù)測

波士頓房價預(yù)測 是一個很經(jīng)典的線性回歸案例,這個案例使用的數(shù)據(jù)集(Boston House Price Dataset)源自 20 世紀(jì) 70 年代中期美國人口普查局收集的美國馬薩諸塞州波士頓住房價格有關(guān)信息。該數(shù)據(jù)集統(tǒng)計了當(dāng)?shù)爻擎?zhèn)人均犯罪率、城鎮(zhèn)非零售業(yè)務(wù)比例等。共計 13 個指標(biāo)(特征),第 14 個特征(相當(dāng)于標(biāo)簽信息)給出了住房的中位數(shù)報價。先來看看這組數(shù)據(jù),

機(jī)器學(xué)習(xí)線性回歸原理介紹和功能實現(xiàn)

特征信息翻譯參考下圖,

機(jī)器學(xué)習(xí)線性回歸原理介紹和功能實現(xiàn)

2 特征,標(biāo)簽和樣本

通過上面這個波士頓房價預(yù)測的數(shù)據(jù)集,先引入機(jī)器學(xué)習(xí)中關(guān)于數(shù)據(jù)集的幾個概念,

特征:輸入變量,即簡單線性回歸中的 x變量(如顏色,天氣,水果等),在這個數(shù)據(jù)集中,每一列表示一項特征(最后一列是標(biāo)簽 除外),一共13項特征

標(biāo)簽:我們要預(yù)測的事物,即簡單線性回歸中的 y 變量。標(biāo)簽可以是連續(xù)值(如房價,股市等),可以是離散值(今天周幾,水果好不好吃等),在這個數(shù)據(jù)集中,最后一列PRICE就是標(biāo)簽

樣本:是指數(shù)據(jù)的特定實例(樣本包括訓(xùn)練集和測試集)。在這個數(shù)據(jù)集中,每一行表示一個樣本

備注:該數(shù)據(jù)集在卡耐基梅隆大學(xué)統(tǒng)計與數(shù)據(jù)科學(xué)實驗室或 Kaggle 等網(wǎng)站均可下載。下載后,需要刪除部分額外的數(shù)據(jù)描述信息,并將文件另存為 CSV 格式,然后利用之前介紹的 Pandas 來讀取數(shù)據(jù)。

另外,在前面介紹的機(jī)器學(xué)習(xí)框架sklearn(scikit-learn)內(nèi)置了這個數(shù)據(jù)集,無需另外下載,只要調(diào)用專用的 API 函數(shù)即可導(dǎo)入數(shù)據(jù),詳細(xì)信息可參考這篇文章的介紹。

現(xiàn)在我們的任務(wù)是,找到這些指標(biāo)(特征)與房價(目標(biāo))之間的關(guān)系。由于房價是連續(xù)變化的實數(shù),很明顯,這個任務(wù)屬于回歸分析。為了找到這些指標(biāo)(特征)與房價(目標(biāo))之間的關(guān)系,我們需要構(gòu)建模型。

構(gòu)建模型

上面這個表中提供了4個樣本,每一個樣本都包含了13個特征值和一個標(biāo)簽?,F(xiàn)在我們需要將這個房價預(yù)測問題進(jìn)行一般化描述,為構(gòu)建模型做準(zhǔn)備,

X 表示樣本;

Y 表示 標(biāo)簽;

{x1,x2,x..xn}表示數(shù)據(jù)集中的特征值;

{X(1),X(2),X(3)...X(n)} 表示第幾個樣本

將波士頓房價數(shù)據(jù)集一般化的描述結(jié)果展示如下,

機(jī)器學(xué)習(xí)線性回歸原理介紹和功能實現(xiàn)

從數(shù)據(jù)集提供的信息,影響波士頓房價(標(biāo)簽)的因素有13項(特征值),現(xiàn)在我們希望建立一個模型,當(dāng)我們輸入這13個影響房價因素的量化值后,模型能夠幫助我們預(yù)測出房價。這個模型用數(shù)學(xué)公式可以表示為(n=13),

機(jī)器學(xué)習(xí)線性回歸原理介紹和功能實現(xiàn)

簡化一下,

機(jī)器學(xué)習(xí)線性回歸原理介紹和功能實現(xiàn)

xi是我們數(shù)據(jù)集中樣本的特征值, y^ 就是我們的模型預(yù)測結(jié)果,w和b 就是我們模型的參數(shù),現(xiàn)在構(gòu)建模型的問題就轉(zhuǎn)化為如何求解參數(shù)w和b了。

損失函數(shù)(Loss Function)

為了求解模型參數(shù)w和b,需要引入損失函數(shù)的概念。根據(jù)第2章節(jié)構(gòu)建的線性模型,數(shù)據(jù)集中的每一組x(n)樣本 理論上都有對應(yīng)一個預(yù)測值yn^ ,{x1,x2,...,xn }是特征值,表示方式如下,

機(jī)器學(xué)習(xí)線性回歸原理介紹和功能實現(xiàn)

數(shù)據(jù)集中的每一組樣本 理論上都有一個標(biāo)簽y和一個預(yù)測值y^,參考下圖,

機(jī)器學(xué)習(xí)線性回歸原理介紹和功能實現(xiàn)

一組樣本對應(yīng)一個標(biāo)簽值和一個預(yù)測值

我們期望構(gòu)建的模型的預(yù)測值y^跟真實值y 差距越小越好,越小說明我們構(gòu)建的模型越準(zhǔn)確,

機(jī)器學(xué)習(xí)線性回歸原理介紹和功能實現(xiàn)

第一個樣本真實值與預(yù)測值的差值

m個樣本的整體誤差表示如下,

機(jī)器學(xué)習(xí)線性回歸原理介紹和功能實現(xiàn)

m個樣本的整體求和表達(dá)式

直接相加有個問題,可能會因為正負(fù)值得屬性,誤差可能相消,導(dǎo)致誤差不準(zhǔn)確。需要用平方和,參考表達(dá)式如下,

機(jī)器學(xué)習(xí)線性回歸原理介紹和功能實現(xiàn)

這樣整體的預(yù)測值和真實值得差距就可以用真實值與預(yù)期值差值的平方求和表示出來了。這個差距我們稱為損失。用來表示預(yù)測值和真實值得差距的函數(shù)就稱為損失函數(shù)。

將損失函數(shù)簡化一下表達(dá)方式,

機(jī)器學(xué)習(xí)線性回歸原理介紹和功能實現(xiàn)

損失函數(shù)表達(dá)式

代入y^m (第m個樣本的預(yù)測值)計算公式,

機(jī)器學(xué)習(xí)線性回歸原理介紹和功能實現(xiàn)

損失函數(shù)得表達(dá)式:

機(jī)器學(xué)習(xí)線性回歸原理介紹和功能實現(xiàn)

損失函數(shù)表達(dá)式

損失函數(shù)關(guān)聯(lián)的參數(shù) 就是w1,w2,...,wn 和b了。我們的目標(biāo)是使得損失函數(shù)值最小,使用得方法就是梯度下降算法。

梯度下降算法(Gradient Descent)

到了這一步,現(xiàn)在的問題轉(zhuǎn)化為求取min(L(w1,w2,...,wn,b))。求函數(shù)得最小值,我們在高數(shù)中一般用的是求導(dǎo),找到極值點然后代入函數(shù)找到最小值。這種通用的方法在特征值比較少的情況一般也沒有什么影響,但如果特征量很多時,這種方法就不適用了。這種情況下就需要用到這里即將介紹的 另外一種求取函數(shù)最小值得方法------梯度下降算法。

如下坐標(biāo)軸,

機(jī)器學(xué)習(xí)線性回歸原理介紹和功能實現(xiàn)

橫軸w:

縱軸L(w):

我們的目標(biāo)是找到函數(shù)最小值L(W*),要找到L(W*),首先需要找到W*,那么梯度下降算法是如何找到W*的呢?

方法如下,

1)首先隨機(jī)初始化一個w0的點,求出這個點的導(dǎo)數(shù)值,從圖中可以看到w0 這個點的導(dǎo)致值大于0,并且w0>w*,期望下一次要找的w1能往左移,離w*近一點。這里還需要引入一個參數(shù)----學(xué)習(xí)率。下一個點w1可以用如下公式來表示,

機(jī)器學(xué)習(xí)線性回歸原理介紹和功能實現(xiàn)

學(xué)習(xí)率?是正數(shù),w0處的倒數(shù)也是正數(shù),找到的下一個點w1比w0要小,在往期望值w* 靠攏。

2)同樣的方法,求取w1的下一個點w2,

機(jī)器學(xué)習(xí)線性回歸原理介紹和功能實現(xiàn)

3)重復(fù)操作,直到直到最小的w*。

示例中隨機(jī)初始化的w0在最小值w*的右邊,事實上w0在w*的左邊,效果是一樣的,w0在左邊時,w0處的導(dǎo)數(shù)值為負(fù),帶入上面的公式,學(xué)習(xí)率為正,下一個值w1將增大,最終的結(jié)果都是往 w* 靠攏。

學(xué)習(xí)率(Learning rate)

正數(shù),決定我們呢每次改變W值 改變多少的值,

學(xué)習(xí)率的選擇

機(jī)器學(xué)習(xí)線性回歸原理介紹和功能實現(xiàn)

如上圖所示,需要設(shè)置合適的學(xué)習(xí)率,如果學(xué)習(xí)率設(shè)置過大,w值會在最優(yōu)解w* 左右兩邊震蕩,無法到達(dá)最優(yōu)解w*;如果w* 設(shè)置過來小,將增大到達(dá)最優(yōu)解w*的計算次數(shù),造成執(zhí)行效率低下,需要更長的時間才能收斂。

所以我們需要找到一個合適的學(xué)習(xí)率,梯度下降算法才能達(dá)到比較好的效果。

這里順便補(bǔ)充說明一下超參數(shù)的概念,模型的參數(shù) 稱為參數(shù)(如這里的w和b),決定模型的參數(shù),稱為超參數(shù),比如這里的學(xué)習(xí)率。

求取損失函數(shù)的最小值

回到第3節(jié)損失函數(shù)的表達(dá)式,

機(jī)器學(xué)習(xí)線性回歸原理介紹和功能實現(xiàn)

w和x 用向量表示,

機(jī)器學(xué)習(xí)線性回歸原理介紹和功能實現(xiàn)

簡化后的公式表示如下,

機(jī)器學(xué)習(xí)線性回歸原理介紹和功能實現(xiàn)

對w,和b參數(shù)求偏導(dǎo),

機(jī)器學(xué)習(xí)線性回歸原理介紹和功能實現(xiàn)

然后再用梯度下降算法求取函數(shù)的最優(yōu)解,

機(jī)器學(xué)習(xí)線性回歸原理介紹和功能實現(xiàn)

上圖展示了一次更新過程,循環(huán)更新,直到得到最終的最優(yōu)解w1*,w2*,... wn*,b*。通過梯度下降算法我們找到了模型中的這一組參數(shù),帶入模型就可以對新樣本的預(yù)測了。到了這一步,求解線性回歸的模型參數(shù)已完成,可以得到根據(jù)當(dāng)前數(shù)據(jù)集擬合的整體誤差最小的模型了。

線性回歸代碼實現(xiàn)

這里為了演示上述過程,我們不用框架和庫文件,通過編碼的方式實現(xiàn) y = w1 * x + w2 * (x**2) + b 這個線性回歸模型的參數(shù)求解。展示用梯度下降算法求解模型參數(shù)的實現(xiàn)過程。

1)設(shè)置數(shù)據(jù)

###設(shè)置數(shù)據(jù)

X=[13,13,15,18,11,18,15,13,10,18,17,20.2,23,13,15,17,12,13,12,13,15,17,22,204,28,26,22,27,29,23]y=[18,17,10,18,13,13,15,18,10,19,17,18,20.1,10,15,19,18,14,10,18,16,14,10,18,20.0,20.3,29,21,24,26]

2)顯示數(shù)據(jù)

plt.scatter(X,y)plt.title('DatasetSamples')plt.xlabel('X')plt.ylabel('y')plt.show()

數(shù)據(jù)顯示參考下圖,

機(jī)器學(xué)習(xí)線性回歸原理介紹和功能實現(xiàn)

3)拆分?jǐn)?shù)據(jù)集

X_train=X[0:20]y_train=y[0:20]n_train=len(X_train)X_test=X[20:]y_test=y[20:]n_test=len(X_test)

4)擬合模型

####Fitmodel:y=w1*x+w2*(x**2)+bepoches=10000w1=-0.1w2=0.1b=0.3lr_w1=0.0lr_w2=0.0lr=0.001forepochinrange(epoches):sum_w1=0.0sum_w2=0.0sum_b=0.0foriinrange(n_train):y_hat=w1*X_train[i]+w2*(X_train[i]**2)+bsum_w1+=(y_train[i]-y_hat)*(-X_train[i])sum_w2+=(y_train[i]-y_hat)*(-X_train[i]**2)sum_b+=(y_train[i]-y_hat)*(-1)#UsingGradientDescenttoupdateparameters(w,b)det_w1=0*sum_w1det_w2=0*sum_w2det_b=0*sum_blr_w1=lr_w1+det_w1**2lr_w2=lr_w2+det_w1**2w1=w1-(1/math.sqrt(lr_w1)*det_w1)w2=w2-(1/math.sqrt(lr_w2)*det_w2)b=b-lr*det_b

5)展示模型擬合的結(jié)果

fig,ax=plt.subplots()ax.plot([iforiinrange(10,25)],[w1*i+w2*(i**2)+bforiinrange(10,25)])ax.scatter(X_train,y_train)plt.title('y=w1*x+w2*x^2+b')plt.legend(('Model','DataPoints'),loc='upperleft')plt.show()

模型展示的效果圖,

機(jī)器學(xué)習(xí)線性回歸原理介紹和功能實現(xiàn)

6)求解損失

total_loss_train=0foriinrange(n_train):y_hat=y_hat=w1*X_train[i]+w2*(X_train[i]**2)+btotal_loss_train+=(y_hat-y_train[i])**2print("訓(xùn)練集損失值:"+str(total_loss_train))total_loss_test=0foriinrange(n_test):y_hat=y_hat=w1*X_test[i]+w2*(X_test[i]**2)+btotal_loss_test+=(y_hat-y_test[i])**2print("測試集損失值:"+str(total_loss_train))

求解的損失參考下圖,

機(jī)器學(xué)習(xí)線性回歸原理介紹和功能實現(xiàn)

總結(jié):

本文通過經(jīng)典的線性回歸案例---波士頓房價預(yù)測,介紹了機(jī)器學(xué)習(xí)中線性回歸的實現(xiàn)原理,

1)構(gòu)建表示數(shù)據(jù)集中 特征值和標(biāo)簽值之間的關(guān)系的模型,將線性回歸問題轉(zhuǎn)換為求參數(shù)wi和b 的問題

2)定義損失函數(shù)-----預(yù)測值與真實值之間的差距

3)介紹了機(jī)器學(xué)習(xí)中的 求取函數(shù)最小值的算法-----梯度下降算法

4)用梯度下降算法求取損失函數(shù)的最小值,確定參數(shù)wi和b,從而確定模型

5)最后通過編碼的方式展示了用梯度下降算法求解模型參數(shù)的實現(xiàn)過程


版權(quán)說明:本文由用戶上傳,如有侵權(quán)請聯(lián)系刪除!


標(biāo)簽:

熱點推薦
熱評文章
隨機(jī)文章
蜜桃精品免费久久久久影院| 久久天天| 久久A免费视频| 日韩免费高清| 人妻少妇麻豆中文字幕久久精品| 国产内射精品| 亚洲成在人线AV| 少妇人妻好深好紧精品无码| 3D动漫精品啪啪一区二区免费 | 精品在线免费播放| 少妇99在线观看| 亚洲少妇精品| 国产口爆视频| 91av色| 中文字幕丰满伦子无码| 亚洲无码视频在线观看| 久久9精品区-无套内射无码| 亚洲乱伦熟妇| 日韩精品在线免费观看| 九一九色国产| 亚洲国产一区二区三区在线| 亚洲一区不卡视频| 办公室熟妇人妻久久精品| 成人欧美一区二区三区黑人动态图| 国户精品久久久久久久久久久不卡| 91凄人人澡人人爽人人精此品 | 日韩在线影视| 被按摩的人妻中文字幕| 人妻无码电影| 精品自拍一区| 天天三级片| 久久99国产乱子伦精品免费| 国产www视频| 久久人午夜亚洲精品无码区牛牛网| 激情国产综合| 最新亚洲AV| 亚洲成人福利| 久久久久成人精品无码| 欧美精品九九| 亚洲四区在线观看| 亚洲AV无码1区2区久久|