python線性回歸基本實現

2021-08-20 18:35:14 字數 1568 閱讀 1353

1.到入庫

import numpy as np #匯入資料處理模組numpy

import matplotlib.pyplot as plt #繪圖模組

2. 產生隨機資料
x = np.arange(-2, 2, 0.1) # -2到2按照0.1為步距

length = len(x)

y = 2*x+4+(np.random

.random(length)-0.5)*3

#y=2*x+4 加上隨機數

x = x

.reshape(length, 1)

y = y

.reshape(length, 1)

plt.figure()

plt.scatter(x, y)

plt.show()

效果圖:

3.梯度下降

對m b進行求導

記err = h(x[i]) - y[i],則得到:

m,b的導數分別時 err*x 和 err

得到導數之後,就需要使得m,b朝著使得error值小的方向變化。下面結合**分析:

m = 1

#m, b初始化 一般用隨機值

b = 0

learning_rate = 0.005

#學習率

defgredient

(x, y, m, b) :

for i in range(0, length) :

err = (m*x[i] + b) - y[i]

m -= err * x[i] * learning_rate

b -= err * learning_rate

return [m, b]

#訓練次數

times = 100

for i in range(times) :

m, b = gredient(x, y, m, b)

print(m, b)

#繪製最終結果

x_b = [-2,2]

y_b = [-2*m + b,2*m +b]

plt.figure()

plt.plot(x_b, y_b)

plt.scatter(x, y)

plt.show()

對樣本進行遍歷時,更新m,b的值,這個變化的值由導數(理解為斜率)和learning_rate(理解為斜率方向移動步長)組成。

實驗結果:

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