K-近邻的C/C++实现
在哪里可以找到k-nearest邻居算法的串行C ++实现? 您知道有这个图书馆吗? 我发现了OpenCV,但是实现已经是平行的. 我想从串行实现开始,并与pthreads OpenMP和MPI并行化. 谢谢, Alex 解决方案 Ann呢? http://www.cs.umd.edu/~mount/Ann/Ann/ .我曾经使用过KDTREE实现,但是还有其他选项. 引用网站:" ANN是用C ++编写的库,该库支持数据结构和算法的精确和大约最近的邻居搜索,以任意高的维度搜索." 其他解决方案 我写了一个 kd-tree 的C ++实现与最近的邻居搜索.您可以通过添加优先级队列轻松地将其扩展为K-Nearest邻居. 更新:我添加了对k-nearest邻居搜索的支持 其他解决方案 实现此目的的最简单方法是循环浏览所有元素并将K存储最近. (只是比较).它的复杂性是O(n)不太好,但不需要预处理.因此,现在确实取决于您的应用程序.您应该使
4 2023-05-19
编程技术问答社区
未知标签类型:连续
Avg.SessionLength TimeonApp TimeonWebsite LengthofMembership Yearly Amount Spent 0 34.497268 12.655651 39.577668 4.082621 587.951054 1 31.926272 11.109461 37.268959 2.664034 392.204933 2 33.000915 11.330278 37.110597 4.104543 487.547505 3 34.305557 13.717514 36.721283 3.120179 581.852344 4 33.330673 12.795189 37.536653 4.446308 599.406092 5 33.871038 12.026925 34.476878 5.493507 63
0 2023-05-18
编程技术问答社区
未知标签类型:';连续#39;
我的团队, 有一个问题 ---------------------------- Avg.SessionLength TimeonApp TimeonWebsite LengthofMembership Yearly Amount Spent 0 34.497268 12.655651 39.577668 4.082621 587.951054 1 31.926272 11.109461 37.268959 2.664034 392.204933 2 33.000915 11.330278 37.110597 4.104543 487.547505 3 34.305557 13.717514 36.721283 3.120179
0 2023-05-18
编程技术问答社区
Knn在距离上给予特定特征更多的权重
我正在使用科比·布莱恩特(Kobe Bryant)数据集. 我希望用knnregressor预测shot_made_flag. 我已经使用game_date提取year和month功能: # covert season to years kobe_data_encoded['season'] = kobe_data_encoded['season'].apply(lambda x: int(re.compile('(\d+)-').findall(x)[0])) # add year and month using game_date kobe_data_encoded['year'] = kobe_data_encoded['game_date'].apply(lambda x: int(re.compile('(\d{4})').findall(x)[0])) kobe_data_encoded['month'] = kobe_data_encoded['game_da
6 2023-05-17
编程技术问答社区
已安装软件包,但收到一个错误,该函数可能#39;找不到R
可能的重复: 错误:无法找到功能...在r 中 我试图在R中使用KNN功能,并安装了多个软件包来进行此操作(例如Knn,Knngarden,iped). 使用r-studio,它会随着package的成功安装而遇到(软件包'kknn'成功打开包装并检查了MD5总和),但是当我尝试使用kknn(kknn(火车,测试,cl,k = 1,l)时= 0,prob = true,use.all = true))我得到以下错误:错误:找不到函数" kknn" 我假设这与我的工作目录有关.我检查并重置了我的wd,以作为包含软件包的R中的文件夹,但要知道可用.我在做什么错? 解决方案 除了安装软件包外,还必须加载它们.需要安装一次,每次开始新的R会话时都需要加载.这些都可以解决问题. require(kknn) library(kknn)
0 2023-05-16
编程技术问答社区
使用Python的KMeans聚类法
我有一个数据集 Name System A AZ A NaN B AZ B NaN B NaN C AY C AY D AZ E AY E AY E NaN F AZ F AZ F NaN 使用此数据集,我需要根据特定"名称"重复的次数"系统"来群集数据集. 在上面的示例中,名称a,b和d具有一个" az"" subset",而c,e具有两个" ay"子集,而f具有两个AZ,因此它是一个不同的群集. 输出示例: Cluster Names AZ A,B AY,AY C,E AZ,AZ F ps.实际数据集的行数和列数可能会有所不同 如何使用基于ML的聚类算法(例如KNN,Naive Bayes等)进行操作? 我需要两种方法,一种不忽略
0 2023-05-16
编程技术问答社区
查找所有属于特定KNN类的输入
我使用Sklearn Python创建了基于KNN的分类算法. 该算法创建了4个名为" 1"," 2"," 3"," 4"的类. 我想给出算法的输入列表,并预测它们可能属于的四个类中的哪个类,并仅打印出仅属于" 1"类的输入的列表 尝试使用: review_3 = ["Loop","Loop No.", "Customer Tag"] review_3 = vectorizer.transform(review_3) print(type(review_3)) L = [] for i in review_3: if (knn.predict(i)==1): L.append(i) print(L) 算法正确分类了输出类,但无法获取所需的列表. 这里需要的输出为 L= ["Loop","Loop No."] 解决方案 通过从预测的输出中转换列表来获得所需的输出. 输入列表和预测列表共同创建一个字典.根据所需的班级名称比较每个键的
0 2023-05-15
编程技术问答社区
对于大量的维度,如何在C#中最好地实现K-nearest neighbours?
我正在在C#中实施K-Neart最邻居分类算法,以进行大约20,000个样本和25个维度的培训和测试集. 在我的实现中,只有两个类,由" 0"和" 1"表示.目前,我有以下简单的实现: // testSamples and trainSamples consists of about 20k vectors each with 25 dimensions // trainClasses contains 0 or 1 signifying the corresponding class for each sample in trainSamples static int[] TestKnnCase(IList trainSamples, IList testSamples, IList trainClasses, int K) { Console.WriteLine("Performing KNN with K =
2 2023-05-12
编程技术问答社区
带opencv 3.0的cv2中的KNN列()
我正在尝试使用CV2(Python 2.7)和OpenCV 3.0运行K-Nearest邻居.我已经使用代码复制了相同的错误消息http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_ml/py_knn/py_knn/py_knn_understanding/py_knn_understanding.html : import cv2 import numpy as np import matplotlib.pyplot as plt # Feature set containing (x,y) values of 25 known/training data trainData = np.random.randint(0,100,(25,2)).astype(np.float32) # Labels each one either Red or Blue with numbers 0 and 1 responses = np.ran
4 2023-05-10
编程技术问答社区
OpenCV 3.0.0-beta缺少KNN?
刚刚从OpenCV-2.4.11升级后,nearest似乎缺少 In [27]: import cv2 In [28]: print(cv2.__version__) 3.0.0-beta In [29]: cv2.KNearest() --------------------------------------------------------------------------- AttributeError Traceback (most recent call last) in () ----> 1 cv2.KNearest() AttributeError: 'module' object has no attribute 'KNearest' In [30]: cv2.K cv2.KAZE_DIFF_CHARBONNIER
4 2023-05-10
编程技术问答社区
将OpenCV图像传递给KNearest#39;s查找最近的
我一直在关注示例在这里使用KNN分类训练OpenCV为OCR设置Python.我遵循了第一个示例,并生成了一个knn_data.npz,该>存储培训数据和培训标签以备以后使用.我现在要做的是回忆起培训数据,并将其应用于其中包含一个字符的OPENCV图像: # Load training data trainingData = np.load('knn_data.npz') train = trainingData['train'] trainLabels = trainingData['train_labels'] knn = cv2.KNearest() knn.train(train, trainLabels) letter = cv2.imread('letter.png') letter = cv2.cvtColor(letter, cv2.COLOR_BGR2GRAY) print letter.shape letter = letter.reshape((1,10
6 2023-05-10
编程技术问答社区
用Python从图像中创建一个数据集,用于人脸识别
我正在尝试在Python中编码一个面部识别程序(我将应用K-NN算法进行分类). 首先,我将图像转换为灰度,然后用图像的像素(128x128 = 16384特征总计使用OpenCV的Imagedata函数)创建了一个长列向量(通过OpenCV的Imagedata函数) > 所以我得到了一个类似于以下数据集(最后一列是类标签,我仅显示了数据集的第一个7个功能,而不是16384). 176, 176, 175, 175, 177, 173, 178, 1 162, 161, 167, 162, 167, 166, 166, 2 但是,当我将K-NN应用于此数据集时,我会得到尴尬的结果.我需要在此数据集中应用其他过程,而不仅仅是将图像转换为像素表示? 谢谢. 解决方案 通常,面部识别管道需要几个阶段才能有效.一定程度的几何标准化对于准确性至关重要.您要么需要手动标记基准点并为每个图像获得转换,要么自动检测基准点,其中有开源的基准点检测器.尝试OPENCV的g
4 2023-05-10
编程技术问答社区
如何使用opencv flann::Index?
我在opencv flann :: index- 有一些问题 我正在创建索引 Mat samples = Mat::zeros(vfv_net_quie.size(),24,CV_32F); for (int i =0; i (i,j)=(float)vfv_net_quie[i].vfv[j]; } } cv::flann::Index flann_index( samples, cv::flann::KDTreeIndexParams(4), cvflann::FLANN_DIST_EUCLIDEAN
2 2023-05-10
编程技术问答社区
用KNN分类器进行数字识别前的预处理
现在,我正在尝试使用OPENCV创建数字识别系统.网络中有许多文章和示例(甚至在 stackoverflow ) .我决定使用 knn分类器因为此解决方案在网络中最受欢迎.我找到了一个手写数字数据库 带有60k示例的培训,误差率小于5%. 我使用此教程如何使用OpenCV使用此数据库.我使用的是完全相同的技术,并且在测试数据(t10k-images.idx3-ubyte)上,我的错误率为4%.但是,当我尝试对自己的数字进行分类时,我会有更大的错误.例如: 被识别为 7 and 和 被识别为 8 等等(如果需要,我可以上传所有图像). 您可以看到所有数字具有良好的质量,并且对人来说很容易识别. 所以我决定在分类之前进行一些预处理.从 mnist数据库网站我发现人们正在使用 deskewing ,噪声去除,模糊和像素移位技术.不幸的是,几乎所有指向文章的链接都被打破了.因此,我决定自己做这样的预处理,因为我已经知道该怎么做. 现在,我的算法如下:
0 2023-05-09
编程技术问答社区
在SURF中使用欧几里德距离
在我的代码中,我是根据最近的neigbour距离比过滤好图像的,如下: for(int i = 0; i 0)) { good_matches.push_back(matches[i][0]); } } 由于我是根据最近的邻居距离比过滤好图像的,所以我是否需要进行欧几里得距离计算? 我想知道何时在FlannBasedMatcher中使用knnMatch方法,在方法内,它们使用欧几里得距离与关键点匹配
0 2023-05-09
编程技术问答社区
函数读取np.array-产生np.array中k nn到数字p的平均值。
我需要确定一个读取一个numpy数组的函数,并在数组中的数字p中产生k的平均值. 示例: array= np.array([1, 2, 3, 4, 5, 6, 7, 50, 24, 32, 9, 11, 12, 10]) p= 15 (**Note this is not a number in the array, I will need to find the number closest to p or p number itself) k = 3 In this case, I would need to generate the mean for ([11, 12, 10)] as they are closest to p = 15 使用上述数字,我需要在数组中明确说明最接近p和p点的k个点的平均值. 我在这一点上是新的,非常困惑,觉得我已经用尽了资源.我觉得这个问题以前已经问过,但是答案对于我需要的东西太复杂了. 预先感谢. 解决方案
0 2023-05-02
编程技术问答社区
使用python numpy在三维空间中查找点的k近邻
i在格式NP array((n,3))中具有n个点的3D点云.例如,这可能是: P = [[x1,y1,z1],[x2,y2,z2],[x3,y3,z3],[x4,y4,z4],[x5,y5,z5],.....[xn,yn,zn]] 我希望能够获得每个点的k-nearther邻居. 因此,例如,P1最近的K邻居可能是P2,P3,P4,P5,P6,P2的KNN可能是P100,P150,P2等. 在Python中如何做到这一点? 解决方案 可以用 scipy.spatial.distance.pdist . 首先,让我们创建一个将点存储在3D空间中的示例数组: import numpy as np N = 10 # The number of points points = np.random.rand(N, 3) print(points) 输出: array([[ 0.23087546, 0.56051787, 0.5241293
122 2023-05-01
编程技术问答社区
如何从k-nearest neighbors预测中提取边界值?
如何仅提取或从.predict中返回, MRE import pandas as pd import numpy as np from sklearn.datasets import load_iris from sklearn.neighbors import KNeighborsClassifier import seaborn as sns import matplotlib.pyplot as plt from matplotlib.colors import ListedColormap # prepare data iris = load_iris() X = iris.data y = iris.target df = pd.DataFrame(X, columns=iris.feature_names) df['label'] = y species_map = dict(zip(range(3), iris.target_names)) df['species
0 2023-05-01
编程技术问答社区
需要在KNN算法中进行标准化
为什么在KNN中需要归一化?我知道此过程使所有功能对结果的效果归一范v归一化 .因此,标准化与欧几里得距离有什么区别.毕竟,KNN完全取决于欧几里得距离? 预先感谢! 解决方案 如果您在不同的维度上有不同的可变性,则大多数归一化技术将改变最近的邻居. 想象A =(-5,0),B =(-5,1)和C =(5,1)的数据集.现在考虑一个兴趣点(4.5,0).显然,C是最接近的邻居. 在两个维度中,最小最大归一化为(-1,1)后,您的数据集将变为a =( - 1,-1),b =( - 1,1),c =(1,1).您的兴趣点对应于这个新空间中的(0.9,-1).因此,A现在是最近的邻居. 其他解决方案 我同意dedobed.但是,答案似乎暗示了KNN不建议进行缩放变量.当涉及非常不同数量级的变量时,幅度最高的变量将主导分析.在某些情况下,这可能不是可取的.缩放所有变量将阻止此问题.
4 2023-04-27
编程技术问答社区
查询数据维度必须匹配培训数据维度
我正在开发一个推文分类器.我用A TFIDF数据集训练了一个KNN Clasiffier,其中每一行的长度为3.173,在训练了模型A负载中,将其加载到文件中,以便我可以对新推文进行分类. 问题是,每次我提取新推文并尝试对其进行分类时,TFIDF lenths都取决于新提取的推文的词汇,因此模型不可能对这些新推文进行分类. 我一直在搜索并试图解决这两天,但没有找到有效的解决方案.如何将查询数据的维度调整为有效的培训数据维度? ? 这是我的代码: #CLASIFICA TWEETS TASS TEST clf = joblib.load('files/model_knn_pos.sav') #Carga los tweets dfNew = pd.read_csv(f'files/tweetsTASStestCaract.csv', encoding='UTF-8',sep='|') #Preprocesa prepro
4 2023-04-23
编程技术问答社区