• 机器学习经验


    以下是个人的一些想法,后面有时间还会持续更新(但是总是木有时间啊)。

    1. 大多数预测值都比实测值成倍数的缩小或者扩大

      原由:迭代不充分,算法不收敛。

    2. 归一化会缩小训练时长
      一个极端案例:预测未来16个点,5k 数据量,transformer,归一化500迭代次数即可,不归一化,迭代3000次才收敛。

    3. 评测指标mape的弊端
      对于实测值较小时不友好: 需要对目标值划分区间,分开测评。
      在这里插入图片描述

    4. 随机森林回归、决策树回归和线性回归、神经网络的区别:
      训练集的分布不能完全代表总体分布时,用线性回归和神经网络
      前者基于对特征划最优区间,在区间中取均值的方式来估计增量数据目标值,所以在估计新样本目标值时,取值范围只局限于训练集目标值的取值,后者因为拟合的是因变量关于自变量的函数关系则不需要受此限制。
      如果训练集分布可以完全代表总体分布,那么这种差异性可以忽略。
      如果训练集分布不能完全代表总体分布时,前者增量数据实际目标值不在训练集目标值范围内时,就不能被估计出来了,而线性回归因为代表着自变量和因变量的隐含关系,即使拟合的不是很准确,在这种场景下,还是可以拟合出来目标值的部分信息的。
      用随机森林回归、决策树回归出现如下情况时,便可考虑增加样本量,对于增加不了样本量的情况,可选择用线性回归、神经网络拟合,来适当降低误差。
      在这里插入图片描述
      用随机森林、决策树回归估计目标值出现规律性错误时,可以尝试用普通回归,神经网络
      做过一个案例,用随机森林回归对每天的数据做回归估计,有个规律性的估计错误:早和晚上估计不准。换成普通线性回归就没有这个问题了。效果溯源时发现是早晚的特征区间和其他时间段的特征区间合并了,早晚的取值又被这个时间段内的取值给平均了。而线性回归捕捉到了特征和目标值的隐含关系,所以估计对了。

    5. 数据不均衡
      我在第二家公司时,得到了一个玄学经验,到现在我都费解。文本分类时,训练集样本类别不均衡时,对训练集做复制黏贴增加样本量,可以很大程度提高召回率(我的目标是降低漏检),玄学,但因为后来生宝宝我转到工业领域后很少做分类,所以这个经验是不是广泛适用,不得而知了。

    6. 微调优时增加低相关性特征
      我在做很多实验时都发现增加低相关性特征会降低rmse值的现象,与此同时,某个重要特征的重要性会降低(如随机森林可以通过打印rf.feature_importances_查看特征重要性)。不过新增特征有时候也会对模型带来负面影响。关于这个现象的建议是:在微调优的时候,可以加一些微不足道的特征试试。

    7. 时序数据预测
      时序数据预测时,增加增长率特征,屡试不爽。

    8. 线上训模型时注意算法复杂度
      案例:40万条训练,9万条测试,普通笔记本,dt回归、lr回归、knn回归、rf回归、adaboost回归、gbrt回归、bagging回归分别测试,半小时内妥妥出结果,svm回归在训练40分钟不出结果后,我强行关闭了,鉴于svm的最小时间复杂度为 O(n^2),n是样本量,要谨慎线上训练啊。

  • 相关阅读:
    HTML5--全局属性--事件
    Linux中输出输入重定向
    【web】理解 Cookie 和 Session 机制
    Istio 自动注入 sidecar 失败导致无法访问webhook服务
    SpringBoot使用Mybatis
    低温温度传感器类型
    HTTP与HTTPS的区别及HTTPS如何安全的传输数据
    JavaScript基础(11)_方法、枚举对象中的属性、作用域
    1 什么是MyBatis?
    Git 小白入门到进阶—(基本概念和常用命令)
  • 原文地址:https://blog.csdn.net/leitouguan8655/article/details/122595897