关于提升机器学习算法做预测回归任务精度的方法分享

关于提升机器学习算法做预测回归任务精度的方法分享

1. 问题的来源

​ 目前做过一些小数据集(100-1000)的预测任务,经常会出现一个问题:拿到数据后,写完模型代码,然后运行测试,发现R2很低,MAE之类的指标也很高。

​ 这个时候,会发现:单纯调整模型参数并不能提高模型精度。

​ 而这个问题,就是今天想要探讨的问题。

2. 方法分享

​ 这里仅分享我自己目前能够想到的方法,如果大家还有其他方法,欢迎补充在评论区,让后来的人可以少走一些弯路。

​ 我觉得这个问题出现的根本原因在于:数据集。现在很认可一句话,做这种机器学习的工作,80%的时间都在处理数据,20%的时间在调参和写代码。

​ 比如,我现在有一个700条的数据集,但是只有5个特征,其中一个还是目标变量。这个时候,即使数据量看着还不错,但4个特征所包含的信息有限,模型训练后的泛化能力大概率很弱,除非你的数据隐含的关系非常简单,不然大概率R2都非常低。

​ 意识到"模型本质学的是数据的信息",当你数据包含的信息越多的时候,模型自然能够学习到的东西也越多,最终的泛化能力自然也就越高。

​ 因此,提高精度的本质是提高数据信息量,体现在具体方法有如下:

  1. 新增物理特征 :纯数学特征可能效果不好,或者存在天花板。可以引入一些更具有物理意义的复合特征。本质上来说是增加信息含量,因为单纯的数字可能包含的信息有限,因此需要人为增加信息量。
  2. 去除某些杂糅信息特征:有的时候,并不是越多信息越好,有的信息如果本身是噪声与没有意义的特征,可以抛去尝试,看看效果如何,如果没有提升或者减弱了再加上即可。
  3. 构建新的目标变量 :有的时候,原本的目标变量可能区分度不够或者其他原因,可以构建出新的目标变量,更具辨识度(比如对数化处理,注意训练前对数化,预测的时候要将预测输出的还原,然后进行模型的评估)
  4. 聚类公共数据点:把一些具有类似特征的数据聚类在一块,相当于新增了数据列,具有更多信息和辨识度
  5. 明确上限与优先性:如果特征数很少、数据量小,有的时候的确预测效果存在一定上限,难以准确预测;如果存在多个数据集的时候(数据集的数据大小由少变多),优先调整数据大的,明确最优结果,才能去评价其他相对更差的结果。
  6. 删除数据异常点 :如果目标变量具有物理意义,比如输入的是总重量,预测的是长途过程中损失后的最终重量,如果目标变量(即最终重量)比总重量还大,或者小特别多,可以标记为异常数据而去掉。当然,是否去掉还是要根据业务场景来判断。

3. 补充

​ 关于派生特征的构造:

  1. 任务是有领域的,有的时候可以根据领域知识进行构建,比如将某两个特征相加或者相除,得到总的量或者比例之类的特征
  2. 听从AI的建议,AI的知识库很丰富,常见的简单新特征构建,它基本都可以给出建议

​ 根据我自己的尝试:新增特征是最有用的手段了,如改变目标变量等方法效果不是确定,偶尔能提升,偶尔也会变差。

相关推荐
ZhengEnCi17 小时前
模型训练完整流程:从数据准备到模型上线的 10 个关键步骤(全文可跑)
后端·算法
我要见SA姐120 小时前
GitHub Actions 自动化:5 个真实运维提效案例
运维·数据库·机器学习·oracle·回归
吞下星星的少年·-·21 小时前
Div.3 CF 1131A题(排序,模拟)
算法·模拟·排序
aichitang202421 小时前
代数拓扑学与现代前沿视角
考研·算法·数学建模·ai·拓扑学·高考
二本咕咕-机械转码21 小时前
FreeRTOS深入解析(一)_链表与并发保护——哨兵循环链表、排序键游标、临界区与关调度
单片机·算法·链表
-银雾鸢尾-1 天前
两数之和-C++实现
c++·算法
j7~1 天前
【动态规划算法专题】动态规划五部曲实战:泰波那契数、三步问题、最小花费爬楼梯
c++·算法·动态规划·数据结构与算法
倍利福猎头公司官方账号1 天前
大企业HR如何向猎头公司清晰传达AI岗位的技术需求?
人工智能·算法·机器人·求职招聘·业界资讯
Zzj_tju1 天前
智能体该向哪段经验学习?Routed CL 在混合任务中探索记忆分流
人工智能·深度学习·机器学习·语言模型