主要内容

ClassificationKnn.

k- 最终邻居分类

描述

ClassificationKnn.是最近的邻居分类模型,您可以在其中改变距离度量和最近邻居的数量。因为A.ClassificationKnn.分类器存储训练数据,您可以使用模型来计算重新替换预测。或者,使用模型对新的观察结果进行分类预测方法。

创建

创建一个ClassificationKnn.模型使用Fitcknn.

特性

展开全部

knn属性

使用的绑定算法预测当多个类具有相同的成本时,指定为以下之一:

  • “最小”- 使用绑定组中最小的指数。

  • '最近'- 将课程与最近的邻居一起使用,在绑定组中。

  • “随机”- 在绑定组中使用随机的纠结者。

默认情况下,当多个类别具有相同数量的最近点时,会发生联系k最近的邻居。休息适用时间IncludeTies.

改变休息使用点表示法:mdl.breakties = newebreakties

距离度量,指定为字符向量或函数句柄。允许的值取决于nsmethod.财产。

nsmethod. 允许距离度量
'彻底的' 任何距离度量令人疲惫的
“kdtree” '城市街区'“chebychev”'euclidean', 要么'minkowski'

下表列出了令人疲惫的距离度量。

价值 描述
'城市街区' 城市街区距离。
“chebychev” 切比切夫距离(最大坐标差)。
'相关性' 一减去观察值之间的样本线性相关性(作为值的序列处理)。
的余弦 一个减去观察结果之间的包含角度的余弦(作为载体处理)。
'euclidean' 欧几里德距离。
“汉明” 汉明距离,坐标的百分比不同。
'jaccard' 一个减去Jaccard系数,非零坐标的百分比不同。
'mahalanobis' Mahalanobis距离,使用正定的协方差矩阵计算C.默认值C样本协方差矩阵是X,由COV(x,'omitrows').指定一个不同的值C,设置distparameter.的属性MDL.使用点表示法。
'minkowski' 闵可夫斯基距离。默认指数为2.要指定不同的指数,请设置distparameter.的属性MDL.使用点表示法。
'seuclidean' 标准化的欧几里德距离。每个坐标之间的差异X并且缩放了查询点,含义除以比例值年代.默认值年代标准偏差是从XS =性病(X, omitnan).指定另一个值年代,设置distparameter.的属性MDL.使用点表示法。
“矛曼” 1减去观察值之间的样本斯皮尔曼等级相关性(作为值的序列处理)。
DISTFUN

距离函数处理。DISTFUN有形式

功能d2 = distfun(zi,zj)距离计算%......
在哪里

  • Zi.是A.1-经过-N包含一行的向量X要么Y

  • ZJ.是一个M2-经过-N包含多行的矩阵X要么Y

  • D2是一个M2-经过-1距离向量D2(k)是观察之间的距离Zi.zj(k,:)

有关更多信息,请参阅距离指标

改变距离使用点表示法:mdl。距离= newDistance

如果nsmethod.“kdtree”,您可以使用DOT表示法更改距离仅适用于指标'城市街区'“chebychev”'euclidean', 和'minkowski'

数据类型:char|function_handle

距离加权函数,指定为此表中的值之一。

价值 描述
'平等的' 没有加权
'逆' 重量是1 /距离
'squaredinverse' 重量是1 /距离2
FCN. FCN.是接受非负距离的矩阵的功能,并返回包含非负距离权重的相同大小的矩阵。例如,'squaredinverse'相当于@ (d) d。^ (2)

改变距离重量级使用点表示法:mdl。DistanceWeight = newDistanceWeight

数据类型:char|function_handle

距离度量的参数,指定为此表中描述的值之一。

距离度量 参数
'mahalanobis' 正定的协方差矩阵C
'minkowski' Minkowski距离指数,一个正标量
'seuclidean' 正尺度值矢量长度等于列数X

对于任何其他距离度量,值distparameter.必须是[]

你可以改变distparameter.使用点表示法:mdl.distparameter = newdistparameter..然而,如果距离'mahalanobis'要么'seuclidean',那你就不能改变了distparameter.

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

绑定夹杂标志指示是否预测包括距离值等于的所有邻居k最小距离,指定为要么真的.如果IncludeTies.真的预测包括所有这些邻居。否则,预测完全使用k邻居(见休息财产)。

改变IncludeTies.使用点表示法:mdl.includeties = newIncludeties.

