主要内容

templateKNN

k-最近邻分类器模板

描述

例子

t= templateKNN ()返回一个k-最近邻(KNN)学习器模板,适用于训练集成或纠错输出码(ECOC)多类模型。

如果指定了默认模板,那么在训练过程中,软件将对所有输入参数使用默认值。

指定t作为一个在fitcensemblefitcecoc

例子

t= templateKNN (名称,值用一个或多个名称-值对参数指定的附加选项创建模板。

例如,您可以指定最近邻搜索方法、要查找的最近邻数量或距离度量。

如果你显示t,则所有选项显示为空([]),使用名称-值对参数指定的除外。在训练过程中,软件对空选项使用默认值。

例子

全部折叠

创建一个非默认值k使用的最近邻模板fitcensemble

载入费雪的虹膜数据集。

负载fisheriris

为5近邻搜索创建一个模板,并指定对预测器进行标准化。

t = templateKNN(“NumNeighbors”5,“标准化”, 1)
t =拟合分类KNN模板。NumNeighbors: 5 NSMethod: " Distance: " BucketSize: " IncludeTies: [] DistanceWeight: [] BreakTies: [] Exponent: [] Cov: [] Scale:[]标准化数据:1版本:1方法:'KNN'类型:'classification'

模板对象的所有属性都为空,除了NumNeighbors方法StandardizeData,类型.当你指定t作为一个学习者,软件用它们各自的默认值填充空属性。

指定t作为一个分类集合的弱学习者。

Mdl = fitcensemble(meas,species,物种)“方法”“子”“学习者”t);

显示样本内(替换)错误分类错误。

L = resubLoss(Mdl)
L = 0.0600

创建一个非默认值k使用的最近邻模板fitcecoc

载入费雪的虹膜数据集。

负载fisheriris

为5近邻搜索创建一个模板,并指定对预测器进行标准化。

t = templateKNN(“NumNeighbors”5,“标准化”, 1)
t =拟合分类KNN模板。NumNeighbors: 5 NSMethod: " Distance: " BucketSize: " IncludeTies: [] DistanceWeight: [] BreakTies: [] Exponent: [] Cov: [] Scale:[]标准化数据:1版本:1方法:'KNN'类型:'classification'

模板对象的所有属性都为空,除了NumNeighbors方法StandardizeData,类型.当你指定t作为一个学习者,软件用它们各自的默认值填充空属性。

指定t作为ECOC多类模型的二元学习器。

Mdl = fitcecoc(meas,种,“学习者”t);

默认情况下,该软件进行训练Mdl使用一对一编码设计。

显示样本内(替换)错误分类错误。

