本文来自 http://spark.apache.org/docs/latest/mllib-guide.html 官方文档翻译 个人翻译
MLlib包括的算法和工具主要有:分类,回归,聚类,协同过滤,降维,和底层优化原语:
- 数据类型
- 基本统计
- 总和统计
- 相关性
- 分层抽样
- 假设检验
- 随机数生成
- 分类和回归
- 线性模型(SVM,逻辑回归,线性回归)
- 朴素贝叶斯
- 决策树
- ensembles of trees (随机森林和Gradient-Boosted树)
- 协同过滤
- 最小二乘法(ALS)
- 聚类
- k-means
- 降维
- singular value decomposition (SVD)
- principal component analysis (PCA)
- 特征提取和转换
- 优化(开发者)
- 随机梯度下降
- 限制内存的BFGS(L-BFGS)
依赖
MLlib使用线性代数包Breeze,他依赖netlib-java和jblas。netlib-java和jblas依赖原生的Fortran程序。如果你的节点中没有这些库,你也许会需要安装 gfortran runtime library。如果程序没有办法自动检测到这些库,MLlib 将会抛出链接错误的异常。由于许可原因,MLlib的默认依赖结合不包含netlib-java的原始库,运行时会出现一些警告信息。为了使用netlib-java的原始库,请在构建spark时使用-Pnetlib-lgpl或者包含com.github.fommil.netlib:all:1.1.2依赖。如果想使用想OpenBLAS这种BLAS/LAPACK优化库,需要连接
/usr/lib/libblas.so.3
and /usr/lib/liblapack.so.3。worker节点上的BLAS/LAPACK libraries在build是不是用多线程。
如果想用 Python 调用 MLlib,你需要安装 NumPy 1.4 或者更新的版本。