【发布时间】:2012-12-11 10:20:33
【问题描述】:
我有一个 30 维的向量,我想在我的数据库中找到 10 个最接近的匹配项。我的数据库中有大约 3000 个向量,我必须与之进行比较。有些尺寸比其他尺寸更重要,所以我想给它们单独的权重。
这 30 个维度是由 10 倍的 RGB 值组成的。我将一张图片分成 9 个图块。所以 9 * 3 (RGB) 27。最后三个值是图片平均颜色的 RGB。
我的问题是:如果可以,这是否可能。使此过程尽可能快速和高效的最佳方法是什么?我自己,我在考虑某种树,但是树太多了,我不知道哪一种最适合我的问题。
编辑:
我想我并不完全清楚我想要实现什么。我有一个随机向量,我想将这个向量与我的数据库中的向量进行比较,以找到 10 个已关闭的向量。我有一个包含所有向量的数据库。我已将它们存储在 MySQL DB 中,每一行都是一个向量。见下文
【问题讨论】:
-
如何在数据库中存储 30 维向量?
-
以对性能有用的方式将自定义树存储在(关系)数据库中似乎是不可能的。
-
只有 3000 个?只是蛮力
-
嘿,30 维向量??如果每个维度只有 length==2,您将在数组中获得大约 1000000000(十亿)个值。也许你的意思是 30 长度的向量,而不是 30 维的?
-
@SergeyS:长度为 30 的向量正好是 30 维向量空间中的一个点,这没什么好奇怪的。
标签: algorithm data-structures tree nearest-neighbor