数据类型:逻辑

此属性是只读的。

最近邻搜索方法,指定为“kdtree”要么'彻底的'

  • “kdtree”- 创建和使用Kd树找到最近的邻居。

  • '彻底的'- 使用详尽的搜索算法。预测新点的类XNew.,软件计算所有点的距离值XXNew.寻找最近的邻居。

默认值是“kdtree”什么时候X拥有10.或更少的列,X不是稀疏的,距离度量是a“kdtree”类型。否则,默认值是'彻底的'

最近的邻居的数量X用于在预测期间对每个点进行分类,指定为正整数值。

改变numneighbors.使用点表示法:mdl.numneighbors = newnumneighbors.

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

其他分类属性

此属性是只读的。

分类预测索引指定为正整数的向量。分类预测器包含与包含分类预测器的预测器数据列对应的索引值。如果没有预测器都是分类的,则此属性是空的([]).

数据类型:双倍的

此属性是只读的。

培训数据中的课程的名称Y删除重复项,指定为分类或字符阵列,逻辑或数字矢量或字符向量的单元格数组。一会具有相同的数据类型为Y(该软件将字符串数组视为字符向量的单元格数组。)

数据类型:分类|char|逻辑|单身的|双倍的|细胞

点错误分类的代价,指定为方阵。成本(i,j)是将一个点分类为课程的成本j如果它的真实课程是(即,行对应于真实类,列对应于预测类)。行和列的顺序成本中类的顺序一会.行数和列的数量成本是响应中唯一类的数量。

默认情况下,成本(i, j) = 1如果我~ = j, 和成本(i, j) = 0如果我=我.换句话说,成本是0正确分类和1对于不正确的分类。

改变A.成本Matrix使用点表示法:mdl.cost = costmatrix.

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

此属性是只读的。

扩展的预测器名称,指定为字符向量的单元格数组。

如果模型对分类变量使用编码,那么ExpandedPredictorNames.包括描述扩展变量的名称。否则,ExpandedPredictorNames.是相同的预测

数据类型:细胞

此属性是只读的。

用于训练的参数ClassificationKnn.模型,指定为对象。

此属性是只读的。

预测仪意味着,指定为长度的数字矢量numel(预测的人)

如果你不标准化MDL.使用时培训模型Fitcknn.,然后是空的 ([]).

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

此属性是只读的。

用于训练的观察数ClassificationKnn.模型,指定为正整数标量。此数字可以小于培训数据中的行数,因为包含的行包含值不是适合的一部分。

数据类型:双倍的

此属性是只读的。

预测器变量名称指定为字符向量的单元格数组。变量名称是相同的顺序,其中它们出现在培训数据中X

数据类型:细胞

每个类的先前概率,指定为数字向量。元素的顺序事先的中类的顺序一会

添加或更改事先的载体使用点表示法:mdl.prior = praftvector.

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

此属性是只读的。

响应变量名称,指定为字符向量。

数据类型:char

此属性是只读的。

用于适合的原始培训数据的行ClassificationKnn.模型,指定为逻辑向量。如果使用所有行,此属性为空。

数据类型:逻辑

分数转换,指定为字符向量或函数句柄。

该表总结了可用的字符向量。

