pytorch 实现简单线性回归
问题描述:
使用 pytorch 实现一个简单的线性回归。
受教育年薪与收入数据集
单变量线性回归
单变量线性回归算法(比如,$x$ 代表学历,$f(x)$ 代表收入):
$f(x) = w*x + b $
我们使用 $f(x)$ 这个函数来映射输入特征和输出值。
目标:
预测函数 $f(x)$ 与真实值之间的整体误差最小。
损失函数:
使用均方差作为作为成本函数。
也就是预测值和真实值之间差的平方取均值。
成本函数与损失函数:
优化的目标( $y$ 代表实际的收入):
找到合适的 $w$ 和 $b$ ,使得 $(f(x) - y)^{2}$越小越好
注意:现在求解的是参数 $w$ 和 $b$。
过程
1 导入实验所需要的包
2 读取数据
3 查看数据信息
查看数据
查看数据类型
4 图表显示数据
5 转换数据为 tensor 类型
查看特征数据
查看特征数据 index
查看特征数据 value
特征数据变换形状
查看特征数据变换后的形状
查看特征数据变换后的数据类型
修改特征数据变换后的数据类型
特征数据和标签转换为tensor
6 定义模型
定义线性回归模型:
定义均方损失函数
定义优化器
7 模型训练
8 输出权重和偏置
tensor 类型数据带梯度转换为numpy需要先去梯度
9 获取预测值 y_pred
预测值类型
预测值size
10 绘制回归曲线
完整代码:
view code