Spark MLlib - 使用隐式反馈训练协同过滤 - 奇怪的警告

Mic*_*vik 5 collaborative-filtering apache-spark apache-spark-mllib

我正在尝试在用户订单上构建协作过滤模型并获得一些有用的结果,ALS.train()但我想尝试ALS.trianImplicit()但是trianImplicit()在同一数据集上预测只是零,ASL.train()我得到了不错的预测.

ALS.trianImplicit()用于训练模型时,我收到以下警告:

15/09/01 15:39:29 WARN BLAS: Failed to load implementation from: com.github.fommil.netlib.NativeSystemBLAS
15/09/01 15:39:29 WARN BLAS: Failed to load implementation from: com.github.fommil.netlib.NativeRefBLAS
Run Code Online (Sandbox Code Playgroud)

这是否表明这是一个错误,而不是警告和模型因为缺少库而无法训练任何东西?

Hol*_*den 1

正如 @eliasah 指出的,这个警告并不重要,但可能会降低性能。使用本机 BLAS 可以带来巨大的性能提升。https://github.com/amplab/ml-matrix/blob/master/EC2.md上有一些有关如何在 EC2 上设置 Spark + BLAS 的说明。

如果您的集群运行的是 Ubuntu,您可以安装以下软件包:

libblas3gf
libblas-doc
libblas-dev

liblapack3gf
liblapack-doc
liblapack-dev
Run Code Online (Sandbox Code Playgroud)

然而,有些人报告使用http://www.openblas.net/获得了更好的性能,因此您可以尝试在您的工作人员上安装它。您还需要将其包含com.github.fommil.netlib在您的应用程序中(Spark 目前使用版本 1.1.2)。