创建近邻搜索对象
无论是创建一个NS
= createns (X
)ExhaustiveSearcher
或KDTreeSearcher
使用模型对象N.——- - - - - -K.训练数据的数值矩阵X
.
加载费舍尔的虹膜数据集。
加载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
模型对象和所述查询数据knnsearch
或rangesearch
.
增加一个四维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
模型对象和所述查询数据knnsearch
或rangesearch
.
长出了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年:)
.
X
-训练数据训练数据,指定为数值矩阵。X
有N.行,每行对应于一个观察(即,实例或示例),和K.列,每个列对应一个预测器(即一个特性)。
数据类型:单
|双
指定可选的用逗号分隔的对名称,价值
参数。的名字
是参数名称和价值
为对应值。的名字
必须出现在引号内。您可以以任何顺序指定多个名称和值对参数Name1, Value1,…,的家
.
NS = createns(X, '距离', '马氏')
创建ExhaustiveSearcher
模型对象在搜索最近邻时使用马氏距离度量。
“NSMethod”
-最近邻搜索方法'kdtree'
|“详尽”
最近邻搜索方法用于定义创建的对象类型,指定为逗号分隔对组成“NSMethod”
和'kdtree'
或“详尽”
.
'kdtree'
-createns
创建一个KDTreeSearcher
使用模型对象K.d-tree算法。
“详尽”
-createns
创建ExhaustiveSearcher
模型对象使用穷举搜索算法。
默认值为'kdtree'
当这三个条件都为真:
否则,默认值是“详尽”
.
例子:“NSMethod”、“详尽”
“距离”
-距离度量'euclidean'
(默认)|字符向量或距离度量名称的串标量|自定义距离函数当你调用距离度量使用knnsearch
或rangesearch
为将来的查询点查找最近的邻居,指定为逗号分隔的对,由“距离”
距离度量名称或函数句柄的字符向量或字符串标量。
对于这两种最近邻搜索器,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
含的多行X
或y
,在那里m是一个正整数。
返回m-乘1的距离向量D2
,在那里D2(
观测值之间的距离是多少j
)子
和ZJ (
.j
:)
有关详细信息,请参见距离度量.
例子:“距离”,“闵可夫斯基”
'P'
-指数为闵可夫斯基距离度量2
(默认)|正标量闵可夫斯基距离度量的指数,指定为逗号分隔对,由'P'
一个正标量。此参数仅当“距离”
是'minkowski'
.
例子:'P',3
数据类型:单
|双
“浸”
-马氏距离度量的协方差矩阵X (X, omitrows)
(默认)|正定矩阵协方差矩阵的马哈拉诺比斯距离度量,指定为逗号分隔的一对组成的“浸”
和一个K.——- - - - - -K.正定矩阵,其中K.列数是多少X
.此参数仅当“距离”
是“mahalanobis”
.
例子:“浸”,眼睛(3)
数据类型:单
|双
'规模'
-标准化欧几里德距离度量的比例参数值STD(X, 'omitnan')
(默认)|非负数字矢量尺度参数值为标准化的欧几里得距离度量,指定为逗号分隔对组成'规模'
和长度的一个非负的数值向量K.,在那里K.列数是多少X
.该软件使用相应的元素来衡量训练数据和查询数据之间的每个差异规模
.此参数仅当“距离”
是“seuclidean”
.
例子:'规模',分位数(X,0.75) - 分位数(X,0.25)
数据类型:单
|双
“BucketSize”
-每个叶节点的最大数据点数50
(默认)|正整数的每个叶节点的最大数据点数K.d-树,指定为逗号分隔的一对组成的“BucketSize”
一个正整数。
此参数仅在创建KDTreeSearcher
模型对象。
例子:'BucketSize',10
数据类型:单
|双
NS
- 最近的邻居搜索ExhaustiveSearcher
模型对象|KDTreeSearcher
模型对象最近邻搜索器,返回为ExhaustiveSearcher
模型对象或KDTreeSearcher
模型对象。
一旦您创建了最近邻搜索模型对象,您就可以通过使用执行最近邻搜索,在训练数据中找到与查询数据相邻的点knnsearch
或半径搜索使用rangesearch
.
您单击了与此MATLAB命令对应的链接:
通过在MATLAB命令窗口中输入命令来运行命令。Web浏览器不支持MATLAB命令。金宝app
您还可以从以下列表中选择一个网站:
选择中国网站(以中文或英文)以获取最佳网站性能。其他MathWorks国家网站未优化您的位置。