首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >实现推荐算法

实现推荐算法
EN

Stack Overflow用户
提问于 2012-05-23 07:50:40
回答 1查看 1.4K关注 0票数 2

好的,所以我想用Java实现一个协同过滤算法,类似于Netflix或StumbleUpon的推荐算法,但是我不确定是否应该做所有的计算(皮尔逊相关、预测计算等)。在数据库上,或者我是否应该加载所有必要的数据并在Java中执行算法。

我认为在java中这样做的主要缺点是我必须加载所有的数据,相反,我认为在数据库中这样做会导致非常复杂的、容易出错的查询。

每种可能性都有哪些其他的优点或缺点?

我正在实现的算法可以在here中找到。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-23 08:16:00

虽然我还没有读过算法的所有细节,但出于几个原因,我倾向于用代码实现实际的算法。首先,您可以利用这些算法的现有实现(或至少部分实现),这些实现都经过了良好的测试。正如您所提到的,将此逻辑添加到数据库可能很复杂,并且更难测试。此外,如果更改存储引擎或格式,代码可能会与数据库紧密耦合,从而难以重用。

如果你用java做算法,你将不得不从数据库中读出数据,这可能会导致内存中的大量数据。您需要确保这不会成为一个限制因素--您是否需要一次读取所有数据(这意味着在某一时刻RAM将成为一个限制),或者您是否可以将数据分块并并行化操作?如果您可以并行化算法的各个部分,用Java (或您选择的任何语言)编写代码将使拆分数据变得更容易(如果问题适合Map/Reduce框架,您甚至可以考虑使用该框架-在这里,我还没有通读算法细节)。

通常,我会尝试将业务逻辑排除在数据库之外。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10711660

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档