knn可视化、densesift原理、手势识别

KNN可视化
一.KNN算法简介
KNN,即K近邻法(k-nearst neighbors),所谓的k最近邻,就是指最接近的k个邻居(数据),即每个样本都可以由它的K个邻居来表达。kNN算法的核心思想是,在一个含未知样本的空间,可以根据离这个样本最邻近的k个样本的数据类型来确定样本的数据类型。在scikit-learn 中,与近邻法这一大类相关的类库都在sklearn.neighbors包之中。其中分类器有KNN分类树KNeighborsClassifier、限定半径最近邻分类树的类RadiusNeighborsClassifier以及最近质心分类算法NearestCentroid等等。前两种分类算法中,scikit-learn实现两个不同的最近邻分类器:KNeighborsClassifier基于每个查询点的k个最近邻点实现学习,其中k是用户指定的最近邻数量。 RadiusNeighborsClassifier基于每个训练点的固定半径r内的最近邻搜索实现学习,其中r是用户指定的半径浮点值。关于这两种分类器的差别可以参考KNN算法的KD树和球树进行了解。

二.Python可视化实现KNN算法
这里通过python的绘图工具Matplotlib包可视化实现机器学习中的KNN算法。 需要提前安装python的Numpy和Matplotlib包。 KNN–最近邻分类算法,算法逻辑比较简单,思路如下:
1.设一待分类数据iData,先计算其到已标记数据集中每个数据的距离;
2.然后根据离iData最近的k个数据的分类,出现次数最多的类别定为iData的分类。

三.实现代码及结果
1.实现代码如下:

下面的代码主要是随机生成两个不同数据集数据集,其中normal为两个正态分布数据集,ring为正态分布且环绕状分布的数据集。
在这里插入图片描述
在这里插入图片描述
2.实验结果如下:

n=200,k=3时:

在这里插入图片描述
n=200,k=9时:
在这里插入图片描述
所以当k较小时,分类数据点的效果就越准确。

densesift原理
一、densesift原理介绍
传统的SIFT算法即Sparse SIFT,不能很好地表征不同类之间的特征差异,达不到所需的分类要求。而Dense SIFT算法,是一种对输入图像进行分块处理,再进行SIFT运算的特征提取过程。Dense SIFT根据可调的参数大小,来适当满足不同分类任务下对图像的特征表征能力。而Sparse SIFT则是对整幅图像的处理,得到一系列特征点(keypoints).

二、实验代码及结果
import numpy as np
from scipy import signal
from matplotlib import pyplot
import matplotlib
Nangles = 8
Nbins = 4
Nsamples = Nbins**2
alpha = 9.0
angles = np.array(range(Nangles))2.0np.pi/Nangles

def gen_dgauss(sigma):
‘’’
generating a derivative of Gauss filter on both the X and Y<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值