是什么?
是Spark machine learning的库文件
为什么?
使实践ML简单且可扩展
什么功能?
1 ML算法:分类,回归,聚类,协同过滤
2 特征:特征提取,转化,降维,选择
3 管线:创建,评估,调谐ML管线
4 持久化:保存和加载算法,models和管线
5 公用工具:线性代数,统计学,data handling
版本更新
2.0之后主API是DataFrame_based API,RDD_based API不再新增功能,3.0后会被移除
为什么换成Dataframe_based API:
1 提供高级API
2 丰富的Spark Datasources
3 Tungsten和Catalyst优化
4 SQL/DataFrame查询
5 跨语言的通用API
包依赖
1 MLlib使用线性代数包Breeze,Breeze依赖于netlib-java的优化数值处理
2 最流行的BLAS是Intel MKL,OpenBLAS,可以在单操作中使用多线程,会导致Spark执行模型冲突,通常使用单线程
主要内容
1 basic statistics
2 pipelines
3 extracting, transforming and selecting features
4 classification and regression
5 clustering
6 collaborative filtering
7 frequent pattern mining
8 model selection and tuning
9 advanced topics
http://www.scalanlp.org/
https://skillsmatter.com/skillscasts/5849-high-performance-linear-algebra-in-scala