使用Searcher对象查找指定距离内的所有邻居
rangesearch.
接受ExhaustiveSearcher
或KDTreeSearcher
模型对象,用于搜索最近邻居的训练数据到查询数据。一个ExhaustiveSearcher
模型调用穷举搜索算法KDTreeSearcher
模型定义A.K.D树,哪个rangesearch.
用于搜索最近的邻居。
载入费雪的虹膜数据集。从数据中随机保留5个观察值作为查询数据。关注花瓣的尺寸。
加载fisheririsrng (1);%的再现性1) n =大小(量;idx = randsample (n, 5);X =量(~ ismember (1: n, idx) 3:4);%的训练数据Y = MEAS(IDX,3:4);%查询数据
生长默认的二维K.d-tree。
mdlkdt = kdtreesearcher(x)
MDLKDT =具有属性的KDTreeSearcher:Bucketsize:50距离:'euclidean'distParameter:[] X:[145x2双]
MdlKDT
是A.KDTreeSearcher
模型对象。你可以使用点符号来改变它的可写属性。
准备一个详尽的最近邻搜索。
mdl = ExhaustiveSearcher (X)
MdlES = exptivesearcher with properties: Distance: 'euclidean' DistParameter: [] X: [145x2 double]
mdl
是一个ExhaustiveSearcher
模型对象。它包含了一些选项,例如用于查找最近邻居的距离度量。
或者,你可以种植一个K.用D-tree或准备一个穷举的最近邻搜索器createns
.
搜索最近邻界面的培训数据,该数据对应于0.5cm半径内的每个查询观察。进行两种类型的搜索并使用默认设置。
r = 0.15;%的搜索半径IdxKDT = rangesearch (MdlKDT, Y, r);idx = rangesearch (mdl, Y, r);[IdxKDT idx]
ans =5×2单元阵列{1x27 double} {1x27 double} {[13]} {[13]} {1x27 double} {1x27 double} {[64 66]} {[64 66]} {1x0 double} {1x0 double}
IDXKDT.
和idxes.
是对应于索引的传感器阵列X
这在观察中的0.15厘米处y
.索引矩阵的每一行对应于查询观察。
比较两种方法的结果。
Cellfun(@ isequal,Idxkdt,Idxes)
ans =5 x1逻辑阵列1 1 1 1
在这种情况下,结果是一样的。
画出鸢尾的结果。
setosaidx = strcmp(物种(〜ismember(1:n,Idx)),“setosa”);XSetosa = X (setosaIdx:);ySetosaIdx = strcmp(物种(idx),“setosa”);ysetosa = y(ysetosaidx,:);数字;绘图(Xsetosa(:,1),Xsetosa(:,2),'.k');抓住在;绘图(Ysetosa(:,1),ysetosa(:,2),'* r');为了j = 1:sum(ysetosaidx)c = ysetosa(j,:);circlefun = @(x1,x2)r ^ 2 - (x1 - c(1))。^ 2 - (x2 - c(2))。^ 2;fimplic(circlefun,[c(1)+ [-1 1] * r,c(2)+ [-1 1] * r],“b -”)结尾包含'花瓣长度(cm)';ylabel'花瓣宽度(cm)';标题“Setosa花瓣测量”;传奇('观察'那'查询数据'那“搜索半径”);轴平等的抓住从
载入费雪的虹膜数据集。
加载fisheriris
从预测器数据随机删除五个虹膜以用作查询集。
rng (1);%的再现性1) n =大小(量;%样本大小qidx = randsample(n,5);查询数据的%指数x = meas(〜ismember(1:n,qidx),:);y = meas(qidx,:);
准备默认的详尽最近邻搜索。
Mdl = ExhaustiveSearcher (X)
MDL =具有属性的令人疲劳性研究:距离:'euclidean'tatterParameter:[] X:[145x4双]
Mdl
是一个ExhaustiveSearcher
模型。
找到训练数据的指标(X
),与查询数据中每个点的距离在0.15厘米以内(y
).指定距离是关于马氏度规的。
r = 1;idx = rangesearch(mdl,y,r,“距离”那'mahalanobis')
Idx =5×1单元阵列{[26 38 7 17 47 4 27 46 25 10 39 20 21 2 33]} {[6 21 25 4 19]} {[1 34 33 22 24 2]} {[84]} {[69]}
Idx {3}
ans =1×6.1 34 33 22 24
每个单元的idx.
对应于查询数据观察并包含在X
距离查询数据0.15cm范围内的邻居索引向量。rangesearch.
按距离升序排列指标。例如,使用马氏距离,第二近邻Y(3,:)
是: X (34)
.
载入费雪的虹膜数据集。
加载fisheriris
从预测器数据随机删除五个虹膜以用作查询集。
RNG(4);%的再现性1) n =大小(量;%样本大小qidx = randsample(n,5);查询数据的%指数x = meas(〜ismember(1:n,qidx),:);y = meas(qidx,:);
长四维K.D-tree使用训练数据。指定使用Minkowski距离来查找最近的邻居。
Mdl = KDTreeSearcher (X);
Mdl
是A.KDTreeSearcher
模型。默认情况下,寻找最近邻居的距离度量是欧几里得度量。
找到训练数据的指标(X
),距离查询数据中每个点0.5厘米以内(y
).
r = 0.5;[idx,d] = rangesearch(mdl,y,r);
idx.
和D.
是五元素的传感器阵列。矢量值idx.
是指数X
.的X
指数表示距离查询数据0.5厘米以内的观察值,y
.D.
包含与观测值对应的距离。
显示查询观察的结果3。
Idx {3}
ans =1×2127 122
D {3}
ans =1×20.2646 0.4359
最接近的观察Y(3,:)
是x(127,:)
,这是0.2646
厘米远。最近的是x(122,:)
,这是0.4359
厘米远。所有其他观察大于0.5
厘米远离: Y(5日)
.
Mdl
-最近的邻居搜索者ExhaustiveSearcher
模型对象|KDTreeSearcher
模型对象最近邻搜索器,指定为ExhaustiveSearcher
或KDTreeSearcher
模型对象分别。
如果Mdl
是一个ExhaustiveSearcher
那么rangesearch.
使用详尽的搜索搜索最近的邻居。否则,rangesearch.
使用生长K.d-树来搜索最近的邻居。
y
-查询数据查询数据,指定为数字矩阵。
y
是一个m——- - - - - -K.矩阵。行y
对应于观察(即,示例),并且列对应于预测器(即变量或特征)。y
必须具有与存储在mdl.x.
.
数据类型:单身的
|双
指定可选的逗号分离对名称,值
参数。名称
是参数名称和价值
为对应值。名称
必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家
.
“距离”、“闵可夫斯基”,“P”3
中的所有观察值mdl.x.
在距离R.
每个观察y
,使用带指数的闵可夫斯基距离度量3.
.
“距离”
-距离度量mdl.distance.
(默认)|'城市街区'
|“欧几里得”
|'mahalanobis'
|闵可夫斯基的
|'seuclidean'
|功能手柄|......距离指标用于查找训练数据的邻居到查询观察,指定为包括的逗号分隔对“距离”
和字符矢量,字符串标量或功能句柄。
对于这两种最近邻搜索器,rangesearch.
金宝app支持这些距离度量。
价值 | 描述 |
---|---|
'chebbychev' |
Chebychev距离(最大坐标差异)。 |
'城市街区' |
城市街区距离。 |
“欧几里得” |
欧氏距离。 |
闵可夫斯基的 |
闵可夫斯基距离。默认指数是2。要指定不同的指数,请使用'P' 名称值对参数。 |
如果Mdl
是一个ExhaustiveSearcher
模型对象,然后rangesearch.
还支持这些金宝app距离指标。
价值 | 描述 |
---|---|
“相关” |
一减去观察值之间的样本线性相关性(作为值的序列处理)。 |
'余弦' |
一个减去观察之间的包含角度的余弦(作为行向量处理)。 |
'汉明' |
汉明距离,是坐标差的百分比。 |
'jaccard' |
一个减去Jaccard系数,这是非零坐标的百分比。 |
'mahalanobis' |
Mahalanobis距离,使用正定的协方差矩阵计算。要更改协方差矩阵的值,请使用'COV' 名称值对参数。 |
'seuclidean' |
标准化的欧几里德距离。行之间的每个坐标差异mdl.x. 查询矩阵的比例是通过除以相应的标准偏差元素计算出来的mdl.x. .要指定另一个缩放,请使用“规模” 名称值对参数。 |
“矛曼” |
一个减去样本Spearman的观察之间的秩相关性(视为值序列)。 |
如果Mdl
是一个ExhaustiveSearcher
模型对象,然后您还可以通过使用指定用于自定义距离度量的函数句柄@
(例如,@distfun.
).自定义距离功能必须:
的形式功能d2 = distfun(zi,zj)
.
作为论点:
1 -K.向量子
包含单行mdl.x.
或y
, 在哪里K.的列数是多少mdl.x.
.
一个m——- - - - - -K.矩阵ZJ
包含多行mdl.x.
或y
, 在哪里m是一个正整数。
返回A.m-乘1的距离向量D2
, 在哪里D2 (
观测值之间的距离是多少j
)子
和ZJ(
.j
,:)
有关更多详细信息,请参阅距离度量.
例子:'距离','minkowski'
'P'
-闵可夫斯基距离度量的指数2
(默认)|正标量'sortindices'
-标志,根据距离对返回的索引进行排序真正的
(1
)(默认)|假
(0.
)标志根据距离对返回的索引进行排序,指定为逗号分隔的对,由'sortindices'
,要么真正的
(1
)或假
(0.
).
为了更快的性能y
包含许多有许多最近点的观测值,您可以设置SortIndices
到假
.在这种情况下,rangesearch.
以特定的顺序返回最近点的指数。什么时候SortIndices
是真正的
,函数将最近点的指数按距离升序排列。
例子:'sortindices',false
数据类型:逻辑
'COV'
-Mahalanobis距离度量的协方差矩阵cov(mdl.x,'omitrows')
(默认)|正定的矩阵马氏距离度量的协方差矩阵,指定为逗号分隔对,由'COV'
和一个积极的矩阵。浸
是A.K.——- - - - - -K.矩阵,K.的列数是多少mdl.x.
.如果您指定浸
不要指定'
距离
','mahalanobis'
, 然后rangesearch.
返回错误消息。
例子:“浸”,眼睛(3)
数据类型:单身的
|双
“规模”
-尺度参数值的标准欧几里得距离度量std(mdl.x,'omitnan')
(默认)|非负数字矢量标准化欧几里德距离度量的比例参数值,指定为逗号分隔对组成“规模”
和一个非负数字矢量。规模
长度K., 在哪里K.的列数是多少mdl.x.
.
软件使用相应的元素缩放训练和查询数据之间的每个区别规模
.如果您指定规模
不要指定'
距离
”、“seuclidean”
, 然后rangesearch.
返回错误消息。
例子:“规模”,分位数(Mdl.X, 0.75)分位数(Mdl.X, 0.25)
数据类型:单身的
|双
笔记
如果您指定'
距离
'
那'
浸
'
那'
P.
'
, 要么'
规模
'
, 然后mdl.distance.
和mdl.distparameter.
不要改变价值。
idx.
—训练最近邻的数据索引最近邻的训练数据索引,返回为数字向量的单元数组。
idx.
是一个m——- - - - - -1
单元阵列使细胞j
(Idx {j}
)包含一个mj- 减去观察的指标向量mdl.x.
那是内心的R.
单位到查询观测Y (j,:)
.如果SortIndices
是真正的
, 然后rangesearch.
将向量的元素按距离升序排列。
D.
—查询数据最近邻居的距离查询数据的邻居的距离,作为数字矩阵或数字向量的单元格数组返回。
D.
是一个m——- - - - - -1
单元阵列使细胞j
(d {j}
)包含一个mj- 观察的距离的多维向量mdl.x.
来自查询观察Y (j,:)
.矢量的所有元素都小于R.
.如果SortIndices
是真正的
, 然后rangesearch.
以升序排列向量的元素。
knnsearch.
找到了K.(正整数)指向mdl.x.
这是K.最近的每一y
点。相比之下,rangesearch.
找到所有要点mdl.x.
那在距离之内R.
(正标量)y
点。
rangesearch.
是一个需要一个对象函数ExhaustiveSearcher
或者一个KDTreeSearcher
模型对象,查询数据和距离。在等同条件下,rangesearch.
返回相同的结果rangesearch.
当您指定名称-值对参数时“NSMethod”、“详尽”
或“NSMethod”、“kdtree”
, 分别。
使用注意事项及限制:
此表包含有关参数的说明rangesearch.
.未包含在此表中的参数完全支持。金宝app
论点 | 笔记和局限性 |
---|---|
Mdl |
有两种使用方法
如果
|
“距离” |
|
'sortindices' |
不支持。金宝app始终对输出参数进行排序。 |
名称-值对的观点 | 名称-值对参数中的名称必须是编译时常量。例如,为了允许生成的代码中Minkowski距离的用户定义指数包括 |
idx. |
|
有关更多信息,请参见代码生成简介和最近邻搜索器的代码生成.
您单击了与此MATLAB命令对应的链接:
在MATLAB命令窗口中输入它来运行命令。Web浏览器不支持MATLAB命令。金宝app
你也可以从以下列表中选择一个网站:
选择中国网站(以中文或英文)以获取最佳网站性能。其他MathWorks国家网站未优化您的位置。