2 線性回歸

2022-10-09 12:48:09 字數 1415 閱讀 1867

模型的可解釋性

對loss.sum().backward()的理解:

.sum()的理解

import torch

x = torch.arange(4.0)

x.requires_grad_(true)

y = 2 * torch.dot(x, x)

y.backward()

x.grad

# 輸出: tensor([ 0., 4., 8., 12.])

x.grad.zero_()

y = x.sum()

y.backward()

x.grad

# 輸出: tensor([1., 1., 1., 1.])

x.grad.zero_()

y = x * x

# 等價於y.backward(torch.ones(len(x)))

y.sum().backward()

x.grad

#輸出: tensor([0., 2., 4., 6.])

##原始碼

class tensordataset(dataset):

each sample will be retrieved by indexing tensors along the first dimension.

arguments:

*tensors (tensor): tensors that h**e the same size of the first dimension.

"""'''資料集包裝張量。

每個樣本將通過沿第一維索引張量來檢索。

引數:*張量(張量):具有與第一維相同大小的張量。'''

def __init__(self, *tensors):

assert all(tensors[0].size(0) == tensor.size(0) for tensor in tensors)

self.tensors = tensors

def __getitem__(self, index):

return tuple(tensor[index] for tensor in self.tensors)

def __len__(self):

return self.tensors[0].size(0)

pytorch原始碼解讀之torch.utils.data.dataloader

上圖是梯度更新的公式,其中l是損失,如果說損失沒有沒有平均,那麼就需要再學習率上除以樣本大小,保證更新值保持在同一尺度。

梯度下降(一階導演算法) 牛頓法(二階導演算法、收斂速度更快)

2 線性回歸

線性回歸演算法是使用線性方程對資料集進行擬合的演算法,是乙個非常常見的回歸演算法 就是經典的最小二乘法問題 最小化誤差的平方 均方誤差mse 公式 是mse開個根號,其實實質是一樣的。只不過用於資料更好的描述。例如 要做房價 每平方是萬元,我們 結果也是萬元。那麼差值的平方單位應該是千萬級別的。那我...

回歸的線性模型(2)

其實越往後面越發現自己之前認識的片面性,但是對我這種記性不好的人來說還是要寫一點東西總結一下,以便之後翻查,審視自己當初的思路有沒有錯誤。不當之處還請各位及時批評。前文已經看到,採用最大似然方法對目標變數的分布進行點估計時,容易產生過擬合現象,通過引入分布引數的先驗概率來引入正則化項,來限制模型複雜...

2 非線性回歸

import keras import numpy as np import matplotlib.pyplot as plt sequential按順序構成的模型 from keras.models import sequential dense全連線層 from keras.layers imp...