Mahout 0.13.0 / java 8
我对Mahout完全陌生,并试图了解如何使用Mahout实现推荐引擎。到目前为止我知道..。
Mahout提供三种类型的过滤-
为了开始实现我的第一个建议,我从协作过滤开始,它很容易在没有Hadoop的情况下实现。
协同过滤-
Mahout接口:
1.数据模型2. UserSimilarity 3. ItemSimilarity 4. UserNeighborhood 5.推荐
我理解它的组件,并编写了基于用户和项目的推荐,使用多个相似点和邻域的组合。
问题:
谁能帮我澄清一下。
发布于 2017-08-27 16:32:38
1) Map减少率在0.10.0时完全取消。“新Mahout”是一个数学表达式的Scala,它是从引擎中抽象出来的--例如,相同的Scala代码应该能够为Flink/Spark/其他引擎编译。是的,这是基于业绩的。
2) Java并没有做太多的工作,但是我听说有人在使用它。
3.)我想您是在问您是否可以用Java编写一个Spark推荐引擎。答案是肯定的。但是,实际上,我的意思是,我还没有在Scala / Java之间进行大量移植,但理论上您应该能够将scala函数/类导入您的Java代码?这个链接展示了从零开始编写一个恢复器的更多内容--尽管它在Scala中,但是您需要将它移植到Java (如果这样做,可以自由地打开一个PR,我们将把它作为一个示例)。
4.)是的,它可以。这个链接描述了如何在齐柏林的Mahout中设置Spark,但是对于任何设置(例如,您需要的jars和您需要调整的SparkConf ),iirc,您需要mahout-火花,mahout-数学,mahout-数学-scala,主体保持不变。(火花依赖性降低,您只需要使用本地的shell程序,例如齐柏林飞艇或马赫特星火壳牌)。
5.)是的,Mahout是一个在星火或其他分布式引擎上运行的库。
发布于 2017-08-28 00:17:28
实际上,新的推荐算法@rawkintrevo讨论的是一个基于Apache PredictionIO的端到端交钥匙系统,称为通用推荐器。PIO附带了Java。一些链接:
Apache、Apache PredictionIO、Spark和Universal都是用Scala编写的。UR有一个指向Java的端口,但这不是维护的,也不是真正需要的,因为您可能需要的所有选项都是作为配置参数公开的,并且有很好的文档记录。
通过实时发送数据和进行实时查询的通信方式是通过简单的REST调用或使用一个PIO,其中包括Java。
UR支持基于用户的、基于项目的、基于购物车(基于项目集的)、基于多模式数据的建议(使用许多不同的用户指示符或事件)。它还支持一组丰富的业务规则。
不需要写任何东西,只需要输入你的数据并决定配置,剩下的就是安装和安装。
https://stackoverflow.com/questions/45903555
复制相似问题