【干货】数据挖掘比赛大数据处理和建模经验
有同学反馈,我们决赛的数据比较大,由于机器资源的限制,在处理数据和构建模型的时候,会遇到一些瓶颈。以下来抛一下我们了解的一些处理思路:
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 方法,支持批量读入数据进行训练
4 写在最后
本次比赛提供了比较大的数据,也是想让选手们体验现实业务场景里面的大数据问题。在这样的情况下,如何找到一个高效有效的数据处理和模型构建方法,也是本次比赛的一个挑战。
在下届比赛中,我们会联合腾讯云,提供更强大的计算资源和机器学习工具平台。敬请期待。
【干货】数据挖掘比赛大数据处理和建模经验相关推荐
- 数据挖掘比赛常用数据处理函数
文章目录 写在前面 1.pandas apply applymap map 的使用 2. csr csc 稀疏矩阵 3. pandas 表连接 并显示连接后的NaN值 输出数组中出现次数最多的元素 v ...
- 【总结】云集各大高校 — 数学建模经验分享(万字总结)
目录 1.数学建模思想方法大全 2.优化方法模型及适用场景(必看)
- 大数据处理的数据从何而来?
前两天小编和同事聊天,有一茬没一茬的聊到,"咦,你说咱们用来做大数据处理的这些数据,都是从哪来的呢?",小编一时语塞,"你管它呢,总之它就有".这个问题它还真是 ...
- 【干货】Kaggle 数据挖掘比赛经验分享(mark 专业的数据建模过程)
简介 Kaggle 于 2010 年创立,专注数据科学,机器学习竞赛的举办,是全球最大的数据科学社区和数据竞赛平台.笔者从 2013 年开始,陆续参加了多场 Kaggle上面举办的比赛,相继获得了 C ...
- 【干货】Kaggle 数据挖掘比赛经验分享
[干货]Kaggle 数据挖掘比赛经验分享 Kaggle 于 2010 年创立,专注数据科学,机器学习竞赛的举办,是全球最大的数据科学社区和数据竞赛平台.笔者从 2013 年开始,陆续参加了多场 Ka ...
- 【干货】Kaggle数据挖掘比赛经验分享,陈成龙博士整理!
来源:腾讯广告算法大赛(ID:TSA-Contest) 作者简介 陈成龙, 2015 年博士毕业于中山大学,研究图像篡改检测,在图像领域顶级期刊IEEE TIP上发表论文2篇,Kaggle Crowd ...
- Kaggle 数据挖掘比赛经验分享 (转载)
[干货]Kaggle 数据挖掘比赛经验分享 (转载) 标签: 数据挖掘数据科学家机器学习kaggle 2017-05-21 19:25 99人阅读 评论(0) 收藏 举报 本文章已收录于: 分类 ...
- kaggle账号_Kaggle 数据挖掘比赛经验分享
文章发布于公号[数智物语] (ID:decision_engine),关注公号不错过每一篇干货. 来源 | 腾讯广告算法大赛 作者 | 陈成龙 Kaggle 于 2010 年创立,专注数据科学,机器学 ...
- Kaggle 数据挖掘比赛经验分享(转)
原作者:陈成龙 简介 Kaggle 于 2010 年创立,专注数据科学,机器学习竞赛的举办,是全球最大的数据科学社区和数据竞赛平台.笔者从 2013 年开始,陆续参加了多场 Kaggle上面举办的比赛 ...
最新文章
- java arraylist排序_Java 开发者最容易犯的10个错误【译】
- 家里宽带628连不上_WiFi密码正确,别人正常但是自己的手机却连不上WiFi是怎么回事?...
- oracle01144,ORA-01144
- LeetCode 5380. 数组中的字符串匹配
- 一个做运营的朋友过来抱怨,现在HR谈薪都这么强硬吗?
- oracle 10个表循环10次,oracle10g for 循环 嵌套
- Julia: PostgreSQL数据库.......
- HDU Problem 1285 确定比赛名次【拓扑排序】
- 如何搭建一个好的测试环境
- 数据结构 实验三 树的应用
- jwplayer使用方法
- be 动词 和 一般动词的过去式
- 我的创作纪念日(3周年)
- 02、RabbitMQ之交换机
- 【深度学习】注意力机制
- gos-log高性能大日志检索中台
- OkHttp与HTTP协议
- 学习笔记-Windows 安全
- Collections用法
- html给div设置宽度无效,HTML学习之给div高度设置百分比不生效的问题