价值 描述
'doublelogit' 1 /(1 +e-2x
'invlogit' 日志(x/(1 -x)))
'ismax' 将具有最大分数的类设置为1的分数,并将所有其他类的分数设置为0
分对数的 1 /(1 +e- - - - - -x
“没有”要么'身份' x(没有转型)
'符号' -1 for.x<0
0x= 0
1x> 0
'对称' 2x- 1
'ymmetricismax' 将具有最大分数为1的类设置分数,并将所有其他类的分数设置为-1
'symmetriclogit' 2 /(1 +e- - - - - -x) - 1

对于matlab.®功能或功能您定义,使用其功能句柄进行分数转换。函数句柄必须接受矩阵(原始分数)并返回相同大小的矩阵(转换的分数)。

改变scoretransform.使用点表示法:mdl.scoretransform = newscoreTransform.

数据类型:char|function_handle

此属性是只读的。

预测器标准偏差,指定为长度的数字向量numel(预测的人)

如果您在训练期间没有标准化预测因子变量,那么Sigma.是空的 ([]).

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

此属性是只读的。

观察权重,指定为具有相同行数的非负值的向量Y.中的每个条目W指定相应观察的相对重要性Y

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

此属性是只读的。

指定为数字矩阵的未标准化预测器数据。每列X代表一个预测器(变量),每一行代表一个观察。

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

此属性是只读的。

类标签,指定为分类或字符阵列,逻辑或数字矢量或字符向量的单元格数组。每个价值Y观察到的类标签对应的行在吗X

Y具有与数据相同的数据类型Y用于培训模型。(该软件将字符串数组视为字符向量的单元格数组。)

数据类型:单身的|双倍的|逻辑|char|细胞|分类

HyperParameter优化属性

此属性是只读的。

超参数的交叉验证优化,指定为a贝叶斯偏见对象或超参数和关联值表。这个属性是非空的“OptimizeHyperparameters”名称 - 值对参数是非空的,当您使用时创建模型时Fitcknn..该值取决于设置的设置'hyperparameteroptimizationoptions'名称 - 值对参数创建模型:

  • “bayesopt”(默认) - 类的对象贝叶斯偏见

  • “gridsearch”要么'randomsearch'- 使用的超参数表,观察到的目标函数值(交叉验证丢失),以及从最低(最佳)到最高(最差)的观察等级

对象的功能

CompareHoldout. 使用新数据比较两个分类模型的精度
crossval 交叉验证机器学习模型
边缘 的边缘k- 最终邻居分类器
收集 收集GPU机器学习模型的属性
酸橙 局部可解释的模型不可知解释(LIME)
损失 lossk- 最终邻居分类器
利润 保证金的k- 最终邻居分类器
partialDependence 计算部分依赖
绘图竞争依赖性 创建部分依赖图(PDP)和个人条件期望图(ICE)
预测 预测标签使用k- 最终邻居分类模型
resubEdge Resubstitution分类边缘
resubloss. 重新提交分类损失
重新提交 Resubstitution分类保证金
resubPredict 使用培训的分类器对培训数据进行分类
沙普利 福利价值观
testckfold. 通过重复的交叉验证比较两个分类模型的精度

例子

全部收缩

火车A.k用于费舍尔的虹膜数据的最终邻居分类器,在哪里k,预测器中最近邻居的数量为5。

载入费雪的虹膜数据。

负载渔民x = meas;y =物种;

X是一个数字矩阵,包含四个花瓣测量150鸢尾。Y是包含相应虹膜种类的字符向量的细胞阵列。

火车5最接近的邻分类器。标准化非相似的预测器数据。

mdl = fitcknn(x,y,'numneighbors',5,'标准化'1)
mdl = classificationknn racatectename:'y'pationoricalpricictors:[] classnames:{'setosa''versicolor''virginica'} scoreTransform:'无'numobservations:150距离:'euclidean'numneighbors:5属性,方法

MDL.是训练有素的ClassificationKnn.分类器,它的一些属性出现在命令窗口中。

的属性MDL.,使用点表示法。

mdl.classnames.
ans =3x1细胞{'setosa'} {'versicolor'} {'virginica'}
mdl.prior.
ans =1×30.3333 0.3333 0.3333

mdl.prior.包含此类前一类概率,您可以使用该概率使用'事先的'名称 - 值对参数Fitcknn..课程的顺序对应于类中的顺序mdl.classnames..默认情况下,先验概率是数据中类的相对频率。

您还可以在培训后重置现有概率。例如,将先前概率设置为0.5,0.2和0.3。

mdl.prior = [0.5 0.2 0.3];

你可以通过MDL.预测标记新测量或crossval交叉验证分类器。

提示

  • 袖珍的函数通过删除训练数据属性和预测新观测值标签不需要的任何其他属性来减少大多数分类模型的大小。因为k- 最终邻居分类模型需要所有培训数据来预测标签,无法减小一个尺寸ClassificationKnn.模型。

替代功能

knnsearch找到k最邻居的积分。rangesearch.在固定距离内找到所有点。您可以使用这些函数进行分类,如图所示分类查询数据.如果要进行分类,则使用ClassificationKnn.模型可以更方便,因为您可以在一步中训练一个分类器(使用Fitcknn.)和分类在其他步骤(使用预测).或者,你可以训练ak- 使用呼叫中的一个交叉验证选项的邻居分类模型Fitcknn..在这种情况下,Fitcknn.返回一个ClassificationededModel.交叉验证的模型对象。

扩展能力

在R2012A介绍