knn

KNN train() in cv2 with opencv 3.0

女生的网名这么多〃 提交于 2019-12-03 04:56:17
问题 I'm trying to run k-nearest neighbours using cv2 (python 2.7) and opencv 3.0. I've replicated the same error message using code like http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_ml/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

K nearest neighbour in python [closed]

瘦欲@ 提交于 2019-12-03 02:52:04
问题 Closed. This question is off-topic. It is not currently accepting answers. Want to improve this question? Update the question so it's on-topic for Stack Overflow. Closed 5 years ago . I would like to calculate K-nearest neighbour in python. what library should i use? 回答1: I think that you should use scikit ann. There is a good tutorial about the nearest neightbour here. According to the documentation : ann is a SWIG-generated python wrapper for the Approximate Nearest Neighbor (ANN) Library

Finding k-nearest neighbors for a given vector?

匿名 (未验证) 提交于 2019-12-03 02:49:01
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 问题: Given that I have the following in my knowledge-database: 1 0 6 20 0 0 6 20 1 0 3 6 0 0 3 6 1 0 15 45 0 0 15 45 1 0 17 44 0 0 17 44 1 0 2 5 0 0 2 5 I want to be able to find the nearest neighbors of the following vector: 1 0 5 16 0 0 5 16 according to a distance metric. So in this case, given a particular threshold, I should find that the first vector listed is a near-neighbor to the given vector. Currently, the size of my knowledge database is in the order of millions so calculating the distance metric for each and every point and then

KNN in R: 'train and class have different lengths'?

匿名 (未验证) 提交于 2019-12-03 01:58:03
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 问题: Here is my code: train_points dim(train_points) is 42000 x 784 dim(train_labels) is 42000 x 1 I don't see the issue, but I'm getting the error : Error in knn(train_points, test_points, train_labels, k = 5) : 'train' and 'class' have different lengths. What's the problem? 回答1: Without access to the data, it's really hard to help. However, I suspect that train_labels should be a vector. So try cl = train_labels[,1] knn(train_points, test_points, cl, k = 5) Also double check: dim(train_points) dim(test_points) length(cl) 回答2: I have recently

Sklearn kNN usage with a user defined metric

匿名 (未验证) 提交于 2019-12-03 01:55:01
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 问题: Currently I'm doing a project which may require using a kNN algorithm to find the top k nearest neighbors for a given point, say P. im using python, sklearn package to do the job, but our predefined metric is not one of those default metrics. so I have to use the user defined metric, from the documents of sklearn, which can be find here and here . It seems that the latest version of sklearn kNN support the user defined metric, but i cant find how to use it: import sklearn from sklearn.neighbors import NearestNeighbors import numpy as np from

k-近邻(KNN) 算法预测签到位置

匿名 (未验证) 提交于 2019-12-03 00:17:01
分类算法-k近邻算法(KNN): 定义:    如果一个样本在特征空间中的 k个最相似 (即特征空间中最邻近) 的样本中的大多数属于某一个类别 ,则该样本也属于这个类别 来源:    KNN算法最早是由Cover和Hart提出的一种分类算法 计算距离公式:    两个样本的距离可以通过如下公式计算,又叫 欧氏距离 ,比如说       问题: 1. k值取多大?有什么影响?   k值取很小:容易受到异常点的影响   k值取很大:容易受最近数据太多导致比例变化 2. 性能问题 k-近邻算法的优缺点:    优点:     简单、易于理解, 无需估计参数,无需训练    缺点:     懒惰算法,对测试样本分类时的计算量大,内存开销大     必须制定k值,k值选择不当则分类精度不能保证    使用场景:     小数据场景,几千~几万样本,具体场景具体业务去测试 k近邻算法实例-预测签到位置: 数据来源:   kaggle官网,链接地址: https://www.kaggle.com/c/facebook-v-predicting-check-ins/data 数据的处理: 1. 缩小数值范围: DataFrame.query(),因为数据量过大,所以获取部分数据 2. 处理日期数据: pd.to_datetime() 、pd.DatetimeIndex(),两个pandas库的接口

机器学习实战_KNN(一)

