建立详尽的最近邻搜索器
ExhaustiveSearcher
模型对象存储训练数据,距离度量,参数值的距离度量一个详尽的最近邻搜索。穷举搜索算法发现每个查询的距离观察n在训练数据的观察,这是一个n——- - - - - -K数字矩阵。
一旦你创建一个ExhaustiveSearcher
模型对象,找到相邻点的训练数据查询数据通过执行一个最近邻搜索使用knnsearch
或者一个半径搜索使用rangesearch
。穷举搜索算法更有效的比Kd-tree算法时K大(即K> 10),比它更灵活Kd-tree算法对距离度量的选择。的ExhaustiveSearcher
模型对象还支持稀疏数据。万博1manbetx
使用createns
函数或ExhaustiveSearcher
(这里描述)来创建一个函数ExhaustiveSearcher
对象。除了两个函数使用相同的语法createns
函数有“NSMethod”
名称-值对参数,您可以用它来选择最近邻搜索方法。的createns
函数还创建了一个KDTreeSearcher
对象。指定“NSMethod”、“详尽”
创建一个ExhaustiveSearcher
对象。默认值是“详尽”
如果K> 10,训练数据稀疏,或距离度量不是欧几里德,街区,Chebychev或闵可夫斯基。
Mdl = ExhaustiveSearcher (X)
Mdl = ExhaustiveSearcher (X、名称、值)
X
- - - - - -训练数据训练数据,准备详尽的搜索算法,指定为一个数字矩阵。X
有n行,每个对应一个观察(即一个实例或例子)K列,每个对应一个预测(即功能)。
数据类型:单
|双
指定可选的逗号分隔条名称,值
参数。的名字
参数名称和吗价值
相应的价值。的名字
必须出现在单引号(' '
)。您可以指定几个名称和值对参数在任何顺序Name1, Value1,…,的家
。
“距离”、“mahalanobis’,‘x’,眼睛(3)
当搜索指定使用Mahalanobis距离最近的邻居和一个3×3单位矩阵的协方差矩阵的距离度量。
“距离”
- - - - - -距离度量“欧几里得”
(默认)|特征向量|字符串标量|自定义距离函数距离度量时使用电话knnsearch
或rangesearch
为未来找到最近的邻居查询点,指定为逗号分隔组成的“距离”
和一个特征向量,字符串标量,或函数句柄。
此表描述了支持距离度量指定为特征向量或字符串标量。万博1manbetx
价值 | 描述 |
---|---|
“chebychev” |
Chebychev距离(最大坐标差异)。 |
“cityblock” |
城市街区的距离。 |
“相关” |
1 -样本线性相关性的观察(作为序列的值)。 |
的余弦 |
1 -之间的夹角的余弦值观察(视为行向量)。 |
“欧几里得” |
欧氏距离。 |
“汉明” |
汉明距离,协调不同的百分比。 |
“jaccard” |
1 - Jaccard系数,非零坐标不同的百分比。 |
闵可夫斯基的 |
闵可夫斯基距离。默认的指数是2。指定一个不同的指数,使用“P” 名称-值对的论点。 |
“mahalanobis” |
使用正定Mahalanobis距离,计算协方差矩阵。改变协方差矩阵的值,使用“浸” 名称-值对的论点。 |
“seuclidean” |
标准化的欧氏距离。每个坐标行之间的区别Mdl.X 和查询矩阵是通过除以相应的扩展元素的标准差计算Mdl.X 。要指定另一个扩展,可以使用“规模” 名称-值对的论点。 |
“枪兵” |
1 -样本之间的斯皮尔曼等级相关的观察(作为序列的值)。 |
更多细节,请参阅距离度量。
您可以指定一个函数处理为一个自定义的距离度量@
(例如,@distfun
)。一个自定义距离函数必须:
的形式ZJ函数D2 = distfun(子)
。
以作为参数:
1 -K向量子
包含单个行X
或从查询点Y
,在那里K列的数量吗X
。
一个米——- - - - - -K矩阵ZJ
包含多个行X
或Y
,在那里米是一个正整数。
返回一个米1的向量距离D2
,在那里D2 (
是观察之间的距离j
)子
和ZJ (
。j
:)
该软件创建一个不使用的距离度量ExhaustiveSearcher
距离度量模型对象,所以你可以改变通过使用点符号在创建对象。
例子:“距离”、“mahalanobis”
“浸”
- - - - - -协方差矩阵的距离度量nancov (X)
(默认)|正定矩阵协方差矩阵的Mahalanobis距离度量,指定为逗号分隔组成的“浸”
和一个K——- - - - - -K正定矩阵,K列的数量吗X
。这个论点是有效的前提“距离”
是“mahalanobis”
。
例子:“浸”,眼睛(3)
数据类型:单
|双
“P”
- - - - - -闵可夫斯基距离度量的指数2
(默认)|积极的标量闵可夫斯基距离度量指数,指定为逗号分隔组成的“P”
和积极的标量。这个论点是有效的前提“距离”
是闵可夫斯基的
。
例子:“P”3
数据类型:单
|双
“规模”
- - - - - -标准化的欧氏距离度量尺度参数值nanstd (X)
(默认)|非负数字矢量标准化的欧氏距离度量,尺度参数值指定为逗号分隔组成的“规模”
和一个非负数字向量的长度K,在那里K列的数量吗X
。软件规模每个不同的培训和使用相应的查询数据元素规模
。这个论点是有效的前提“距离”
是“seuclidean”
。
例子:“规模”,分位数(0.75 X)——分位数(0.25 X))
数据类型:单
|双
X
- - - - - -训练数据这个属性是只读的。
训练数据,准备详尽的搜索算法,指定为一个数字矩阵。X
有n行,每个对应一个观察(即一个实例或例子)K列,每个对应一个预测(即功能)。
输入参数X
的createns
或ExhaustiveSearcher
设置此属性。
数据类型:单
|双
距离
- - - - - -距离度量距离度量时使用电话knnsearch
或rangesearch
为未来找到最近的邻居查询点,指定为一个特征向量或字符串标量(“chebychev”
,“cityblock”
,“相关”
,的余弦
,“欧几里得”
,“汉明”
,“jaccard”
,闵可夫斯基的
,“mahalanobis”
,“seuclidean”
,或“枪兵”
),或一个函数处理。
的“距离”
名称-值对的观点createns
或ExhaustiveSearcher
设置此属性。
该软件创建一个不使用的距离度量ExhaustiveSearcher
模型对象,因此您可以通过使用点符号改变它。
DistParameter
- - - - - -距离度量参数值[]
|积极的标量距离度量参数值,指定为空([]
)或积极的标量。
此表描述了距离参数支持的距离度量。万博1manbetx
距离度量 | 参数描述 |
---|---|
“mahalanobis” |
一个代表协方差矩阵的正定矩阵用于计算距离。默认情况下,软件设置使用的协方差 的 你可以改变 |
闵可夫斯基的 |
积极的标量表示指数的闵可夫斯基距离。默认情况下,指数 的 你可以改变 |
“seuclidean” |
积极的数字向量表示的值时使用的软件规模预测计算标准化的欧氏距离。默认情况下,软件:
的 你可以改变 |
如果Mdl.Distance
不是一个参数表中列出,然后呢Mdl.DistParameter
是[]
,这意味着没有参数指定的距离度量公式。
数据类型:单
|双
knnsearch |
找到再邻居使用对象 |
rangesearch |
找到所有的邻居指定距离内使用对象 |
加载费雪的虹膜数据集。
负载fisheririsX =量;(n, k)大小(X) =
n = 150
k = 4
X
150观察和预测。
准备一份详尽的最近邻搜索者使用整个数据集作为训练数据。
Mdl1 = ExhaustiveSearcher (X)
Mdl1 = ExhaustiveSearcher属性:距离:“欧几里得”DistParameter: [] X: (x4 150双)
Mdl1
是一个ExhaustiveSearcher
模型对象,其属性出现在命令窗口。对象包含有关训练算法,如距离度量。可以使用点符号改变属性值。
或者,你可以准备一个详尽的最近邻搜索者通过使用createns
并指定“详尽”
搜索方法。
Mdl2 = createns (X,“NSMethod”,“详尽”)
Mdl2 = ExhaustiveSearcher属性:距离:“欧几里得”DistParameter: [] X: (x4 150双)
Mdl2
也是一个ExhaustiveSearcher
模型对象,它相当于Mdl1
。
搜索X
最近的邻居的一批查询数据,通过ExhaustiveSearcher
模型对象和查询数据knnsearch
或rangesearch
。
加载费雪的虹膜数据集。专注于花瓣维度。
负载fisheririsX =量(:[3 - 4]);%预测
准备一个详尽的最近邻搜索器。指定的距离度量。
Mdl = createns (X,“距离”,“mahalanobis”)
Mdl = ExhaustiveSearcher属性:距离:“mahalanobis”DistParameter: [2 x2双]X: [150 x2双)
因为距离度量Mahalanobis,createns
创建一个ExhaustiveSearcher
默认模型对象。
访问的属性Mdl
通过使用点符号。例如,使用Mdl.DistParameter
访问协方差参数。
Mdl.DistParameter
ans =2×23.1163 1.2956 1.2956 0.5810
你可以通过查询数据和Mdl
:
knnsearch
发现指数和距离最近的邻居
rangesearch
寻找指标的最近的邻居在一个指定的距离
ExhaustiveSearcher
模型创建一个ExhaustiveSearcher
模型对象和改变距离
通过使用点符号属性。
加载费雪的虹膜数据集。
负载fisheririsX =量;
火车默认的穷举搜索算法使用整个数据集作为训练数据。
Mdl = ExhaustiveSearcher (X)
Mdl = ExhaustiveSearcher属性:距离:“欧几里得”DistParameter: [] X: (x4 150双)
指定你的邻居搜索者使用Mahalanobis度量计算培训和查询数据之间的距离。
Mdl.Distance=“mahalanobis”
Mdl = ExhaustiveSearcher属性:距离:“mahalanobis”DistParameter: [4 x4双]X: (x4 150双)
你可以通过Mdl
和查询数据knnsearch
或rangesearch
找到最近的邻居的点查询数据基于距离。
创建一个详尽的搜索对象使用createns
函数。通过对象和查询数据knnsearch
函数来找到k最近的邻居。
加载费雪的虹膜数据集。
负载fisheriris
删除5虹膜随机预测的数据作为查询集。
rng (“默认”);%的再现性1)n =大小(量;%样本大小qIdx = randsample (n, 5);%查询数据的指标X =量(~ ismember (1: n, qIdx):);:Y =量(qIdx);
准备一份详尽的最近邻搜索者使用训练数据。指定距离寻找最近的邻居。
Mdl = createns (X,“距离”,“mahalanobis”)
Mdl = ExhaustiveSearcher属性:距离:“mahalanobis”DistParameter: [4 x4双]X: (x4 145双)
因为距离度量Mahalanobis,createns
创建一个ExhaustiveSearcher
默认模型对象。
软件使用的协方差矩阵预测(列)的训练数据计算距离。显示这个值,使用Mdl.DistParameter
。
Mdl.DistParameter
ans =4×40.6547 -0.0368 1.2320 0.5026 -0.0368 0.1914 -0.3227 -0.1193 1.2320 -0.3227 3.0671 1.2842 0.5026 -0.1193 1.2842 0.5800
找到训练数据的指标(Mdl.X
)是两个最近邻居查询数据(每一个点的Y
)。
IdxNN = knnsearch (Mdl Y“K”,2)
IdxNN =5×25 6 98 95 104 128 135 65 102 115
每一行的IdxNN
对应于一个查询数据的观察。列顺序对应于最近的邻居的顺序对提升距离。例如,基于Mahalanobis度规,第二个最近邻Y (3:)
是X(128年:)
。
使用笔记和限制:
的knnsearch
和rangesearch
代码生成功能支持。万博1manbetx
当你训练一个ExhaustiveSearcher
模型对象的值“距离”
名称-值对的论点不能自定义距离函数。
一个代码生成的例子,请参阅最近邻搜索器的代码生成工作流。有关更多信息,请参见主题代码生成。
你点击一个链接对应MATLAB命令:
运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。万博1manbetx
你也可以从下面的列表中选择一个网站:
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。