線性回歸及python實現

2021-10-05 07:43:44 字數 2674 閱讀 7404

有資料集(x1

,y1)

,(x2

,y2)

,...

,(xn

,yn)

(x1​,y

1​),

(x2​

,y2​

),..

.,(x

n​,y

n​),其中,xi=

(xi1

,xi2

,xi3

,...

,xid

),yi

∈rx_i = (x_,x_,x_,...,x_),y_i \in r

xi​=(x

i1​,

xi2​

,xi3

​,..

.,xi

d​),

yi​∈

r, 其中n表示變數的數量,d表示每個變數的維度。

可以用以下函式來描述y和x之間的關係:

f (x

)=θ0

+θ1x

1+θ2

x2+.

..+θ

dxd=

∑i=0

dθix

if(x) = \theta_ + \theta_1x_1 + \theta_2x_2 + ... + \theta_dx_d = \sum_^\theta_ix_i

f(x)=θ

0​+θ

1​x1

​+θ2

​x2​

+...

+θd​

xd​=

∑i=0

d​θi

​xi​

均方誤差是回歸中常用的效能度量,即:j(θ

)=12

∑j=1

n(hθ

(x(i

))−y

(i))

2\\ j(\theta)=\frac\sum_^(h_(x^)-y^)^2

j(θ)=2

1​∑j

=1n​

(hθ​

(x(i

))−y

(i))

2損失函式(loss function):度量單樣本**的錯誤程度,損失函式值越小,模型就越好。

代價函式(cost function):度量全部樣本集的平均誤差。

目標函式(object function):代價函式和正則化函式,最終要優化的函式。

常用的損失函式包括:0-1損失函式、平方損失函式、絕對損失函式、對數損失函式等;常用的代價函式包括均方誤差、均方根誤差、平均絕對誤差等。

1、梯度下降法

2、最小二乘法矩陣求解

3、牛頓法

1、均方誤差(mse)

2、均方根誤差(rmse)

3、平均絕對誤差(mae)

4、可決係數r

2r^2

r2

#生成資料

import numpy as np

#生成隨機數

np.random.seed(1234)

x = np.random.rand(500,3)

#構建對映關係,模擬真實的資料待**值,對映關係為y = 4.2 + 5.7*x1 + 10.8*x2,可自行設定值進行嘗試

y = x.dot(np.array([4.2,5.7,10.8]))

#應用最小二乘法做回歸

import pandas as pd

import statsmodels.api as sm

est = sm.ols(y, x).fit() #無截距項

#est = sm.ols(y, sm.add_constant(x)).fit() #有截距項

y_pred = est.predict(x)

print(est.summary()) #回歸結果

print(est.params) #係數

#呼叫sklearn的線性回歸模型訓練資料

from sklearn.linear_model import linearregression

# 呼叫模型

lr = linearregression(fit_intercept=true)

# 訓練模型

lr.fit(x,y)

print("估計的引數值為:%s" %(lr.coef_))

##根據公式計算評價指標

y_pred=lr.predict(x)

y_test=y

mse_test=np.sum((y_pred-y_test)**2)/len(y_test)

mae_test=np.sum(np.absolute(y_pred-y_test))/len(y_test)

rmse_test=mse_test**0.5

r2_score=1-(mse_test/np.var(y_test))

print('公式法:')

print('均方誤差:{},平均絕對誤差:{},\n均方根誤差:{},可決係數:{}'.format(mse_test,mae_test,rmse_test,r2_score))

python實現線性回歸

定義 線性回歸在假設特徵滿足線性關係,根據給定的訓練資料訓練乙個模型,並用此模型進行 文中只介紹了簡單的概念,不涉及公式的證明等。從最簡單的一元線性關係介紹,假設有一組資料型態為 y theta x,其中 x y 我們根據 x,y 模擬出近似的 theta 引數值,進而得到 y theta x 模型...

python實現線性回歸

線性回歸模型是最簡單的機器學習模型,基礎可以從線性回歸模型開始入手,慢慢地過渡到非線性回歸以及神經網路模型。1.概念 2.線性回歸 簡單回歸 乙個自變數輸入,y x是一對一的關係,對映到幾何上來說就是二維座標系的直線方程,可表示為y 多元回歸 多個自變數,改變維度的大小。即 3.最小二乘法 通過向量...

python實現線性回歸

線性回歸模型是機器學習中最基礎的演算法,同時也在工業上得到很大應用。編碼實現該方法,可以對其有個透徹理解。回歸模型 目標函式 對目標函式求偏導 更新引數 樣本矩陣表示 python 實現 import numpy as np class linear object def init self sel...