踏浪. 2022-10-15 21:10 采纳率: 0%
浏览 26

数据挖掘比赛上的一些小问题

如何对数据挖掘的BaseLine进行相应改进?
我有一个关于数据挖掘方面的一个问题,我们首先会设置一个Baseline,然后再这个基础上不断进行优化,而我现在有个关于这方面的问题。

1:列如我们以lgb做为基线模型,通过固定随机种子来绑定模型从而不断修改特征。这里假设我们通过原始特征进行预测得到的acc为0.82.我们通过构建了一个新的特征,使我们原始线下baseline精度acc为0.83,那我是不是以为他是一个很好的特征,当我将它提交后我的acc却为0.81,这是为什么,如何去解决?

2:我该如何去构建新的特征的?以baseline为例,我们没构建一个特征都需要跑一遍baseline的吗,或者说我每一次建立新特征都要与老特征们相关性分析来剔除高相关性变量,这个整体顺序是如何呢?

3:当我构建了所有需要的特征后,我企图通过贝叶斯搜索 或者网格搜索的方法来寻找最优参数,我如何来去选择合适的训练集来进行?假设我们后期需要交叉验证,交叉验证得到的每一组数据集都是不同与我起初trantestspilt使用的训练集来找到的最佳参数在不同数据集上不同,得分也肯定不一样,那我该如何使用?

  • 写回答

1条回答 默认 最新

  • submarineas 2022-10-17 23:19
    关注

    既然题主是以比赛为前提,那么很多东西就好解释了。
    第一个问题:构建新特征后,本地acc提升,但是提交后反而下降,这个东西是我在做比赛过程中经常出现的,这就是线上和线下的区别,因为线下是自己验证,而线上,主办方是拿着他们的答案进行验证。为何差距那么大,我可以举个例子,比如说一个时间序列,我拿到的是11月,12月的火车回家数据,但是测试集是1月2月的数据,包含春运,数据分布都不统一,那自然差距大。
    第二个问题:怎么构建新特征,这里树模型还有网络模型都有各自的方法,基于第一个的基础上,我们无法对线上成绩做出判定,只能说尽量提升自己线下的acc,这里不再展开,可以参考大佬的方案或者我之前打比赛的笔记,关于特征的剔除,其实算是主观的,但也很随机,我一般喜欢一发入魂,或者交叉验证选择一批我认为相对好的,因为比赛时间很短,题主的想法固然可以,但事实上根本没那么多时间去验证。
    第三个问题:我没看懂想表达的意思,以light为例,搜索是搜索的树分支,以及几个参数,还有轮数或者很多其它参数不能确定,这个过程也很随机,并且过拟合的几率很大,最终提交的肯定是在没过拟合的基础上,本地acc最好的版本,如果线上降了,首先看评价函数,第二就看数据分布了

    评论

报告相同问题?

问题事件

  • 创建了问题 10月15日

悬赏问题

  • ¥20 指导如何跑通以下两个Github代码
  • ¥15 大家知道这个后备文件怎么删吗,为啥这些文件我只看到一份,没有后备呀
  • ¥15 C++为什么这个代码没报错运行不出来啊
  • ¥15 一道ban了很多东西的pyjail题
  • ¥15 关于#r语言#的问题:如何将生成的四幅图排在一起,且对变量的赋值进行更改,让组合的图漂亮、美观@(相关搜索:森林图)
  • ¥15 C++识别堆叠物体异常
  • ¥15 微软硬件驱动认证账号申请
  • ¥15 GPT写作提示指令词
  • ¥20 根据动态演化博弈支付矩阵完成复制动态方程求解和演化相图分析等
  • ¥15 华为超融合部署环境下RedHat虚拟机分区扩容问题