L = resubLoss(Mdl,“LossFun”“classiferror”
L = 0.0467

输入参数

全部折叠

名称-值参数

指定可选参数对为Name1 = Value1,…,以=家,在那里的名字参数名称和价值对应的值。名-值参数必须出现在其他参数之后,但对的顺序并不重要。

在R2021a之前,名称和值之间用逗号隔开,并括起来的名字在报价。

例子:“NumNeighbors”4“距离”,“闵可夫斯基”指定使用闵可夫斯基距离度量的4近邻分类器模板。

使用的破键算法预测方法,如果多个类具有相同的最小代价,则指定为逗号分隔的对,由“BreakTies”和以下其中之一:

  • “最小”—在并列组中使用最小的索引。

  • “最近的”-使用绑定组中最接近的类。

  • “随机”-在打平的组中使用随机的平局。

默认情况下,当多个类之间的最近点数量相同时,就会发生联系k最近的邻居。

例子:“BreakTies”,“最近”

的叶节点中的最大数据点数Kd-树,指定为逗号分隔的对,由“BucketSize”和一个正整数值。这个论点只有在NSMethod“kdtree”

例子:“BucketSize”,40岁

数据类型:|

协方差矩阵,指定为逗号分隔的对,由“浸”以及计算马氏距离时表示协方差矩阵的标量值的正定矩阵。这个论点只有在“距离”“mahalanobis”

你不能同时指定“标准化”其中任何一个“规模”“浸”

数据类型:|

距离度量,指定为逗号分隔的对,由“距离”和有效的距离度量名称或函数句柄。允许的距离度量名称取决于您选择的邻居搜索器方法(参见NSMethod).

NSMethod 距离度量名称
详尽的 任意距离度量ExhaustiveSearcher
kdtree “cityblock”“chebychev”“欧几里得”,或闵可夫斯基的

的有效距离度量ExhaustiveSearcher

距离度量名称 描述
“cityblock” 城市街区距离。
“chebychev” 切比乔夫距离(最大坐标差)。
“相关” 1减去观察值之间的样本线性相关性(作为值序列处理)。
的余弦 1减去观测值之间夹角的余弦(作为向量处理)。
“欧几里得” 欧氏距离。
“汉明” 汉明距离,不同坐标的百分比。
“jaccard” 1减去雅卡德系数,非零坐标的百分比。
“mahalanobis” 马氏距离,用正定协方差矩阵计算C.的默认值。C样本协方差矩阵是X,按X (X, omitrows).指定不同的值C,使用“浸”名称-值对参数。
闵可夫斯基的 闵可夫斯基距离。默认指数为2.要指定不同的指数,请使用“指数”名称-值对参数。
“seuclidean” 标准化欧氏距离。每一个坐标差X查询点是缩放的,意思是除以缩放值年代.的默认值。年代标准偏差是从哪里计算的XS = std(X,'omitnan').指定另一个值年代,使用规模名称-值对参数。
“枪兵” 1减去观察值之间的样本斯皮尔曼秩相关(作为值序列处理)。
@distfun

距离函数句柄。distfun有形式

函数D2 = distfun(ZI,ZJ)距离百分比计算...
在哪里

  • 是一个1——- - - - - -N的一行XY

  • ZJ是一个平方米——- - - - - -N矩阵包含多个行XY

  • D2是一个平方米——- - - - - -1距离向量,和D2 (k)观察之间的距离是多少而且ZJ (k,:)

如果你指定CategoricalPredictors作为“所有”,则默认距离度量为“汉明”.否则,默认距离度量为“欧几里得”

有关定义,请参见距离度量

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

数据类型:字符|字符串|function_handle

距离加权函数,指定为逗号分隔的对,由“DistanceWeight”或者是函数句柄,或者是表中的一个值。

价值 描述
“平等” 没有权重
“逆” 重量是1/距离
“squaredinverse” 重量是1/距离2
@fcn fcn是一个函数,它接受非负距离的矩阵,并返回包含非负距离权值的相同大小的矩阵。例如,“squaredinverse”等于@ (d) d。^ (2)

例子:“DistanceWeight”、“逆”

数据类型:字符|字符串|function_handle

闵可夫斯基距离指数,指定为逗号分隔的对,由“指数”一个正的标量值。这个论点只有在“距离”闵可夫斯基的

例子:“指数”,3

数据类型:|

领带包含标志,指定为逗号分隔的一对,由“IncludeTies”以及指示是否预测包含所有距离值等于k最小的距离。如果IncludeTies真正的预测包括所有这些邻居。否则,预测使用完全k邻居。

例子:“IncludeTies”,真的

数据类型:逻辑

最近邻搜索方法,指定为逗号分隔的对,由“NSMethod”而且“kdtree”“详尽”

  • “kdtree”—创建并使用Kd树查找最近的邻居。“kdtree”当距离度量是以下之一时有效:

    • “欧几里得”

    • “cityblock”

    • 闵可夫斯基的

    • “chebychev”

  • “详尽”—使用穷尽搜索算法。在预测一个新点的类时xnew,软件计算从所有点的距离值Xxnew寻找最近的邻居。

默认为“kdtree”X10或者更少的列,X不是稀疏还是一个gpuArray,距离度规是a“kdtree”类型;否则,“详尽”

例子:“NSMethod”、“详尽”

中最近的邻居数X用于在预测时对每个点进行分类,指定为逗号分隔的对,由“NumNeighbors”和一个正整数值。

例子:“NumNeighbors”,3

数据类型:|

距离刻度,指定为逗号分隔的对,由“规模”和一个包含非负标量值的向量,其长度等于中的列数X.每一个坐标差X的对应元素对查询点进行缩放规模.这个论点只有在“距离”“seuclidean”

你不能同时指定“标准化”其中任何一个“规模”“浸”

数据类型:|

标志来标准化预测器,指定为逗号分隔的一对,由“标准化”而且真正的1)或(0)

如果你设置“标准化”,真的,然后软件将预测数据的每列居中并缩放(X)分别用列均值和标准差表示。

该软件没有标准化分类预测器,如果所有预测器都是分类的,则抛出错误。

你不能同时指定“标准化”,1其中任何一个“规模”“浸”

将预测器数据标准化是一种很好的做法。

例子:“标准化”,真的

数据类型:逻辑

输出参数

全部折叠

kNN分类模板适用于训练集合或纠错输出码(ECOC)多类模型,作为模板对象返回。通过tfitcensemblefitcecoc指定如何分别为集成或ECOC模型创建KNN分类器。

如果你显示t,则所有未指定的选项都显示为空([]).但是,在训练过程中,软件会用它们对应的默认值替换空选项。

版本历史

在R2014a中介绍

Baidu
map