我想用K-Means查询MongoDB上的集合。
我的集合的描述:每个文档都是字段列表,字符串索引,一些实数,一些整数,一些分类/布尔值。
我的查询描述:来自上面指定的相同文档模型的文档。
算法: 在查询时,在集合上运行k-means并找到k-clusters。 之后,为了找到要查询的最接近的聚类,请使用余弦相似度或其他已知度量。 最后返回来自特定群集的所有文档。
如果MongoDB无法完成,如果您有任何其他选择,我将很高兴。 感谢。
答案 0 :(得分:2)
MongoDB是一个专为信息存储和检索而设计的数据库,而不是用于运行复杂的机器学习算法 - 您可以将数据存储在MongoDB中以便用k-means进行处理并将结果存储在MongoDB中但是MongoDB不会帮助您执行k-means聚类。更适合k-means计算的替代工具是Hadoop中的存储和k-means处理,其中使用Mahout。但请注意,k-means启发式算法不是实时算法。除了非常少量的数据之外,您需要提前计算集群,查询应该只返回集群成员资格。您可以使用MongoDB存储计算出的集群信息,并在Mahout或其他ML库中运行k-means后提供有关集群成员资格的查询。