前言
做算法的同学对于Kaggle应该都不陌生,除了举办算法挑战赛以外,它还提供了一个学习、练习数据分析和算法开发的平台。Kaggle提供了Kaggle Kernels,方便用户进行数据分析以及经验分享。在Kaggle Kernels中,你可以Fork别人分享的结果进行复现或者进一步分析,也可以新建一个Kernel进行数据分析和算法开发。Kaggle Kernels还提供了一个配置好的环境,以及比赛的数据集,帮你从配置本地环境中解放出来。Kaggle Kernels提供给你的是一个运行在浏览器中的Jupyter,你可以在上面进行交互式的执行代码、探索数据、训练模型等等。更多关于Kaggle Kernels的使用方法可以参考 Introduction to Kaggle Kernels,这里不再多做阐述。
对于比赛类的任务,使用Kaggle Kernels非常方便,但我们平时的主要任务还是集中在分析、处理业务数据的层面,这些数据通常比较机密并且数量巨大,所以就不能在Kaggle Kernels上进行此类分析。因此,大型的互联网公司非常有必要开发并维护集团内部的一套「Kaggle Kernels」服务,从而有效地提升算法同学的日常开发效率。
本文我们将分享美团民宿团队是如何搭建自己的「Kaggle Kernels」—— 一个平台化的Jupyter,接入了大数据和分布式计算集群,用于业务数据分析和算法开发。希望能为有同样需求的读者带来一些启发。
美团内部数据系统现状
现有系统与问题
算法同学在离线阶段主要包含三类任务:数据分析、数据生产、模型训练。为满足这些任务的要求,美团内部也开发了相应的系统: