Coder Social home page Coder Social logo

jdd_census's Introduction

介绍

京东2018 JDD比赛: 人口动态普查与预测

分数

  • ARIMA 0.1264附近,与random_state参数影响较大,最好可到0.1260
  • LGB 0.1305,基于ARIMA模型,将ARIMA结果当做真实值构造相应特征;
  • ARIMA+LGB 0.1270,将两个模型结果简单的取平均,效果不如ARIMA

小技巧

  • 根据评价函数e=(np.log(1+y_true)-np.log(1+y_pred))^2可以尝试将原始数据做y=np.log(1+x)变换,预测完成后再还原,有几万到1千左右的提升

  • 根据观察可知每天所有县城的流入=所有县城的流出,故可对预测后的结果通过变换使得两者相等,当原始预测两者相差越大,该方法提升越明显。ARIMA方法可提升几万到1千。

  • 利用评分规则取巧(有点类似于信息增益)

    1.提交全部为0的结果,得到分数记为F1,可理解为原始信息熵

    2.只提交流入,流出和停留均为0,得到分数F2

    3.由于分数是效果越好越低,所以提交的流入的贡献是F1-F2,可理解为信息增益

    4.同理可计算流出的贡献和停留的贡献

    5.流入和流出贡献比可以作为技巧2的权重。

展望

  • 个人觉得这道题重点在日期的处理上,特别是假期,因为只有假期特征才可以解释异常点,时间序列方法只能解释趋势项和周期项,所以对日期的反脱敏是这道题的突破口

  • 也算是日期反脱敏的一部分,假如需要预测的20180302-20180316这段时间真实情况不属于节假日,那么有种比较好的思路

    • 将历史数据中存在异常点的数据删掉,注意要7天一起删,保证其周期性
    • 将异常点替换,比如3.15是异常值,当天是周日,那么用该县除异常值外的周日的平均值替换
  • transition文件的使用,暂时还有使用到该文件,有一些初步想法

    • 和flow的使用一样,通过时间序列补全数据,然后统计县1->县2近1天统计情况,近7天统计情况等
    • 统计所有县两两之间的状态转移情况,构造马尔科夫过程,通过前一天状态预测下一天状态,状态过多可以使用分箱减少状态数
    • ...
  • 最后吐槽一句:好垃圾的赛制,好垃圾的题目

jdd_census's People

Contributors

luoling1993 avatar

Watchers

James Cloos avatar Akrusher avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.