主要内容

createns

创建最近邻搜索器对象

描述

实例

ns.= createns (X)创建ExhaustiveSearcher或者KDTreeSearcher使用N——- - - - - -K训练数据的数字矩阵X

实例

ns.= createns (X,名称、值)指定使用额外的一个或多个选项的名称 - 值对的参数。例如,您可以指定NSMethod以确定要创建的对象类型。

例子

全部崩溃

载入费雪的虹膜数据集。

负载鱼腥草X = MEAS;[N,K] =尺寸(X)
n=150
K = 4

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

使用整个数据集作为训练数据准备详尽的最近邻居搜索。

Mdl1 = ExhaustiveSearcher (X)
Mdl1=带属性的ExtreatveSearcher:距离:“欧几里德”距离参数:[]X:[150x4双精度]

Mdl1是一个ExhaustiveSearcher模型对象及其特性将显示在命令窗口中。对象包含有关经过训练的算法的信息,例如距离度量。可以使用点表示法更改特性值。

另外,您也可以通过使用准备详尽的最近邻居搜索createns并具体说明“详尽”作为搜索方法。

Mdl2 = createns (X,“NSMethod”,“详尽”)
MDL2 = ExhaustiveSearcher具有属性:距离: '欧几里得' DistParameter:[] X:[150x4双]

Mdl2也是一个ExhaustiveSearcher模型对象,它等价于Mdl1

搜寻X对于最接近一批查询数据的邻居,传递ExhaustiveSearcher模型对象和要创建的查询数据knnsearch或者rangesearch

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

载入费雪的虹膜数据集。

负载鱼腥草X = MEAS;[N,K] =尺寸(X)
n=150
K = 4

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

长出了四维K使用整个数据集作为训练数据的d-树。

Mdl1=KDTreeSearcher(X)
Mdl1=KDTreeSearcher,属性:BucketSize:50距离:“欧几里德”距离参数:[]X:[150x4双精度]

Mdl1是A.KDTreeSearcher模型对象及其属性显示在命令窗口中。该对象包含有关生长的四维模型的信息Kd树,如距离度量。你可以使用点符号改变属性值。

或者,你可以种植一个Kd-树createns

Mdl2 = createns (X)
Mdl2=KDTreeSearcher,属性:BucketSize:50距离:“欧几里德”距离参数:[]X:[150x4双精度]

Mdl2也是一个KDTreeSearcher模型对象,它等价于Mdl1.因为X有四列,默认距离度量是欧几里德,createns创建KDTreeSearcher通过默认模型。

要找到最近的邻居X对于一批查询数据,传递KDTreeSearcher模型对象和要创建的查询数据knnsearch或者rangesearch

长出Kd树使用了闵可夫斯基距离,五个指数。

加载Fisher的虹膜数据集。为花瓣尺寸创建变量。

负载鱼腥草X=meas(:,3:4);

长出Kd-树。指定指数为5的Minkowski距离。

MDL = createns(X,'距离',“明可夫斯基”,“P”5)
MDL = KDTreeSearcher与属性:BucketSize:50距离:'闵可夫斯基DistParameter:5 X:[150x2双]

因为X有两列,距离度量为Minkowski,createns创建KDTreeSearcher默认情况下,模型对象

属性创建彻底搜索器对象createns函数。将对象和查询数据传递给knnsearch查找函数K-最近的邻居。

载入费雪的虹膜数据集。

负载鱼腥草

从预测数据取下5个虹膜随机的查询集来使用。

rng (“默认”);%的再现性n=尺寸(平均值,1);%样本量qIdx = randsample(N,5);%查询数据索引X=meas(~ismember(1:n,qIdx),:);Y=meas(qIdx,:);

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

MDL = createns(X,'距离',“马氏)
MDL = ExhaustiveSearcher具有属性:距离:“马氏DistParameter:[4×4双] X:[145x4双]

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

该软件使用在训练数据中的预测结果(列)的协方差矩阵用于计算Mahalanobis距离。要显示此值,使用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对应于查询数据的观察。列顺序对应于最近邻居的顺序相对于上升的距离。例如,基于所述马哈拉诺比斯度量,第二最近的邻居Y(3,:)X(128,:)

输入参数

全部崩溃

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

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

名称-值对参数

指定可选的逗号分隔的字符对名称、值参数。姓名是参数名和价值是对应的值。姓名必须出现在引号内。您可以按任意顺序指定多个名称和值对参数,如下所示:Name1, Value1,…,的家

例子:NS=createns(X,'Distance','mahalanobis')创建一个ExhaustiveSearcher模型对象在搜索最近邻时使用马氏距离度量。
对于详尽,Kd-Tree最近邻搜索器

全部崩溃

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

默认值为“kdtree”当这三个条件为真时:

  • 列数X(K)小于或等于10(即,K≤10)。

  • X不是稀疏。

  • 距离“欧几里得”,'城市街区',“切比切夫”, 或者“明可夫斯基”

否则,默认值为“详尽”

例子:'NSMethod', '穷尽'

通话时使用的距离度量knnsearch或者rangesearch为将来的查询点查找最近的邻居,指定为逗号分隔的对,由'距离'和字符向量或距离度量的名称或功能句柄的串标量。

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

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

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

价值 描述
“相关” 1减去观测值之间的样本线性相关性(视为值序列)
“余弦” 1减去观测值之间夹角的余弦值(作为行向量)
“哈明” 海明距离,这是坐标是不同的百分比
“捷卡” 1减去Jaccard系数,这是不同的非零坐标的百分比
“马氏 马氏距离
'seuclidean' 标准化的欧几里得距离
“斯皮尔曼 一减观测之间的样品Spearman秩相关(作为值的序列处理的)

如果createns使用穷举搜索算法(“NSMethod”“详尽”),那么你也可以通过指定一个自定义的距离度量功能手柄@(例如,@distfun).一个自定义的距离函数必须:

  • 有表格吗功能D2 = distfun(ZI,ZJ)

  • 以作为参数:

    • 一辆一乘的汽车-K向量ZI含有从单排X或从查询点Y, 在哪里K是列在数X

    • M——- - - - - -K矩阵ZJ包含多行的X或者Y, 在哪里M是一个正整数。

  • 归还M-乘1的距离向量D2, 在哪里D2(J)是观测之间的距离ZIZJ(J,:)

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

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

闵可夫斯基距离度量的指数,指定为逗号分隔对,由“P”和正标量。这种观点仅仅当'距离'“明可夫斯基”

例子:“P”,3

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

穷举近邻搜索者

全部崩溃

马氏距离度量的协方差矩阵,指定为逗号分隔对,包括“冠状病毒”A.K——- - - - - -K正定矩阵,其中K是列在数X.这种观点仅仅当'距离'“马氏

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

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

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

例子:“刻度”,分位数(X,0.75)-分位数(X,0.25)

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

对于最近邻搜索者,使用Kd树

全部崩溃

的每个叶节点的最大数据点数Kd-树,指定为逗号分隔对,由'BucketSize'一个正整数。

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

例子:“BucketSize”,10

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

输出参数

全部崩溃

最近邻居搜索,返回一个ExhaustiveSearcher模型对象或KDTreeSearcher模型对象。

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

R2010a中引入