多元線性回歸演算法

2021-08-14 04:02:00 字數 2974 閱讀 5848

在簡單的線性回歸演算法基礎上,若x代表的不是乙個單一的數值,而是乙個向量,下面給出張ppt圖

如圖所示,在多元線性回歸演算法中,x已成了乙個向量,自然y的表示式已經不再是之前簡單的一元二次方程,而我們所需要求得的**誤差也如下所示:

同簡單線性回歸一樣,只不過就是一維運算換成了向量運算。為了使得損失函式最小,接下來,我們來簡化下**值y

為了匹配成矩陣相乘的形式,從上圖我們可以看出的是,我們新增加了x0這個引數,代表i樣本第0個特徵恒為1,從而得到了最簡的**值y的表示式。

換成矩陣的形式,就如下:

接著我們把上述的表示式代換到求誤差的公式中,可得如下式子:

我們根據之前的最小二乘法類似的原理,對矩陣求導,可得到θ的表示式:

這個θ的求解,有個問題就是時間複雜度高,但不需要對資料做歸一化的處理,接下來分析下:

其中θ分為兩部分,第一部分成為截距,第二部分為係數,係數部分每乙個θ值對應原來樣本中的乙個特徵,這個係數從某種程度上來講,可以用於描述我們這些特徵對於最終樣本相應貢獻的程度是怎樣的,θ0與特徵無關只代表偏移。

import numpy as np

from .metrics import r2_score

class

linearregression:

def__init__

(self):

"""初始化linear regression模型"""

self.coef_ = none

self.intercept_ = none

self._theta = none

deffit_normal

(self, x_train, y_train):

"""根據訓練資料集x_train, y_train訓練linear regression模型"""

assert x_train.shape[0] == y_train.shape[0], \

"the size of x_train must be equal to the size of y_train"

x_b = np.hstack([np.ones((len(x_train), 1)), x_train])

self._theta = np.linalg.inv(x_b.t.dot(x_b)).dot(x_b.t).dot(y_train)

self.intercept_ = self._theta[0]

self.coef_ = self._theta[1:]

return self

defpredict

(self, x_predict):

"""給定待**資料集x_predict,返回表示x_predict的結果向量"""

assert self.intercept_ is

notnone

and self.coef_ is

notnone, \

"must fit before predict!"

assert x_predict.shape[1] == len(self.coef_), \

"the feature number of x_predict must be equal to x_train"

x_b = np.hstack([np.ones((len(x_predict), 1)), x_predict])

return x_b.dot(self._theta)

defscore

(self, x_test, y_test):

"""根據測試資料集 x_test 和 y_test 確定當前模型的準確度"""

y_predict = self.predict(x_test)

return r2_score(y_test, y_predict)

def__repr__

(self):

return

"linearregression()"

import numpy as np

import matplotlib.pyplot as plt

from sklearn import datasets

boston = datasets.load_boston()

x = boston.data

y = boston.target

x = x[y<50.0]

y = y[y<50.0]

from sklearn.linear_model import linearregression

lin_reg = linearregression()

lin_reg.fit(x_traiin, y_train)

lin_reg.coef_

lin_reg.intercept_

線性回歸演算法是典型的分類演算法,很多分類演算法中,線性回歸是基礎,線性回歸具有強解釋性,對資料有假設線性關係,且只能解決回歸問題。

多元線性回歸

多元線性回歸的基本原理和基本計算過程與一元線性回歸相同,但由於自變數個數多,計算相當麻煩,一般在實際中應用時都要借助統計軟體。介紹多元線性回歸的一些基本問題。但由於各個自變數的單位可能不一樣,比如說乙個消費水平的關係式中,工資水平 受教育程度 職業 地區 家庭負擔等等因素都會影響到消費水平,而這些影...

多元線性回歸

from numpy import genfromtxt 用來讀取資料轉化為矩陣 from sklearn import linear model 含有回歸的模型 datapath r c users qaq desktop delivery dummy.csv 路徑 deliverydata ge...

多元線性回歸

比如有乙個住房 的資料集,可能會有多個不同的模型用於擬合,選擇之一像是這種二次模型 0 1x 2x2,因為直線並不能很好的擬合這些資料。但是現在如果用二次函式去考慮,可能會想到二次函式在最高點之後會下降,但是 並不會下降,並不合理,那我們可以用 0 1x 2x2 3x3這樣的三次模型。如果像這樣選擇...