标签: nearest-neighbor

高维数据中最近的邻居?

我曾问一个问题,几天就回来了如何找到一个给定矢量最近的邻居.我的矢量现在是21维,在我继续前进之前,因为我不是来自机器学习领域,也不是数学领域,我开始问自己一些基本问题:

  • 欧几里德距离是否是首先找到最近邻居的一个很好的指标?如果没有,我的选择是什么?
  • 此外,如何确定确定k邻居的正确阈值?是否有一些分析可以用来计算出这个值?
  • 以前,我被建议使用kd-Trees,但维基百科页面清楚地表明,对于高维度,kd-Tree几乎相当于蛮力搜索.在这种情况下,有效找到百万点数据集中最近邻居的最佳方法是什么?

有人可以澄清一些(或所有)上述问题吗?

language-agnostic algorithm search machine-learning nearest-neighbor

155
推荐指数
6
解决办法
6万
查看次数

如何理解局部敏感哈希?

我注意到LSH似乎是一种寻找具有高维属性的类似项目的好方法.

在阅读了论文http://www.slaney.org/malcolm/yahoo/Slaney2008-LSHTutorial.pdf之后,我仍然对这些公式感到困惑.

有没有人知道一个博客或文章解释这个简单的方法?

c machine-learning hashmap nearest-neighbor locality-sensitive-hash

148
推荐指数
4
解决办法
6万
查看次数

这个最近邻算法中"来自不同顶点链"的含义是什么?

以下伪代码来自The Algorithm Design Manual的在线预览版本的第一章(本PDF第7页).

这个例子是一个有缺陷的算法,但我仍然想要理解它:

[...]一个不同的想法可能是重复连接最接近的一对端点,这些端点的连接不会产生问题,例如过早终止循环.每个顶点都以其自己的单个顶点链开始.在将所有内容合并在一起之后,我们将最终得到一个包含其中所有点的链.连接最后两个端点为我们提供了一个循环.在执行此最近对启发式过程中的任何步骤中,我们将有一组可用于合并的单顶点和顶点不相交链.在伪代码中:

ClosestPair(P)
    Let n be the number of points in set P.
    For i = 1  to n ? 1 do
        d = ?
        For each pair of endpoints (s, t) from distinct vertex chains
            if dist(s, t) ? d then sm = s, tm = t, and d = dist(s, t)
        Connect (sm, tm) by an edge
    Connect the two endpoints by an edge
Run Code Online (Sandbox Code Playgroud)

请注意,sm并且tm应该s …

algorithm graph-theory pseudocode nearest-neighbor

31
推荐指数
2
解决办法
3962
查看次数

最近邻搜索:Python

我有一个二维数组:

MyArray = array([6588252.24, 1933573.3, 212.79, 0, 0],
                [6588253.79, 1933602.89, 212.66, 0, 0],
                 etc...)
Run Code Online (Sandbox Code Playgroud)

前两个元素MyArray[0],并MyArray[1]XŸ点的坐标.

对于数组中的每个元素,我想找到以半径X单位返回其单个最近邻居的最快方法.我们假设这是在2D空间.

让我们说这个例子X = 6.

我通过将每个元素与每个其他元素进行比较来解决问题,但是当列表长度为22k点时,​​这需要15分钟左右.我们希望最终在大约3000万点的名单上运行.

我已经阅读了关于Kd树并了解基本概念,但却无法理解如何编写脚本.

python numpy kdtree nearest-neighbor closest-points

23
推荐指数
1
解决办法
2万
查看次数

MATLAB中的最近邻插值算法

我正在尝试使用最近邻插值算法编写自己的函数来放大输入图像.不好的部分是我能够看到它是如何工作但无法找到算法本身.我将不胜感激任何帮助.

这是我尝试将输入图像放大2倍的原因:

function output = nearest(input)
[x,y]=size(input);
output = repmat(uint8(0),x*2,y*2);
[newwidth,newheight]=size(output);
for i=1:y
    for j=1:x
        xloc = round ((j * (newwidth+1)) / (x+1));
        yloc = round ((i * (newheight+1)) / (y+1));
        output(xloc,yloc) = input(j,i);
    end
