主要内容

kdtreesearcher.

创造Kd树最近邻搜索器

描述

kdtreesearcher.模型对象存储使用的最近邻搜索的结果KD树算法。结果包括培训数据,距离度量和其参数,以及每个叶节点(即桶大小)中的最大数据点数。的Kd-树算法划分n——- - - - - -K通过递归拆分设置的数据nK- 在二叉树中的尺寸空间。

一旦你创建一个kdtreesearcher.模型对象时,您可以搜索存储的树来查找查询数据的所有邻近点,方法是使用knnsearch或者半径搜索使用rangesearch..的KD-Tree算法比详尽的搜索算法更有效K小(即,K≤10),训练和查询集不是稀疏,训练和查询集具有许多观察。

创造

使用这一点创造函数或kdtreesearcher.函数(这里描述)创建一个kdtreesearcher.模型对象。这两个函数使用相同的语法,除了创造函数有“NSMethod”名称-值对参数,用于选择最近邻搜索方法。的创造函数还创建ExhaustiveSearcher对象。指定'nsmethod','kdtree'创建一个kdtreesearcher.对象。默认为“kdtree”如果K≤10,训练数据不是稀疏,距离度量是欧几里德,城市块,Chebychev或Minkowski。

描述

例子

Mdl= KDTreeSearcher (X增加一个默认的Kd-tree (Mdl)使用n——- - - - - -K训练数据的数字矩阵(X).

例子

Mdl= KDTreeSearcher (X名称,值使用一个或多个名称-值对参数指定其他选项。可以指定每个叶节点的最大数据点数量(即桶大小)和距离度量,并设置距离度量参数(distparameter.)的财产。例如,kdtreesearcher(x,'距离','minkowski','bucketsize',10)在搜索最近的邻居并使用时,指定使用Minkowski距离10.对于桶尺寸。指定distparameter.,可以使用P名称-值对的论点。

输入参数

展开所有

培训数据增长Kd-树,指定为数字矩阵。Xn行,每个行对应一个观察(即一个实例或示例),以及K列,每个列对应一个预测器(即一个特性)。

数据类型:单身|双人间

名称-值对的观点

指定可选的逗号分隔的对名称,值参数。名称参数名和价值是相应的价值。名称必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家

例子:'距离','minkowski','p',3,'桶装',10指定在搜索最近邻时使用以下参数:Minkowski距离,3.闵可夫斯基距离度量指数10.对于桶尺寸。

你打电话时使用的距离度量knnsearch或者rangesearch.找到未来查询点的最近邻居,指定为逗号分隔的对组成'距离'其中一个值。

价值 描述
“chebychev” 切比切夫距离(最大坐标差)。
'CityBlock' 城市街区距离。
“欧几里得” 欧氏距离。
闵可夫斯基的 闵可夫斯基距离。默认指数是2。要指定不同的指数,请使用“P”名称-值对的论点。

有关更多详细信息,请参阅距离度量

该软件不使用距离度量来创建一个kdtreesearcher.模型对象,所以你可以在创建对象之后通过使用点符号来改变距离度量。

例子:'距离','minkowski'

用于Minkowski距离度量的指数,指定为逗号分隔对组成“P”和正标量。此参数仅在此处有效'距离'闵可夫斯基的

例子:“P”3

数据类型:单身|双人间

每个叶节点中的最大数据点数KD-tree,指定为逗号分隔的对,由'桶里'一个正整数。

例子:“BucketSize”,10

数据类型:单身|双人间

属性

展开所有

此属性是只读的。

培训数据增长Kd-树,指定为数字矩阵。Xn行,每个行对应一个观察(即一个实例或示例),以及K列,每个列对应一个预测器(即一个特性)。

输入论点Xof创造或者kdtreesearcher.设置此属性。

数据类型:单身|双人间

你打电话时使用的距离度量knnsearch或者rangesearch.找到未来查询点的最近邻居,指定为“chebychev”'CityBlock'“欧几里得”或者闵可夫斯基的

'距离'的名称-值对参数创造或者kdtreesearcher.设置此属性。

该软件不使用距离度量来创建一个kdtreesearcher.模型对象,所以你可以使用点符号来改变它。

距离度量参数值,指定为空([])或正标量。

如果距离闵可夫斯基的,然后distparameter.是Minkowski距离公式中的指数。否则,distparameter.[],表示指定的距离度量公式没有参数。

“P”的名称-值对参数创造或者kdtreesearcher.设置此属性。

你可以改变distparameter.例如,通过使用点表示法,mdl.distparameter = pnew.,在哪里PNEW.是一个正标量。

数据类型:单身|双人间

此属性是只读的。

每个叶节点中的最大数据点数KD-tree,指定为正整数。

'桶里'的名称-值对参数创造或者kdtreesearcher.设置此属性。

数据类型:单身|双人间

对象的功能

knnsearch 查找k使用Searcher对象的最佳邻居
rangesearch. 使用搜索器对象找到指定距离内的所有邻居

例子

全部折叠

长四维K使用欧几里得距离的d树。

载入费雪的虹膜数据集。

负载fisheririsx = meas;[n,k] = size(x)
n = 150
k = 4.

X有150个观察和4个预测因子。

长四维KD-tree,使用整个数据集作为训练数据。

Mdl1 = KDTreeSearcher (X)
Mdl1 = KDTreeSearcher with properties: BucketSize: 50 Distance: 'euclidean' DistParameter: [] X: [150x4 double]

Mdl1是A.kdtreesearcher.模型对象,其属性显示在命令窗口中。该对象包含关于增长的四维空间的信息KD树,如距离度量。您可以使用点表示法更改属性值。

或者,你可以成长一个Kd-tree通过使用创造

Mdl2 = createns (X)
Mdl2 = KDTreeSearcher with properties: BucketSize: 50 Distance: 'euclidean' DistParameter: [] X: [150x4 double]

Mdl2也是A.kdtreesearcher.模型对象,它等价于Mdl1.因为X有四列,默认距离度量是欧几里德,创造创造一个kdtreesearcher.模型默认情况下。

找到最近的邻居X对一批查询数据,传递kdtreesearcher.模型对象和查询数据knnsearch或者rangesearch.

载入费雪的虹膜数据。关注花瓣的尺寸。

负载fisheririsx = meas(:,[3 4]);%预测因子

增加一个二维Kd-tree使用创造和训练数据。指定Minkowski距离度量标准。

mdl = createns(x,'距离'闵可夫斯基的
MDL =具有属性的KDTreeSearcher:Bucketsize:50距离:'Minkowski'DistParameter:2 x:[150x2双]

因为X有两列,距离度规是闵可夫斯基,创造创造一个kdtreesearcher.默认情况下模型对象。

访问的属性Mdl通过使用点符号。例如,使用mdl.distparameter.才能得到闵可夫斯基距离指数。

mdl.distparameter.
ans = 2

您可以通过查询数据和Mdl:

创建A.kdtreesearcher.模型对象并改变距离属性使用点符号。

载入费雪的虹膜数据集。

负载fisheririsx = meas;

发展一个默认的四维空间KD-tree,使用整个数据集作为训练数据。

mdl = kdtreesearcher(x)
MDL =具有属性的kdtreesearcher:铲斗:50距离:'euclidean'distparameter:[] x:[150x4双]

指定邻居搜索器使用Minkowski度量来计算训练数据和查询数据之间的距离。

Mdl。距离=闵可夫斯基的
MDL =具有属性的KDTreeSearcher:Bucketsize:50距离:'Minkowski'DistParameter:2 x:[150x4双]

你可以通过Mdl和查询数据到其中之一knnsearch或者rangesearch.根据闵可夫斯基距离查找查询数据中各点的最近邻居。

种植Kd-树最近邻搜索对象创造函数。将对象和查询数据传递给knnsearch函数来找到k最近的邻居。

载入费雪的虹膜数据集。

负载fisheriris

从预测器数据随机删除五个虹膜以用作查询集。

rng (1);%的再现性1) n =大小(量;%样本大小qidx = randsample(n,5);%查询数据索引tIdx = ~ ismember (1: n, qIdx);%训练数据指标Q =量(qIdx:);X =量(tIdx:);

长四维KD-tree使用训练数据。指定Minkowski距离以查找最近的邻居。

mdl = createns(x,'距离'闵可夫斯基的
Mdl = KDTreeSearcher with properties: BucketSize: 50 Distance: 'minkowski' DistParameter: 2 X: [145x4 double]

因为X有四列,距离度量是minkowski,创造创造一个kdtreesearcher.默认情况下模型对象。Minkowski距离指数是2默认情况下。

找到培训数据的指标(mdl.x.)是查询数据中每个点的两个最近邻居().

idxnn = knnsearch(mdl,q,“K”, 2)
idxnn =.5×217 4 6 2 1 12 89 66 124 100

每一排IdxNN对应于查询数据观察,并且列顺序对应于相对于升高距离的最近邻居的顺序。例如,基于Minkowski距离,第二个最近的邻居问(3:): X(12日)

扩展能力

介绍了R2010a