主要内容

createns

创建近邻搜索对象

描述

例子

NS= createns (X无论是创建一个ExhaustiveSearcherKDTreeSearcher使用模型对象N.——- - - - - -K.训练数据的数值矩阵X

例子

NS= createns (X名称,价值使用一个或多个名称-值对参数指定其他选项。例如,可以指定NSMethod以确定要创建的对象类型。

例子

全部收缩

加载费舍尔的虹膜数据集。

加载fisheririsX =量;(n, k)大小(X) =
N = 150
k = 4

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

使用整个数据集作为训练数据,准备一个穷举最近邻搜索器。

Mdl1 = ExhaustiveSearcher (X)
Mdl1 = ExhaustiveSearcher具有属性:距离: '欧几里得' DistParameter:[] X:[150x4双]

Mdl1是一个ExhaustiveSearcher模型对象,其属性出现在命令窗口。所述对象包含有关训练算法,如距离度量信息。你可以使用点符号改变属性值。

或者,您可以通过使用createns并指定“详尽”作为搜索方法。

Mdl2 = createns (X,“NSMethod”“详尽”
Mdl2 = exptivesearcher with properties: Distance: 'euclidean' DistParameter: [] X: [150x4 double]

MDL2也是ExhaustiveSearcher模型对象,并且它等同于Mdl1

搜索X对于最接近一批查询数据的邻居,传递ExhaustiveSearcher模型对象和所述查询数据knnsearchrangesearch

增加一个四维K.使用欧几里得距离的d树。

加载费舍尔的虹膜数据集。

加载fisheririsX =量;(n, k)大小(X) =
N = 150
k = 4

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

增加一个四维K.使用整个数据集作为训练数据d树。

Mdl1 = KDTreeSearcher(X)
Mdl1 = KDTreeSearcher与属性:BucketSize:50距离: '欧几里得' DistParameter:[] X:[150x4双]

Mdl1是一个KDTreeSearcher模型对象,其属性出现在命令窗口。所述对象包含有关所生长的四维信息K.d-树,比如距离度量。你可以使用点符号改变属性值。

或者,你可以种植一个K.d树用createns

Mdl2 = createns (X)
MDL2 = KDTreeSearcher与属性:BucketSize:50距离: '欧几里得' DistParameter:[] X:[150x4双]

MDL2也是一个KDTreeSearcher模型对象,并且它等同于Mdl1.因为X有四列,默认的距离度量是欧几里得,createns创建一个KDTreeSearcher默认模式。

找到最近的邻居X到一批查询数据,传KDTreeSearcher模型对象和所述查询数据knnsearchrangesearch

长出了K.用闵可夫斯基距离指数为5的d树。

加载费舍尔的虹膜数据集。创建花瓣维度的变量。

加载fisheririsX = MEAS(:,3:4);

长出了K.d树。有五个指数指定闵可夫斯基距离。

Mdl = createns (X,“距离”'minkowski''P'5)
Mdl = KDTreeSearcher with properties: BucketSize: 50 Distance: 'minkowski' DistParameter: 5 X: [150x2 double]

因为X有两列和距离度量是闵可夫斯基,createns创建一个KDTreeSearcher默认模型对象

属性创建彻底搜索器对象createns功能。传递对象和查询数据的knnsearch功能查找K.-nearest邻居。

加载费舍尔的虹膜数据集。

加载fisheriris

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

rng (“默认”);%的再现性N =尺寸(MEAS,1);%样本量qIdx = randsample (n, 5);查询数据的%指数X = MEAS(〜ismember(1:N,qIdx),:);Y = MEAS(qIdx,:);

使用训练数据准备一个详尽的最近邻搜索器。指定寻找最近邻居的马氏距离。

Mdl = createns (X,“距离”“mahalanobis”
Mdl = exptivesearcher with properties: Distance: 'mahalanobis' DistParameter: [4x4 double] X: [145x4 double]

因为距离度量是马氏度规,createns创建ExhaustiveSearcher默认模型对象。

该软件利用训练数据中预测因子(列)的协方差矩阵计算马氏距离。要显示此值,请使用Mdl。DistParameter

Mdl。DistParameter
ans =.4×4.0.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对应一个查询数据观察。列的顺序对应于最近邻相对于上升距离的顺序。例如,根据马氏度规,的第二近邻Y(3,:)X(128年:)

输入参数

全部收缩

训练数据,指定为数值矩阵。XN.行,每行对应于一个观察(即,实例或示例),和K.列,每个列对应一个预测器(即一个特性)。

数据类型:|

名称值对参数

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

例子:NS = createns(X, '距离', '马氏')创建ExhaustiveSearcher模型对象在搜索最近邻时使用马氏距离度量。
详尽的和K.d-Tree最近邻搜索器

全部收缩

最近邻搜索方法用于定义创建的对象类型,指定为逗号分隔对组成“NSMethod”'kdtree'“详尽”

  • 'kdtree'-createns创建一个KDTreeSearcher使用模型对象K.d-tree算法。

  • “详尽”-createns创建ExhaustiveSearcher模型对象使用穷举搜索算法。

默认值为'kdtree'当这三个条件都为真:

  • 的列数XK.)小于或等于10(即,K.≤10)。

  • X不是稀疏。

  • 距离'euclidean'“cityblock”“切比雪夫”,或'minkowski'

否则,默认值是“详尽”

例子:“NSMethod”、“详尽”

当你调用距离度量使用knnsearchrangesearch为将来的查询点查找最近的邻居,指定为逗号分隔的对,由“距离”距离度量名称或函数句柄的字符向量或字符串标量。

对于这两种最近邻搜索器,createns金宝app支持这些距离度量。

价值 描述
“切比雪夫” 切比雪夫距离(最大坐标差)。
“cityblock” 城市街区的距离。
'euclidean' 欧氏距离。
'minkowski' 闵可夫斯基距离。默认指数是2。要指定不同的指数,请使用'P'名称值对参数。

如果createns使用穷举搜索算法(“NSMethod”“详尽”),然后createns也支持这些金宝app距离度量。

价值 描述
“相关” 一减观测之间的样本的线性相关性(视为值的序列)
“余弦” 1减去观测值之间夹角的余弦值(作为行向量)
“汉明” 汉明距离,是坐标差的百分比
“jaccard” 一减的Jaccard系数,这是非零坐标上不同的百分比
“mahalanobis” 马氏距离
“seuclidean” 标准化的欧几里得距离
“枪兵” 1减去观察值之间的样本斯皮尔曼等级相关性(作为值的序列处理)

如果createns使用穷举搜索算法(“NSMethod”“详尽”),则还可以使用@(例如,@distfun).自定义距离函数必须:

  • 有形式函数D2 = distfun(ZI,ZJ)

  • 以作为参数:

    • A 1逐K.向量包含来自的单行X或从查询点y,在那里K.列数是多少X

    • 一个m——- - - - - -K.矩阵ZJ含的多行Xy,在那里m是一个正整数。

  • 返回m-乘1的距离向量D2,在那里D2(j观测值之间的距离是多少ZJ (j:)

有关详细信息,请参见距离度量

例子:“距离”,“闵可夫斯基”

闵可夫斯基距离度量的指数,指定为逗号分隔对,由'P'一个正标量。此参数仅当“距离”'minkowski'

例子:'P',3

数据类型:|

穷举最近邻搜索器

全部收缩

协方差矩阵的马哈拉诺比斯距离度量,指定为逗号分隔的一对组成的“浸”和一个K.——- - - - - -K.正定矩阵,其中K.列数是多少X.此参数仅当“距离”“mahalanobis”

例子:“浸”,眼睛(3)

数据类型:|

尺度参数值为标准化的欧几里得距离度量,指定为逗号分隔对组成'规模'和长度的一个非负的数值向量K.,在那里K.列数是多少X.该软件使用相应的元素来衡量训练数据和查询数据之间的每个差异规模.此参数仅当“距离”“seuclidean”

例子:'规模',分位数(X,0.75) - 分位数(X,0.25)

数据类型:|

对于近邻搜索者使用K.d-Tree

全部收缩

的每个叶节点的最大数据点数K.d-树,指定为逗号分隔的一对组成的“BucketSize”一个正整数。

此参数仅在创建KDTreeSearcher模型对象。

例子:'BucketSize',10

数据类型:|

输出参数

全部收缩

最近邻搜索器,返回为ExhaustiveSearcher模型对象或KDTreeSearcher模型对象。

一旦您创建了最近邻搜索模型对象,您就可以通过使用执行最近邻搜索,在训练数据中找到与查询数据相邻的点knnsearch或半径搜索使用rangesearch

介绍了R2010a版本