end
Run Code Online (Sandbox Code Playgroud)

这是马克建议之后的输出替代文字

matlab interpolation image-processing nearest-neighbor resize-image

20
推荐指数
2
解决办法
6万
查看次数

Chrome/Safari中的图像插值模式?

我需要使用最近邻居调整大小的图像渲染,而不是当前使用的双三次方式.我目前使用以下内容:

ms-interpolation-mode: nearest-neighbor;
image-rendering: -moz-crisp-edges;
Run Code Online (Sandbox Code Playgroud)

这适用于IE和Firefox,但不适用于Chrome和Safari.是否有任何webkit替代方案或任何其他方式来实现此效果?

css interpolation image nearest-neighbor

19
推荐指数
2
解决办法
2万
查看次数

python上的迭代最近点(ICP)实现

我最近一直在python中搜索ICP算法的实现而没有结果.

根据维基百科文章http://en.wikipedia.org/wiki/Iterative_closest_point,算法步骤如下:

  • 按最近邻居标准关联点(对于一个点云中的每个点,找到第二个点云中的最近点).

  • 使用均方成本函数估计变换参数(旋转和平移)(变换将使每个点最佳地对准其在前一步骤中找到的匹配).

  • 使用估计的参数转换点.

  • 迭代(重新关联点等).

嗯,我知道ICP是一种非常有用的算法,它可以用于各种应用程序.但是我在Python中找不到任何内置的解决方案.我在这里错过了什么?

python opencv nearest-neighbor

17
推荐指数
2
解决办法
2万
查看次数

如何在高维数据中有效地找到k-最近邻居?

所以我有大约16,000个75维数据点,并且对于每个点我想找到它的k个最近邻居(使用欧氏距离,如果这使得它更容易,则当前k = 2)

我的第一个想法是为此使用kd树,但事实证明,随着维数的增长,它们变得相当低效.在我的示例实现中,它仅比详尽的搜索稍快.

我的下一个想法是使用PCA(主成分分析)来减少维数,但我想知道:是否有一些聪明的算法或数据结构可以在合理的时间内完全解决这个问题?

algorithm nearest-neighbor computational-geometry data-structures dimensionality-reduction

16
推荐指数
1
解决办法
6767
查看次数

寻找邻居

我需要在一组点中找到"附近"的邻居.

点集

上图中有10个点.红线是Delaunay三角剖分的边缘,黑色星标记边缘的中线,蓝线是Voronoi镶嵌.点1具有三个"近"邻居,即4,6和7,但不是2和3,它们几乎与边缘1-7一致,但距离更远.

识别近邻(或"好"边缘)的好方法是什么?看看这个图,在我看来,要么选择中点落在与Voronoi线交叉点的边缘,要么考虑作为"近"邻居那些触摸Voronoi单元的边缘可能是一个很好的解决方案(3-5的分类)可以去任何一种方式).有没有一种有效的方法来实现Matlab中的任何一个解决方案(我很乐意得到一个好的通用算法,然后我可以转换为Matlab,顺便说一下)?

matlab voronoi delaunay nearest-neighbor computational-geometry

16
推荐指数
1
解决办法
1万
查看次数

HTML5 Canvas图像缩放问题

我试图在HTML5画布中制作像素艺术主题游戏,作为其中的一部分,我拍摄10x20左右的大小图像,并使用以下代码将它们绘制到画布上:

ctx.drawImage(image, 20, 20, 100, 200);
Run Code Online (Sandbox Code Playgroud)

然而,画布使用双三次图像缩放,因此像素艺术图像在2x及以上时看起来很糟糕.有没有办法强制画布使用最近邻居缩放或可能使用自定义方法来缩放图像?如果不是这意味着图像必须预先在像Paint.net这样的东西上缩放?

html5 nearest-neighbor bicubic html5-canvas

16
推荐指数
1
解决办法
1万
查看次数