科大讯飞-温室温度预测挑战赛个人总结(非Top)

前言

这算是博主完整参加的第一个数据竞赛,真的收获了好多东西,对数据竞赛有了全方位的认识,也全程目睹了前排大佬神仙打架。这篇文章也算是对这次比赛历程的一个回顾,因为复赛没有怎么做,这里主要还是总结自己初赛时收获的tricks,欢迎小伙伴们一起交流学习!Tips:当然还要非常感谢鱼佬和阿泽两位大神的baseline和思路分享!

这里介绍一下团队的主要成员:

  • 壹磊,北京交通大学运筹学与控制论专业研二在读
  • yiyang,东华大学应用统计专业研二在读
  • 潜心,上海师范大学计算机技术专业研二在读

一、赛题介绍:时间序列问题

比赛网址:http://challenge.xfyun.cn/topic/info?type=temperature

因为初赛和复赛规则几乎完全不同,可以说是两个不同的比赛。初赛可以定位为多变量回归问题,复赛则变成了一个基于时间序列预测的结果补全问题。说来惭愧,复赛的一个月的时间我们团队都在忙各种事情,基本上只有一个队友偶尔在做,所以这篇主要是我对初赛特征工程方面的总结。


二、初赛:允许使用当前值和特征穿越

初赛里我们团队成员还没有相识,因此各自单打独斗进行建模,毫无例外都使用了xgboost单模,最终的成绩分别为0.104、0.106和0.117,这样的做法的优势是使我们各自的模型存在一定差异性的,也为后续的模型融合创造了条件,最终经过模型融合和调整,我们队伍的初赛A帮成绩定格在0.10034,最终A榜排在36名,切换到B榜排名上升到28名(28/771),顺利入围复赛。

A榜

B榜

下面,我主要总结一下我在数据处理和特征工程中做的工作,有很多借鉴了鱼佬的baseline,并且没有做分桶特征,同时较少涉及特征穿越。(单模成绩:0.106 ,A榜排名:60名左右,我觉得B榜应该会有不小的提升)

  1. 缺失值补全(使用fillna操作)
# 缺失值补全
f = ['outdoorTemp','outdoorHum','outdoorAtmo','indoorHum','indoorAtmo']
train_df[f] = train_df[f].fillna(method='ffill')
test_df[f] = test_df[f].fillna(method='ffill')
  1. 异常值截断(假设数据服从正态分布,使用3σ法则进行截断,可用前后均值替换)
# 气压异常值前后均值替换
for f in tqdm(['indoorAtmo', 'outdoorAtmo']):
    upper = data_df[f].mean()+ 3 * data_df[f].std()
    lower = data_df[f].mean()- 3 * data_df[f].std()
    for i in data_df[data_df[f] > upper].index:
        data_df.loc[i,f] = (data_df.loc[i-1,f] + data_df.loc[i+1,f])/2
    for i in data_df[data_df[f] < lower].index:
        data_df.loc[i,f] = (data_df.loc[i-
  • 9
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 13
    评论
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值