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