匿名 (未验证) 提交于 2019-12-03 00:13:02
【是什么】 KNN 即 k_近邻算法(k- nearest neighbor) ,就是寻找K个邻居作为该样本的特征,近朱者赤,近墨者黑,你的邻居是什么特征,那么就认为你也具备该特征 ; 核心公式为: 数据来源: https://github.com/apachecn/AiLearning/blob/master/data/2.KNN/datingTestSet2.txt 读取数据转换成矩阵 # 提取文件中的数据 转换成矩阵 def file2matric ( filename ): """ disc: param: filename: 导入数据文本 return: 数据矩阵 """ f = open ( filename , 'r' , encoding = 'utf-8' ) # 获取文件的行数 lines_list = f . readlines () num_of_lines = len ( lines_list ) # 创建存放标签的列表 class_label_list = [] # 生成对应的空矩阵 zeros(2,3) 就是生成2行3列的0矩阵 returnMat = np . zeros (( num_of_lines , 3 )) # 将文本中的数据放到矩阵中 for i in range ( num_of_lines ): lines = lines_list

numpy实现KNN代码

匿名 (未验证) 提交于 2019-12-03 00:03:02
代码参考征哥博客: 传送门 简介: KNN的基本思想是根据与测试样本相邻最近的k个样本的标签,去决定该样本的预测值。KNN有三个要素:k值选择,距离度量方式和决策准则。 KNN没有显式的训练过程,计算基本都在预测阶段。 1. K值选择 一般先选取一个较小的k值,然后通过交叉验证来确定k的取值。 2. 距离度量方式 一般选择欧氏距离、曼哈顿距离或余弦相似度。 3. 决策准则 一般分类用多数表决法,回归用平均法。 一般情况下直接遍历一遍样本,计算测试样本与训练集中每个样本的距离,然后选择最近的k个。但是这样在样本集非常大时效率不高,优化方案是使用KD树或者球树来寻找k近邻,具体细节可以参考: 传送门 代码: import numpy as np from collections import Counter class KNN : def __init__ ( self , task_type = 'classification' ): self . train_data = None self . train_label = None self . task_type = task_type def fit ( self , train_data , train_label ): self . train_data = np . array ( train_data ) self .

K近邻算法(KNN)

匿名 (未验证) 提交于 2019-12-02 23:52:01
1.算法介绍: k近邻算法(k-NN)是一种简单、基本的分类与回归方法。算法描述如下:给定一个训练数据集,对于新给的一个样本,在训练数据中找到与该样本最相邻的k个实例,那么这k个实例多数属于哪个分类,就把该样本归类到哪个分类。 k近邻模型的三个基本要素――距离度量、k值确定、分类决策规则(一般是多数规则)。 首先,我们需要度量任何两个样本之间的距离,特征空间中2个实例点距离是2个实例点的相似程度的反映。 假设x i 和x j i =(x i (1) i (2) , ... x i (n) ) T j =(x j (1) j (2) j (n) ) T i 和x j 的距离就是L p (x i , x j ) ,也叫做闵可夫斯基(H.Minkowski)距离。

kmeans和knn相同点和不同点:

匿名 (未验证) 提交于 2019-12-02 23:42:01
kmeans和knn相同点和不同点: 一、K最近邻(kNN,k-NearestNeighbor)分类算法,找到最近的k个邻居(样本),在前k个样本中选择频率最高的类别作为预测类别。 步骤: 1)算距离:给定测试对象,计算它与训练集中的每个对象的距离 2)找邻居:圈定距离最近的k个训练对象,作为测试对象的近邻 3)做分类:根据这k个近邻归属的主要类别,来对测试对象分类 二、K-Means算法-聚类:是一种无监督的学习,将相似的对象归到同一簇中。聚类的方法几乎可以应用所有对象,簇内的对象越相似,聚类的效果就越好。K-means算法中的k表示的是聚类为k个簇,means代表取每一个聚类中数据值的均值作为该簇的中心,或者称为质心,即用每一个的类的质心对该簇进行描述。 步骤: 1)首先,随机确定k个初始点的质心; 2)然后将数据集中的每一个点分配到一个簇中(即为每一个点找到距其最近的质心,并将其分配给该质心所对应的簇); 3)该步完成后,每一个簇的质心更新为该簇所有点的平均值 区别1:聚类和分类最大的不同在于,分类的目标是事先已知的,而聚类则不一样,聚类事先不知道目标变量是什么,类别没有像分类那样被预先定义出来,所以,聚类有时也叫无监督学习。聚类分析试图将相似的对象归入同一簇,将不相似的对象归为不同簇 区别2:K-means算法虽然比较容易实现,但是其可能收敛到局部最优解