欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

数据缺失,如何智能修复?第一名方案源码分享

程序员文章站 2022-05-09 20:53:08
...

数据缺失,如何智能修复?第一名方案源码分享

向AI转型的程序员都关注了这个号????????????

机器学习AI算法工程  公众号:datayx

我们抽取某一海上风电场实际SCADA数据,并人为地去除其中的部分数据,包括但不限于删去某个时间段的全部数据、某台机组在某段时间的数据、某台机组在某段时间的部分字段信息等等,参赛者需要利用剩余数据对删去的数据进行恢复,最终以恢复的准确度为评价基准。

难点:

  1. 缺失数据几乎全部是整块丢失.

    预测的时候几乎除了时间,不能从中得到有价值的特征
    
  2. 每块数据缺失的长度不一致.

    缺少数据如果只是缺少一行,和一下缺少1000行,这样的预测难道肯定是不一样的,得到的结果也会差别很大
    
  3. 需要预测的有68个特征

    每个特征有不同的分布趋势,这样每个列肯定是不同的模型和参数,如果人为的逐一去搜索,工作量可想而知.
    
  4. 如何构建和在线一致的本地测试集

    每个缺失块大小不一,每个列缺失的数据多少不一,如果使用随机Split很难模拟到接近的分布.

项目下载地址

关注微信公众号 datayx  然后回复 修复  即可获取。

AI项目体验地址 https://loveai.tech

求解思路:

  1. 难点1:

大量特征即使跨风机也具有很强相关性, 通过关联不同文件的数据构造特征, 下图就是挑选的有代表性的多列

数据缺失,如何智能修复?第一名方案源码分享

数据缺失,如何智能修复?第一名方案源码分享

数据缺失,如何智能修复?第一名方案源码分享

  1. 难点2:

         在模型中设置动态参数,根据缺失数据块的大小来分别构造Train数据,具体参数可以参考下面的模型设计
    
  2. 难点3:

         在模型的设计中,把常见的回归,树模型都作为一个嵌套模型,通过参数控制.自动的寻找最优参数(模型)
    
  3. 难点4:

  • 建立缺失数据字典,对每一个连续的数据块和缺失块,存储起始地址.

  • 在缺失块对应的数据块,前后都可以找到和缺失块一样大小的块来模拟缺失块,这样隐含参数也基本一致.

数据缺失,如何智能修复?第一名方案源码分享

方案细节

下面3个模型的训练方法基本一致,就是内部嵌入各种模型,通过参数共享来避免过拟合. 3个模型的区别在于,最优参数的选择方法不一致.

  1. 模型1:

数据缺失,如何智能修复?第一名方案源码分享

模型2:

数据缺失,如何智能修复?第一名方案源码分享

模型3:

数据缺失,如何智能修复?第一名方案源码分享

模型的优缺点:

数据缺失,如何智能修复?第一名方案源码分享

继续改进的空间:

  • 好几个参数没有展开搜索

  • 只使用了线性回归

  • 只使用了相关性来做特征选择

  • 对大缺失块增加更多资源来训练,增加搜索空间


阅读过本文的人还看了以下:

不断更新资源

深度学习、机器学习、数据分析、python

 搜索公众号添加: datayx  

数据缺失,如何智能修复?第一名方案源码分享

长按图片,识别二维码,点关注

AI项目体验

https://loveai.tech

数据缺失,如何智能修复?第一名方案源码分享