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