機器學習之線性回歸

2021-08-17 15:55:29 字數 2730 閱讀 1768

線性回歸分析(regression analysis):其資料集是給定乙個函式和他的一些座標點,然後通過回歸分析的演算法,來估計原函式的模型,求得最符合這些資料集的函式解析式。然後我們就可以用來預估未知資料,輸入乙個自變數便會根據這個模型解析式輸出因變數,這些自變數就是特徵向量,因變數即為標籤,而且標籤的值是建立在連續範圍內的。

通俗來講就是我們在做數學題的時候,解未知數的方法。假如給定自變數和函式,通過函式處理自變數,然後獲得函式的解。而回歸分析便是相當於給定自變數和函式的解,然後去求函式。如下圖所示,我們已經知道紅色點座標,然後回歸得到直線,回歸分析屬於監督學習

上圖只是簡單的一元線性分析,回歸後我們可以得到如f(x

)=a∗

x+bf(x)=a*x+b

f(x)=a

∗x+b

的函式表示式,但更多情況下我們是求解多元線性回歸問題,那應該如何解決呢。

建立數學模型之前,我們先定義如下變數。

3.1梯度下降演算法簡述

實際生活中我們有時也利用梯度下降演算法,比如我們處在一座山的某處位置,但我們並不知道如何下山,於是決定走一步算一步,但每次都沿著最陡峭的地點下山,也就是沿著梯度的負方向前進。但有事也會遇見問題,不能每次都能到達山腳,可能到達山峰的某個區域性最低點。

從上面解釋可以看出,梯度下降不一定能夠找到全域性最優解,有可能是區域性最優解,但此種方法已能幫助我們求解線性回歸問題。另外如果求解的函式是凸函式,梯度下降法得到得解一定是全域性最優解。

3.2 梯度下降演算法相關概念

求解梯度下降演算法之前,我們先了解相關概念。

3.3梯度下降演算法過程

import numpy as np

import pandas as pd

import matplotlib.pyplot as plt

from sklearn import linear_model

from mpl_toolkits.mplot3d import axes3d

import seaborn as sns

#read_csv

readdata=pd.read_csv(

'data/advertising.csv'

)data=np.array(readdata.values)

#訓練資料

x_train=data[0:

150,1:

3]y_train=data[0:

150,3]

#測試資料

x_test=data[

150:

200,1:

3]y_test=data[

150:

200,3]

#回歸分析

regr = linear_model.linearregression(

)#進行training set和test set的fit,即是訓練的過程

regr.fit(x_train, y_train)

# 列印出相關係數和截距等資訊

print

('coefficients: \n'

, regr.coef_)

print

('intercept: '

, regr.intercept_)

# the mean square error

print

("residual sum of squares: %.2f"

% np.mean(

(regr.predict(x_test)

- y_test)**2

))# explained variance score: 1 is perfect prediction

print

('variance score: %.2f'

% regr.score(x_test, y_test)

)#得出回歸函式 並自定義資料

x_line=np.linspace(0,

300)

y_line=np.linspace(0,

50)z_line=

0.04699836

*x_line+

0.17913965

*y_line+

3.00431061176

#畫圖fig=plt.figure(

)ax = plt.subplot(

111, projection=

'3d'

)# 建立乙個三維的繪圖工程

ax.scatter(data[:,

1],data[:,

2],data[:,

3],c='red',)

# 繪製資料點

ax.plot(x_line,y_line,z_line,c=

'blue'

)#繪製回歸曲線

其中紅色為資料點,藍色線便為我們回歸之後的曲線,這裡我們是利用sklearn進行線性回歸分析,後續會寫出sklearn教程。如有錯誤之處還請指正,謝謝。

機器學習之線性回歸

訓練樣例 x y 輸入變數 特徵 x ps n 1行,1 列 輸出變數 目標變數 y訓練樣例總數 m 特徵維度 n第 i 個訓練樣例 x i y i 所有訓練樣例的輸入變數組成的矩陣 x ps m行,n 1 列,每行是 x i t 所有訓練樣例的輸出變數組成的矩陣 y ps m行,1 列 下表是某地...

機器學習之線性回歸

線性回歸就是用線性方程去擬合一組資料,x 的最高端是1,用方程可以表示為 h x 0 1x1 n xn我們令 x0 1則上式可以改寫為 h x i 0n ixi tx 既然是擬合的模型,則肯定會存在不符合該模型的點,第 i 個點的真實值與模型 的值之間的差稱為誤差 e h x i y i 假設總共有...

機器學習之線性回歸

機器學習之線性回歸 已有資料是 電視廣告的投入 x 產品銷售量 y import pandas as pd import numpy as np import matplotlib.pyplot as plt from sklearn.linear model import linearregres...