python模擬實現線性回歸解析解求最優模型

2021-10-04 01:14:57 字數 1397 閱讀 6846

import numpy as np   #數值計算庫

import matplotlib.pyplot as plt #繪相簿

# 這裡相當於是隨機x維度x1,rand是隨機[0,1)均勻分布 形狀是100行1列

x =2

* np.random.rand(

100,1)

# 人為的設定真實的y一列,np.random.randn(100, 1)是設定error,randn是標準正態分佈

y =4+3

* x + np.random.randn(

100,1)

# 整合x0和x1構造出x矩陣 [100,2],這是由於權重引數w0恒為1即認為w0為偏置項

x_b = np.c_[np.ones(

(100,1

)), x]

# 常規等式求解theta

#np.linalg.inv()用於矩陣求逆

#a.t表示矩陣轉置

#a.dot(b)為矩陣a,b進行點乘

theta_best = np.linalg.inv(x_b.t.dot(x_b)

).dot(x_b.t)

.dot(y)

print

(theta_best)

# 建立乙個測試集,大小為兩行一列

x_new = np.array([[

0],[

2]])

#把x0=1新增到測試矩陣中構造出兩行兩列的測試矩陣

x_new_b = np.c_[

(np.ones((2

,1))

), x_new]

#測試矩陣與權重矩陣相乘求出**值

y_predict = x_new_b.dot(theta_best)

print

(y_predict)

plt.plot(x_new, y_predict,

'r-'

)#繪製最優解的圖線 r表示紅色,-表示直線

plt.plot(x, y,

'b.'

)#繪製真實樣本分佈,b表示藍色,.表示散點

plt.axis([0

,2,0

,15])

#指定x,y軸的區域範圍

plt.show(

)#顯示圖形

繪圖結果如下:

可以看出我們利用解析解一步求出最優權重,該一次圖線盡可能的穿過真實樣本點。

解析解求解公式如下圖:

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...