Neo4j和Cluster Analysys

Sov*_*vos 2 cluster-analysis cluster-computing neo4j graph-databases

我正在开发一个Web应用程序,它将在很大程度上依赖于它能够根据具有类似偏好的用户对项目提出建议.我的一个朋友告诉我,我正在寻找的 - 数学上 - 是一些聚类分析算法.另一方面,在SO上,我被告知Neo4j(或其他一些图形数据库)是我应该为此任务寻求的那种数据库(首选项).

我开始研究这两种工具,我有些疑惑.出于聚类分析的目的,我认为标准SQL DB仍然是完美的选择,而Neo4j更适合神经网络的方法(虽然仍然完全适合任务).

我错过了什么吗?我是否尝试使用错误的工具组合?

我很想听听有关这个问题的一些想法.

感谢分享

ulk*_*kas 6

这取决于您的数据.neo4j能够为一个特定节点实时提供复杂的建议 - 假设你想向用户推荐一些产品,这可以在图形数据库中实时处理

而使用某些群集系统是同时为所有用户提供建议的最佳方式(并且可能将其保存在某处,因此您不需要再次计算).

计算差异:

  • neo4j没有初始化成本,可以在可接受的时间内给你一个建议
  • 聚类需要更多的时间进行初始化(例如,不是几秒钟,但最有可能是几分钟/小时),并且更好地计算整个数据集的建议.事实上,严格控制特定用户的一次计算时间,这个集群可以比neo4j更快地完成,但是最大的限制是初始初始化 - 因此不适合实时应用

实际差异:

  • 如果您拥有大多数静态数据,并且可以在一段时间内完成建议,而不是使用SQL进行群集

  • 如果您获得了动态数据,其中每次交互都会更新数据,并且您必须始终提供最新的建议,而不是使用neo4j

  • 如果你是自我教师并且没有大学背景,那就不要浪费你的时间学习最好由老师教授的课程,而不是阅读材料.在这种情况下,只需尝试为您找到特定问题的解决方案 - 例如在stackoverflow上发布您想要访问的数据和目标,并询问如何执行此操作.但从实际角度来看,这是如何快速完成任务的最快方法.如果你只是想知道事情而你喜欢学习而不是继续学习 (2认同)