多元線性回歸

原理

相較于簡(jiǎn)單線性回歸,多元線性回歸僅僅是特征數(shù)從一變成了多,其他的基本上沒有變化

  • 注意行為樣本,列為特征


    X矩陣的排列示意
  • 基于多元線性回歸,對(duì)某一個(gè)樣本X(i),如圖


    多元線性回歸

    相較于簡(jiǎn)單線性回歸,其橫坐標(biāo)仍然是X(i)但從單個(gè)數(shù)值變成了一行數(shù)值,也就是一個(gè)1*n(n為特征數(shù))的矩陣

  • 我們注意到方程和簡(jiǎn)單線性回歸一樣,有一個(gè)常數(shù),所以我們不妨添加一行X(i=0)


    1
  • 改變之后,我們注意到,這時(shí)y_hat與x和seata的關(guān)系
    關(guān)系
  • 目標(biāo)不變,仍為使預(yù)測(cè)值與數(shù)據(jù)值相差更小,這時(shí)我們使用矩陣的表示形式


    目標(biāo)

    這時(shí)我們可以推導(dǎo)出seata的表達(dá)式,推導(dǎo)過程這里省略

  • seata的這個(gè)表達(dá)式被稱為正規(guī)方程解
  • 注意,假設(shè)最初X數(shù)據(jù)為mn的矩陣,這時(shí)Xb為mn+1,seata為n+1*1的矩陣(其實(shí)一般而言是不區(qū)分Xb和X的)

利用正規(guī)方程進(jìn)行實(shí)現(xiàn)

import numpy as np
import matplotlib.pyplot as plt
from sklearn import datasets
boston=datasets.load_boston()
#波士頓房產(chǎn)數(shù)據(jù)
x=boston.data
y=boston.target
x=x[y<np.max(y)]
y=y[y<np.max(y)]
from sklearn.model_selection import train_test_split
x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.2,random_state=666)
#實(shí)際上這里size默認(rèn)是0.2
#下面開始訓(xùn)練線性回歸模型

X_b = np.hstack([np.ones((len(x_train), 1)), x_train])
theta = np.linalg.inv(X_b.T.dot(X_b)).dot(X_b.T).dot(y_train)

intercept_ = theta[0]#返回截距
coef = theta[1:]#返回theta向量

        
xtest_b=np.hstack([np.ones((len(x_test), 1)), x_test]) 
y_predict=xtest_b.dot(theta)
mse_test=np.sum((y_predict-y_test)**2)/len(y_test)
rsquared=mse_test/np.var(y_test)

其中可也得到截距等參數(shù)如圖


結(jié)果

使用sklearn進(jìn)行多元線性回歸

同樣的例子,完全使用sklearn進(jìn)行編寫,這時(shí)候我們要注意到,它并沒有采用正規(guī)化方程的方法,但由于我們是不用知道其底層究竟是如何封裝的,所以目前盡管使用就是

import numpy as np
import matplotlib.pyplot as plt
from sklearn import datasets
boston=datasets.load_boston()
#波士頓房產(chǎn)數(shù)據(jù)
x=boston.data
y=boston.target
x=x[y<np.max(y)]
y=y[y<np.max(y)]
from sklearn.model_selection import train_test_split
x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.2,random_state=666)
#實(shí)際上這里size默認(rèn)是0.2
#下面開始訓(xùn)練線性回歸模型
from sklearn.linear_model import LinearRegression
Lin_reg=LinearRegression()
Lin_reg.fit(x_train,y_train)
Lin_reg.score(x_test,y_test)
得到結(jié)果

總結(jié)

其實(shí)在學(xué)習(xí)的課程里面,關(guān)于多元線性回歸還有一些對(duì)于可解釋性等的思考與介紹,有利于我們對(duì)于現(xiàn)實(shí)模型的理解,這里我不是很想贅述,因?yàn)榭赡芪覀儗W(xué)習(xí)ml,更多用到的可能是后面復(fù)雜一些的算法,另外可解釋性也是很容易理解的,在實(shí)際上手?jǐn)?shù)據(jù)之后,相必我們拿到預(yù)測(cè)結(jié)果自己也能有所分析?。。∷詢?nèi)容暫且寫到這里吧,以后還有想要增加的內(nèi)容,我也會(huì)自行增加!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 前言 一元線性回歸只是讓我們好理解回歸這個(gè)概念。在實(shí)際中特征很少說只有一個(gè)。所有就有多元線性回歸。 概念 與一元線...
    skullfang閱讀 1,892評(píng)論 0 5
  • 在統(tǒng)計(jì)學(xué)10-回歸一文中介紹了一元線性回歸的概念。假設(shè)我們現(xiàn)在有多個(gè)解釋變量,如何構(gòu)造多元線性回歸模型呢? 第一個(gè)...
    趙陽_c149閱讀 2,202評(píng)論 0 7
  • 概述 之前我們講了最基本、最簡(jiǎn)單的一元線性回歸算法,本章主要講解多元線性回歸,以及梯度下降、特征縮放和正規(guī)方程解等...
    AnuoF閱讀 2,261評(píng)論 1 1
  • 1. 模型簡(jiǎn)介 模型思想 多元線性回歸(multiple linear regression) 模型的目的是構(gòu)建一...
    風(fēng)逝流沙閱讀 20,726評(píng)論 0 5
  • 陳曦坐在簡(jiǎn)寧對(duì)面,耐心地給簡(jiǎn)寧調(diào)著芝麻醬。 這家德順祥的羊肉在當(dāng)?shù)睾苡忻?,從公園出來,陳曦提議去吃涮羊肉,說這個(gè)天...
    孟婆的碗不空閱讀 601評(píng)論 9 12

友情鏈接更多精彩內(nèi)容