import torch as t
from torch.autograd import variable as v
# 簡單的線性回歸,y = w*x + b, 根據隨機梯度下降得到最接近的w和b
# 第一步準備資料
t.manual_seed(
1000
)def
get_fake_data
(batch_size=8)
: x = t.rand(batch_size,1)
*20y = x*2+
(1+t.randn(batch_size,1)
)*3return x, y
# 第二步及第三步,定義網路及訓練
w = t.rand(1,
1)# w = v(t.rand(1,1),requires_grad=true),轉化為variable
b = t.zeros(1,
1)# b = v(t.zeros(1,1),requires_grad=true),葉子節點
lr =
0.001
for ii in
range
(20000):
x, y = get_fake_data(
)# x, y = v(x), v(y)
# forward
y_pred = x.mm(w)
+b.expand_as(y)
loss =
0.5*
(y_pred - y)**2
loss = loss.
sum(
)# backward
dloss =
1# loss.backward()
dy_pred = dloss*
(y_pred - y)
# w.data.sub_(lr*w.grad.data)
dw = x.t(
).mm(dy_pred)
# b.data.sub_(lr*b.grad.data*lr)
db = dy_pred.
sum(
)# w.grad.zero_(),每次都需要梯度清零,不然會累加
# 更新引數 # b.grad.zero_(),每次都需要梯度清零,不然會累加
簡單線性回歸
真實值 y theta x varepsilon 值 hat theta x varepsilon 為誤差 項,服從 均值為0 方差為 為誤差項,服從均值為0,方差為 為誤差項,服 從均值為 0,方差 為 sigma 的高斯分布。已知若干樣本,可以得到若干 varepsilon 值,根 據極大似 然...
簡單線性回歸
資料預處理 data student data 1 刪除缺失值 lm data na.omit data 散點圖 plot height,weight,data data,main scatter plot col 1,pch col為顏色,pch為形狀 箱線圖 boxplot height wei...
2 1 簡單線性回歸
使用一種基於自變數 x 來 因變數 y 的方法,假設這兩個變數是線性相關的,因此我們嘗試尋找一種根據特徵或自變數 x 的線性函式來精確 響應值 y import pandas as pd import numpy as np import matplotlib.pyplot as plt datas...