问题标签 [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.
opencv - OpenCV中如何实现knn算法
我想知道 Knn 算法是如何在 OpenCV 中实现的。我在哪里可以看到这段代码?容易理解吗?有人可以用伪代码向我解释一下吗?
因为我已经实现了以下算法:
http://www.codeproject.com/Articles/32970/K-Nearest-Neighbor-Algorithm-Implementation-and-Ov
但它给了我使用相同训练数据的 OpenCV 函数的不同结果。特别是,OpenCV 函数给了我最好的结果。
谢谢
python-2.7 - python中的K最近邻
我有包含单个维度和类标签的数据。我想在上面运行 KNN。
我的数据是这样的
我做了下面的事情,结果出错了。我从错误中了解到 train 的数据类型无法识别,但我不知道如何修复它。请帮忙
python - 如何在python中测量knn分类器的准确性
我使用 knn 对我的数据集进行分类。但是我不知道如何衡量训练好的分类器的准确性。scikit 是否有任何内置功能来检查 knn 分类器的准确性?
感谢所有的帮助。谢谢
opencv - 如何使用opencv flann,尤其是设置距离算法?
我正在使用 opencv 2.4.4 flann。
我参考:http ://docs.opencv.org/2.4.4/modules/flann/doc/flann_fast_approximate_nearest_neighbor_search.html
做KNN。
我有一个矩阵(8000*32)flann_m。有 8000 个数据,每个数据有 32 个特征。
我写了这样的代码:
我可以在 nreps 和 dist 中得到 KNN 结果,nresps 是 N 个邻居的索引,dist 是距离。
但我不知道如何在 opencv flann 中设置不同的距离算法(ChiSquare、Euclidean 等)。
我检查了 flann.cpp,似乎 set_distance() 函数已被弃用。
visual-c++ - 未处理的异常
我正在尝试通过论坛的帮助代码来实现 KNN 算法。代码如下。
我使用 unsigned char 而不是 BYTE,我认为它应该做同样的工作。如果我在这里错了,请纠正我。
尽管如此,我不是编程专家,但是当我运行代码时出现此错误
* K-Nearest Neighbour.exe 中 0x000007FEE68F7450 (msvcr110d.dll) 处未处理的异常:0xC0000005:访问冲突写入位置 0x0000000000000003
有人可以帮我构建此代码..谢谢
c++ - OpenCV Knearest 没有正确分类
我正在尝试制作一个 K 最近邻分类器来根据其色调颜色值识别对象。我有两个 CSV 文件,其中填充了两个单独对象的这些颜色值,每个对象包含大约 100 个样本。它们都被归一化为包含 40 个整数,用于描述该对象每行的平均颜色。我使用 K 值 10。
我的分类器总是返回标签“1”,即使我在准备作为训练数据的相同数据上使用它。当我查找函数返回的最近点时find_nearest
,无论输入数据如何,我总是会看到相同的 10 个点:1、1、0、1、1、1、1、1、1、1。输入数据或学习数据似乎都有问题,但是当我检查CvMat*
对象的内容时,它们都是应有的。
谁能在下面的代码中看到我做错了什么?我通常使用 c++ API,但我发现找到 k 最近邻居的示例更加困难。我已经检查了openCV和这个博客的例子
要识别对象:
matlab - matlab中的FLANN从我自己的计算中返回不同的距离
我在 matlab 中使用 FLANN 并使用 SIFT 特征描述符作为我的数据。有一个功能:
这里index
是用 kd-tree 构建的。“用户手册”说result
返回 中样本的最近邻testset
,并ndists
包含测试样本与最近邻之间的对应距离。我使用了欧几里得距离,发现其中的距离ndists
与原始数据计算的距离不同。更奇怪的是,里面的所有数字ndists
都是整数,这对于欧几里得距离来说往往是不可能的。你能帮我解释一下吗?
c++ - 使用 KNN 分类器进行数字识别前的预处理
现在我正在尝试使用 OpenCV 创建数字识别系统。WEB 中有很多文章和示例(甚至在StackOverflow上)。我决定使用KNN 分类器,因为这个解决方案在 WEB 中是最流行的。我找到了一个手写数字数据库,其中包含 60k 个示例的训练集,错误率低于 5%。
我以本教程为例,说明如何使用 OpenCV 处理该数据库。我使用完全相同的技术,在测试数据(t10k-images.idx3-ubyte
)上我有 4% 的错误率。但是当我尝试对自己的数字进行分类时,我遇到了更大的错误。例如:
被识别为7
并被
识别为5
并被
识别为1
被识别为8
依此类推(如果需要,我可以上传所有图像)。
如您所见,所有数字都具有良好的质量,并且易于人类识别。
所以我决定在分类之前做一些预处理。从MNIST 数据库站点上的表格中,我发现人们正在使用去歪斜、去噪、模糊和像素移位技术。不幸的是,几乎所有文章的链接都被破坏了。所以我决定自己做这样的预处理,因为我已经知道怎么做。
现在,我的算法如下:
- 侵蚀图像(我认为我的原始数字太
粗糙了)。 - 去除小轮廓。
- 阈值和模糊图像。
- 中心数字(而不是移位)。
我认为在我的情况下不需要纠偏,因为所有数字通常都是旋转的。而且我也不知道如何找到合适的旋转角度。所以在这之后我得到了这些图像:
也是1
是3(不是以前的5)
是5(不是8)
是7(利润!)
所以,这样的预处理对我有点帮助,但我需要更好的结果,因为在我看来,这样的数字应该可以毫无问题地被识别。
任何人都可以给我任何关于预处理的建议吗?谢谢你的帮助。
PS我可以上传我的源代码(c++)。
audio - 如何使用 MFCC 向量对单个音频文件进行分类?
这可能是一个非常愚蠢的问题,但我在任何地方都找不到详细信息。
所以我有一个 3 秒长的录音(wav 文件)。那是我的样本,它需要分类为 [class_A] 或 [class_B]。
通过遵循 MFCC 上的一些教程,我将样本划分为帧(准确地说是 291 帧),并且我从每个帧中得到了 MFCC。
现在我有 291 个特征向量,每个向量的长度是 13。
我的问题是;您如何将这些向量与分类器(例如 k-NN)一起使用?我有 291 个向量代表 1 个样本。我知道如何为 1 个样本使用 1 个向量,但如果我有 291 个向量,我不知道该怎么做。我真的无法在任何地方找到解释。