有資料集(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+θ
1x1
+θ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...