主要内容

kdtreesearcher.

创建KD树最近的邻居搜索者

描述

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

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

创建

使用这一点创造函数或kdtreesearcher.功能(这里描述)创建一个kdtreesearcher.模型对象。两种函数都使用相同的语法,除了创造函数有'nsmethod'名称-值对参数,用于选择最近邻搜索方法。的创造函数还创建令人疲惫的对象。指定'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,...,namen,valuen

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

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

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

有关更多详细信息,请参阅距离指标

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

例子:'距离','minkowski'

用于Minkowski距离度量的指数,指定为包括的逗号分隔对“P”和一个正标量。此参数才有效'距离'闵可夫斯基的

例子:“P”3

数据类型:单身的|双倍的

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

例子:“BucketSize”,10

数据类型:单身的|双倍的

特性

展开全部

此属性是只读的。

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

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

数据类型:单身的|双倍的

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

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

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

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

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

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

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

数据类型:单身的|双倍的

此属性是只读的。

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

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

数据类型:单身的|双倍的

对象的功能

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

例子

全部折叠

长四维K使用欧几里德距离的D树。

加载fisher的虹膜数据集。

负载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 = createens(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 = createens(x,'距离'闵可夫斯基的
MDL =具有属性的kdtreesearcher:铲斗:50距离:'minkowski'distparameter:2 x:[150x2 double]

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

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

mdl.distparameter.
ans = 2

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

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

加载fisher的虹膜数据集。

负载fisheririsx = meas;

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

mdl = kdtreesearcher(x)
MDL =具有属性的KDTreeSearcher:Bucketsize:50距离:'euclidean'todeParameter:[] X:[150x4双]

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

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

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

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

加载fisher的虹膜数据集。

负载fisheriris

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

RNG(1);再现性的百分比1) n =大小(量;%样本大小qidx = randsample(n,5);%查询数据索引tIdx = ~ ismember (1: n, qIdx);%训练数据指标q = meas(qidx,:);x = meas(tidx,:);

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

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

因为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