有同学反馈,我们决赛的数据比较大,由于机器资源的限制,在处理数据和构建模型的时候,会遇到一些瓶颈。以下来抛一下我们了解的一些处理思路:

1 采样

可以对数据进行下采样,然后使用不同的子集进行特征抽取和建模,最后再进行集成。

2 特征处理

在处理大规模原始数据时,需要充分借助外存(硬盘)空间,只把真正需要处理的数据放进内存。一般而言,采用流式、分块的方式处理数据可以解决大部分问题。以下是一些具体的技巧。

a) 只加载需要的数据到内存。有些特征可以通过单条数据直接得到,如星期特征。这种情况下,可以使用 streaming 的方式进行处理,每次读入若干数据(chunk),处理,生成特征,然后再写到硬盘。使用 pandas 的 read_csv,可以设置 chunksize 参数,譬如 for chunk in read_csv ( infile, chunksize=10000 );

b) 只保留需要的数据在内存。决赛的数据可以直接装到 16G 内存中,每次生成一条样本的特征,就把特征直接写入硬盘,不在内存保留。如果生成的特征较多,可以分多次生成,写到分散的特征文件,最后进行一个 merge 操作。在 merge 的时候,可以对多个特征文件按照统一的 key 进行排序,然后同时扫描多个特征文件,进行merge,再写到硬盘;

c) 充分利用排序加速。在上面的 streaming 处理方式中,有时预先对文件按照某些 key 排序,可以加速处理。譬如统计某个 user 在各个 clickTime 之前的平均转化率,可以对 train.csv 按照 user & clickTime (当然可以结合其他的 key,如 positionID)进行排序,然后扫描文件进行统计。又譬如统计某个 user 在 clickTime 前安装的 app 数量,可以对 train.csv 和 user_app_actions.csv 同时按照 user & time 进行排序,然后交替扫面两个文件,生成统计特征。对于排序操作,则可以直接使用 Linux 自带的 sort 命令,在小内存下完成排序操作。

综上,在处理大文件的时候,可以借鉴 split-apply-combine 的思路。

3 在线学习和外存学习

不少开源的工具支持外存和在线学习,使用这些工具,无需一次性把所有数据加载到内存,造成内存瓶颈。常用的一些工具如下:

a) Vowpal Wabbit:支持 LR + 高阶特征组合,在线学习

b) Libffm:支持外存学习

c) XGBoost:支持外存学习

d) Keras:通过模型的 fit_generator 方法,支持批量读入数据进行训练

写在最后

本次比赛提供了比较大的数据,也是想让选手们体验现实业务场景里面的大数据问题。在这样的情况下,如何找到一个高效有效的数据处理和模型构建方法,也是本次比赛的一个挑战。

在下届比赛中,我们会联合腾讯云,提供更强大的计算资源和机器学习工具平台。敬请期待。

【干货】数据挖掘比赛大数据处理和建模经验相关推荐

  1. 数据挖掘比赛常用数据处理函数

    文章目录 写在前面 1.pandas apply applymap map 的使用 2. csr csc 稀疏矩阵 3. pandas 表连接 并显示连接后的NaN值 输出数组中出现次数最多的元素 v ...

  2. 【总结】云集各大高校 — 数学建模经验分享(万字总结)

    目录 1.数学建模思想方法大全 2.优化方法模型及适用场景(必看)

  3. 大数据处理的数据从何而来?

    前两天小编和同事聊天,有一茬没一茬的聊到,"咦,你说咱们用来做大数据处理的这些数据,都是从哪来的呢?",小编一时语塞,"你管它呢,总之它就有".这个问题它还真是 ...

  4. 【干货】Kaggle 数据挖掘比赛经验分享(mark 专业的数据建模过程)

    简介 Kaggle 于 2010 年创立,专注数据科学,机器学习竞赛的举办,是全球最大的数据科学社区和数据竞赛平台.笔者从 2013 年开始,陆续参加了多场 Kaggle上面举办的比赛,相继获得了 C ...

  5. 【干货】Kaggle 数据挖掘比赛经验分享

    [干货]Kaggle 数据挖掘比赛经验分享 Kaggle 于 2010 年创立,专注数据科学,机器学习竞赛的举办,是全球最大的数据科学社区和数据竞赛平台.笔者从 2013 年开始,陆续参加了多场 Ka ...

  6. 【干货】Kaggle数据挖掘比赛经验分享,陈成龙博士整理!

    来源:腾讯广告算法大赛(ID:TSA-Contest) 作者简介 陈成龙, 2015 年博士毕业于中山大学,研究图像篡改检测,在图像领域顶级期刊IEEE TIP上发表论文2篇,Kaggle Crowd ...

  7. Kaggle 数据挖掘比赛经验分享 (转载)

     [干货]Kaggle 数据挖掘比赛经验分享 (转载) 标签: 数据挖掘数据科学家机器学习kaggle 2017-05-21 19:25 99人阅读 评论(0) 收藏 举报 本文章已收录于: 分类 ...

  8. kaggle账号_Kaggle 数据挖掘比赛经验分享

    文章发布于公号[数智物语] (ID:decision_engine),关注公号不错过每一篇干货. 来源 | 腾讯广告算法大赛 作者 | 陈成龙 Kaggle 于 2010 年创立,专注数据科学,机器学 ...

  9. Kaggle 数据挖掘比赛经验分享(转)

    原作者:陈成龙 简介 Kaggle 于 2010 年创立,专注数据科学,机器学习竞赛的举办,是全球最大的数据科学社区和数据竞赛平台.笔者从 2013 年开始,陆续参加了多场 Kaggle上面举办的比赛 ...

最新文章

  1. java arraylist排序_Java 开发者最容易犯的10个错误【译】
  2. 家里宽带628连不上_WiFi密码正确,别人正常但是自己的手机却连不上WiFi是怎么回事?...
  3. oracle01144,ORA-01144
  4. LeetCode 5380. 数组中的字符串匹配
  5. 一个做运营的朋友过来抱怨,现在HR谈薪都这么强硬吗?
  6. oracle 10个表循环10次,oracle10g for 循环 嵌套
  7. Julia: PostgreSQL数据库.......
  8. HDU Problem 1285 确定比赛名次【拓扑排序】
  9. 如何搭建一个好的测试环境
  10. 数据结构 实验三 树的应用
  11. jwplayer使用方法
  12. be 动词 和 一般动词的过去式
  13. 我的创作纪念日(3周年)
  14. 02、RabbitMQ之交换机
  15. 【深度学习】注意力机制
  16. gos-log高性能大日志检索中台
  17. OkHttp与HTTP协议
  18. 学习笔记-Windows 安全
  19. Collections用法
  20. html给div设置宽度无效,HTML学习之给div高度设置百分比不生效的问题

热门文章

  1. 赛锐信息:SAP ABAP 模块化
  2. Leadership_领导力和团队管理
  3. 黑白迷宫问题——深度优先搜索算法
  4. python_9(模块补充)
  5. ASP.Net MVC4+Memcached+CodeFirst实现分布式缓存
  6. 卷积神经网络之ResNet网络模型学习
  7. mvc4.0 @Styles.Render(转)
  8. APP动态界面设计使用的利与弊
  9. IIS 无法显示网页 目前访问网站的用户过多
  10. 常用数据挖掘算法举例(下)