先掌握pytorch,学好pytorch, 才能学好人工智能
Linear regression
线性回归是一种用于建模两个或多个变量之间关系的统计方法。在这种模型中,一个或多个自变量(也称为预测变量或特征)与一个因变量(也称为响应变量或目标)之间的关系被假定为线性的,即这些变量的关系可以用一条直线(在二维空间中)或一个超平面(在多维空间中)来近似表示。
基本概念
- 自变量(X):用于预测因变量的变量。
- 因变量(Y):需要被预测的变量。
- 线性关系:自变量和因变量之间的关系可以表示为一条直线(Y = aX + b),其中a是斜率,b是截距。
- 回归系数(或权重):在线性方程中,每个自变量前的系数,表示该自变量对因变量的影响程度。
- 截距:线性方程中当所有自变量都为0时的因变量值。
线性回归的步骤
- 数据收集:收集包含自变量和因变量的数据集。
- 数据预处理:处理缺失值、异常值,进行特征缩放等。
- 模型构建:建立线性回归模型,即确定线性方程的形式。
- 参数估计:使用最小二乘法或其他优化方法估计回归系数和截距。
- 模型评估:通过计算残差、决定系数(R²)、均方误差(MSE)等指标评估模型的拟合效果。
- 预测:使用训练好的模型对新的数据进行预测。
原始模型
import torch
import matplotlib.pyplot as plt
# 设置CPU生成随机数的种子,方便下次复现实验结果。
torch.manual_seed(9)
# 准备训练数据
x = torch.rand(30,1)*10
y = 3*x + 2 + torch.rand(30,1)
# print('output','\n', 'x :', x,x.shape)
# print('\n', 'y :', y,y.shape)
# 初始参数
# w = torch.rand(size=(30,1),requires_grad=True)
# b = torch.zeros(size=(30,1),requires_grad=True)
w = torch.randn(1,requires_grad=True)
#.grad属性:在PyTorch中,每个tensor都有一个.grad属性,用于存储该tensor的梯度。对于leaf tensor,如果在计算图中它们参与了梯度计算,那么.grad属性会在反向传播后被填充。
b = torch.ones(1,requires_grad=True)
print('\n', 'w :', w,w.shape)
print('\n', 'b :',