线性回归及PyTorch的Linear实现

线性关系

  • 线性:两个变量之间的关系为一次函数关系——直线
  • 非线性:两个变量之间的关系不是一次函数关系——非直线
  • 回归:测量事物的时候因客观条件所求的是测量值,不是真实值,为获得真实值,通过测量数据计算回归到真实值。

解决的问题:

        通过对观测数据处理,得到符合事物内部规律的数学表达式。即寻找数据与数据的规律,模拟出结果,通过已知数据得到未知结果。例如:对房价的预测、判断信用评价、电影票房预估等。

        表达式一般为: W * x + b = Y,使用 MSE 做损失函数:,利用梯度下降法找到最小值点,也就是最小误差,求出 w 和 b 。

过拟合与欠拟合:

        使用正则化项,在损失函数加上一个参数项,正则化项有L1正则化(lasso回归)、L2正则化(岭回归)、ElasticNet。加入这个正则化项好处:

  • 控制参数幅度
  • 限制参数搜索空间
  • 解决欠拟合与过拟合的问题。

如果输入特征的维度很高,而且是稀疏线性关系的话, 可考虑使用Lasso回归。

        用Lasso回归太多特征被稀疏为0,而岭回归的回归系数衰减太慢,可使用ElasticNet回归来综合,会得到比较好的结果。

PyTorch 的线性层 nn.Linear()

torch.nn.Linear(in_features, # 输入的神经元个数,

                         out_features, # 输出神经元个数,

                         bias=True # 是否包含偏置)

        Linear 就是对输入 X(n * i)  执行了一个线性变换:,W是模型要学习的参数,维度为 i * o,b 是 o 维的向量偏置,n 为输入向量的行数(例如,一次输入10个样本,即batch_size为10,则 n = 10),i 为输入神经元的个数(例如样本特征数为5,则 i = 5),o 为输出神经元的个数。

import torch
from torch import nn

model = nn.Linear(2, 1, bias=True)  # 输入特征数为2,输出特征数为1
i = torch.Tensor([1, 2])  # 给一个样本,该样本有2个特征(这两个特征的值分别为1和2)
o = model(i)
print(o)

# 查看模型参数, 含有两个权重和一个偏执
for param in model.parameters():
    print(param)

回归评价:

1. 均方误差(MSE):常用评估回归模型性能的指标,衡量预测值与实际值之间的平均平方差。MSE越小,说明模型的预测结果越接近真实值,模型的性能越好。

2. 均方根误差(RMSE):RMSE是MSE的平方根,预测误差的量级。

3. R-squared(R_):决定系数,衡量模型对数据的拟合程度。R_的值介于0和1之间,越接近1,说明模型对数据的拟合程度越好。1 - (残差平方和 / 总平方和),残差平方和是预测值和实际值差的平方和,总平方和是实际值与均值差的平方和。

4. MAE(平均绝对误差):MAE是所有单个观测值与真值的绝对差之和的平均数。

5. 学习曲线:可视化工具,通过绘制训练集和验证集上的误差随着训练轮次的变化情况,了解模型是否过拟合或欠拟合。

参考:

ML-NLP/1.Liner Regression.md at master · NLP-LOVE/ML-NLP · GitHub

NLP-LOVE/ML-NLP: 此项目是机器学习(Machine Learning)、深度学习(Deep Learning)、NLP面试中常考到的知识点和代码实现,也是作为一个算法工程师必会的理论基础知识。 (github.com)

Pytorch nn.Linear的基本用法与原理详解_iioSnail的博客-CSDN博客

nn.Linear 官方文档:

pytorch学习线性回归与非线性回归,以及理解nn.linear()和ReLU激活函数_py的linear和reul_LiterMa的博客-CSDN博客

Pytorch:25分钟训练两亿线性回归模型 - 知乎

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值