问题标签 [knn]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2796 浏览

c++ - 使用 openmp 和分段错误的并行 K 最近邻居

我正在尝试对“dat”中的数据点做 k 个最近邻(KNN),所以我的第一步是在每个点和所有其他点之间构建一个距离矩阵,然后为每个点找到 K 个最近邻。以下代码在没有 openmp 的情况下可以完美地串行工作。但是,当我使用 openmp 时,它会出现分段错误。我认为这个错误与我如何更新包含 k 个最小元素的索引的 minimum 有关。我想可能我需要使用最小向量的“减少”,但我不确定如何使用它或者它是对还是错,所以任何关于如何克服这个分段错误的帮助都非常感谢。

0 投票
1 回答
190 浏览

machine-learning - 如何对具有多个类的 k-NN 进行加权求和?

我有很多数据点(x,y),我正在尝试使用 k-NN 来预测未来的 y'。

如果 y 只有两个可能的值,那么我可以处理 y = +1 或 -1。每次我有一个输入 x' 时,找到最近的 k 个元素,并将它们的 y 与距离(x,x')的倒数相乘。如果总和大于0,那么我将预测y'=+1,否则y'=-1

但是,知道我的 y 有 10 个不同的可能值。在这种情况下我该如何做类似的加权求和?

0 投票
2 回答
693 浏览

c++ - OpenCV 的 KNN 未知分类

目前我正在使用 OpenCV 的 KNN 实现对图像进行分类。它目前将图像正确分类为 P、S 或矩形。但是,如果我给它提供一张噪声图像,它会尝试将其分类为我之前所说的 3 种分类中的一种。要将其分类为噪声,我应该训练 KNN 将噪声归为“噪声”类别,还是可以使用某种准确度等级?

0 投票
1 回答
2988 浏览

android - 使用 openCV for android 时找不到正确的 FAST-SURF 匹配项

我正在使用 openCV for android 来实现徽标检测算法。我现在的目标是在我用安卓相机拍摄的照片中找到一个预定义的标志。

我找不到任何正确的匹配项。考虑到我几乎只使用 openCV 库函数,我认为这很奇怪。

首先我使用 FAST 检测器检测关键点,我的图像大小为 500x500,然后我使用 SURF 来描述这些关键点。与 knn 我要求 2 个最佳匹配,并消除那些 A 比率不小于 0.6(first.distance/second.distance)的。

我得到了大约 10 场比赛,但他们都错了,当我每场比赛(100 多场)都画出来时,他们似乎都错了

我在这里看不到我做错了什么,有没有人有同样的问题,或者知道我做错了什么?

0 投票
4 回答
646 浏览

computational-geometry - 在高维空间中具有动态插入的 kNN

我正在寻找一种方法来为高维点(通常为~11-13 维)做快速最近邻(希望是 O(log n))。我希望它在初始化结构后的插入过程中表现最佳。我想到了 KD 树,但是如果您不进行批量加载而是进行动态插入,那么 kd 树就不再是平衡的,并且 afaik 平衡是一项昂贵的操作。

所以,我想知道对于这种设置,您更喜欢哪种数据结构。你有高维点,你想插入和查询最近的邻居。

0 投票
2 回答
5752 浏览

algorithm - 每个类的 k 最近邻分类器训练样本大小

有人可以告诉我每个班级的训练样本量是否需要相等吗?

我可以接受这种情况吗?

还是应该所有类都具有相同的样本量?

0 投票
0 回答
1073 浏览

r - R knn 从 2 个变量开始的前向逐步特征选择

我正在尝试对knn模型进行逐步向前的特征选择。我正在使用FSelector包和forward.search()功能。

在特征消除之前,数据集是约 400k 行 x 约 100 列。

问题是表现最好的特征没有很多级别,因此有很多联系导致模型失败。

我的问题是这样的:

如果我知道性能最好的功能是什么,有没有办法用 2 个变量而不是一个变量来启动 forward.search()?

换句话说,如果我有 5 个变量。forward.search 将通过它们寻找最好的,例如:

一旦确定了最好的(即var3)算法就会这样做:

等等。如果我知道表现最好的单变量,有没有办法跳到第二步?

任何建议,将不胜感激。

0 投票
2 回答
1209 浏览

algorithm - 邻居数 KNN 算法

我在matlab中应用了KNN算法对手写数字进行分类。数字最初是 8*8 的矢量格式,然后拉伸形成一个 1*64 的矢量。因此,每次我将第一个数字与所有其余数据集(非常大)进行比较时,然后将第二个数字与其余数据集等等等等等等。现在我的问题是,不是 1 个邻居是最佳选择吗总是?由于我使用的是欧几里得距离,(我选择更接近的那个)为什么我还要选择 2 或 3 个以上的邻居,因为我得到了最接近的数字?

谢谢

0 投票
2 回答
11073 浏览

algorithm - PCA 和 KNN 算法

我正在使用 KNN 对手写数字进行分类。我现在也实施了 PCA 来降低维度。从 256 到 200。但我只注意到大约 0.10% 的信息丢失。我删除了 56 维。损失不应该更大吗?只有当我下降到 5 个维度时,我才会损失约 20%。这是正常的吗?

0 投票
1 回答
982 浏览

sift - 匹配多幅图像时的 SIFT 特征匹配性能

我有一个图像库,有约 5000 张图像和约 150 个特征。现在我有另一个具有约 300 个特征的图像,我想在我的库中找到 5 个最相似的图像。

蛮力大约需要 300 * 5000 * 150 * 128 次操作,花费太多时间。所以我为我库中每个图像的特征构建了一个 kd-tree,这意味着大约 5000 个 kd-tree。我像其他筛选库一样使用bbf 搜索近似最近的邻居。但是性能变得比我的蛮力算法还要慢。为了确保这不是我实现的错,我修改了其他库的匹配算法以蛮力,它们的性能也有所提高。

我的问题是有没有可能将〜5000 kd-trees组合成一棵树?或者是否有其他方法可以在匹配多个图像时提高性能?