赞
踩
最近由于一直在用Spark搞数据挖掘,花了些时间系统学习了一下Spark的MLlib机器学习库,它和sklearn有八九分相似,也是Estimator,Transformer,Pipeline那一套,各种fit,transform接口。sklearn有多好学,MLlib就有多好学,甚至MLlib还要更加简单一些,因为MLlib库中支持的功能相对更少一些,并且MLlib基于DataFrame数据比sklearn基于numpy array会更加直观一些。
那学了这个MLlib有啥子用呢?主要有以下三方面用处。
第一是对海量数据特征工程处理。如果有遇到需要对50G以上的数据进行Tf-idf特征提取,缺失值填充,特征筛选,最邻近查找等特征工程任务时,使用Pandas的同学可能要望洋兴叹了,这时候会使用Spark MLlib的同学就会露出迷之微笑。
第二是提供机器学习模型的候选baseline。众所周知,目前工业界应用最主流的机器学习模型是xgboost,lightgbm,以及深度学习那一套。遗憾的是,MLlib原生并不带xgboost和lightgbm,对深度学习的支持也不多。但MLlib提供非常丰富的基础模型诸如决策树,随机森林,梯度提升树,朴素贝叶斯等,这些简单易用的模型可以提供一个基本的baseline。如果生产要求不是非常高的话,baseline也是可以直接拿过来落地成产品的。
第三是为xgboost,深度学习等模型提供超参优化模型评估等支持。
通过引入XGBoost4J-Spark库,Spark上也是可以分布式跑xgboost的。通过引入mmlspark库,Spark上也是可以分布式跑lightgbm的,通过引入TensorflowOnSpark,Spark上也是可以分布式跑TensorFlow的。而MLlib的超参调优和模型评估等功能无疑可以很好地和这些牛逼闪闪的框架很好地协作起来。
以上是一些MLlib常用的使用场景。废话不多说了,让我们出发吧!
在Python与算法之美公众号后台回复关键字:"MLlib"获取本文全部源码。
一,MLlib基本介绍
MLlib是Spark的机器学习库,包括以下主要功能。
<Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。