主要内容

ClassificationKNN

k最近的邻居分类

描述

ClassificationKNN近邻分类模型中,你可以改变的距离度量和最近的邻居的数量。因为一个ClassificationKNN分类器存储训练数据,您可以使用该模型来计算resubstitution预测。另外,使用模型分类新观察使用预测方法。

创建

创建一个ClassificationKNN模型使用fitcknn

属性

全部展开

然而,属性

打破僵局的算法所使用的预测当多个类有相同的最小成本,指定为以下之一:

  • “最小”——使用最小的索引相关人群。

  • “最近的”——用最近邻类相关人群。

  • “随机”——使用一个随机的决胜局中相关的组。

默认情况下,关系发生在多个类中具有相同数量的最近的点k最近的邻居。BreakTies适用于当IncludeTies

改变BreakTies使用点符号:mdl。BreakTies = newBreakTies

距离度量,指定为一个特征向量或一个函数处理。允许的值取决于NSMethod财产。

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

下表列出了ExhaustiveSearcher距离度量。

价值 描述
“cityblock” 城市街区的距离。
“chebychev” Chebychev距离(最大坐标差异)。
“相关” 1 -样本线性相关性的观察(作为序列的值)。
的余弦 1 -之间的夹角的余弦值观察(视为向量)。
“欧几里得” 欧氏距离。
“汉明” 汉明距离、坐标不同的百分比。
“jaccard” 1 - Jaccard系数、不同比例的非零坐标。
“mahalanobis” 使用正定Mahalanobis距离,计算协方差矩阵C。的默认值C样本协方差矩阵吗X所计算的X (X, omitrows)。指定一个不同的值C,设置DistParameter的属性mdl使用点符号。
闵可夫斯基的 闵可夫斯基距离。默认的指数是2。指定一个不同的指数,设置DistParameter的属性mdl使用点符号。
“seuclidean” 标准化的欧氏距离。每个坐标之间的区别X和查询点缩放,这意味着除以一个刻度值年代。的默认值年代标准偏差计算来自哪里X,S =性病(X, omitnan)。指定一个值年代,设置DistParameter的属性mdl使用点符号。
“枪兵” 1 -样本之间的斯皮尔曼等级相关的观察(作为序列的值)。
@distfun

距离函数处理。distfun的形式

函数ZJ D2 = distfun(子)%计算距离
在哪里

  • 是一个1——- - - - - -N包含一个行向量XY

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

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

有关更多信息,请参见距离度量

改变距离使用点符号:mdl。距离= newDistance

如果NSMethod“kdtree”,你可以使用点符号改变距离仅为指标“cityblock”,“chebychev”,“欧几里得”,闵可夫斯基的

数据类型:字符|function_handle

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

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

改变DistanceWeight使用点符号:mdl。DistanceWeight = newDistanceWeight

数据类型:字符|function_handle

距离度量参数,指定为这个表中描述的价值观之一。

距离度量 参数
“mahalanobis” 正定协方差矩阵C
闵可夫斯基的 闵可夫斯基距离指数,一个积极的标量
“seuclidean” 向量的正规模值和长度的列数X

其他任何距离度量的价值DistParameter必须[]

你可以改变DistParameter使用点符号:mdl。DistParameter = newDistParameter。然而,如果距离“mahalanobis”“seuclidean”,那么你不能改变DistParameter

数据类型:|

系包含标志指示是否预测包括所有的邻居距离值等于kth最小距离,指定为真正的。如果IncludeTies真正的,预测包括所有的邻居。否则,预测使用完全k邻居(见BreakTies属性)。

改变IncludeTies使用点符号:mdl。IncludeTies = newIncludeTies

数据类型:逻辑

这个属性是只读的。

最近邻搜索方法,指定为“kdtree”“详尽”

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

  • “详尽”——使用穷举搜索算法。当预测类的新观点xnew,软件计算各点的距离值Xxnew找到最近的邻居。

默认值是“kdtree”X10或更少的列,X不是稀疏,距离度量是一个“kdtree”类型。否则,默认值是“详尽”

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

改变NumNeighbors使用点符号:mdl。NumNeighbors = newNumNeighbors

数据类型:|

其他分类属性

这个属性是只读的。

分类预测指标,指定为一个向量的正整数。CategoricalPredictors包含索引值表明相应的预测分类。索引值介于1和p,在那里p预测的数量被用来训练模型。如果所有的预测都直言,那么这个属性是空的([])。

数据类型:

这个属性是只读的。

训练数据的类的名称Y删除重复项,指定为一个类别或字符数组,逻辑或数值向量,或单元阵列的特征向量。一会有相同的数据类型Y(软件对字符串数组作为细胞阵列特征向量)。

数据类型:分类|字符|逻辑|||细胞

成本错误分类的一个点,指定为一个方阵。成本(i, j)是一个指向类分类的成本j如果它真正的类(即行对应于真正的阶级和列对应于预测类)。行和列的顺序成本对应于类的顺序一会。行和列的数量成本在响应中是独特的类的数量。

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

改变一个成本使用点符号矩阵:mdl。成本= costMatrix

数据类型:|

这个属性是只读的。

扩展预测名称,指定为一个单元阵列的特征向量。

如果分类变量的模型使用的编码,那么ExpandedPredictorNames包括名称,描述变量扩展。否则,ExpandedPredictorNames是一样的PredictorNames

数据类型:细胞

这个属性是只读的。

在训练中使用的参数ClassificationKNN模型,指定为一个对象。

这个属性是只读的。

预测手段,指定为一个数值向量的长度元素个数(PredictorNames)

如果你不规范mdl当训练模型使用fitcknn,然后μ是空的([])。

数据类型:|

这个属性是只读的。

用于训练的观测数量ClassificationKNN模型,指定为一个正整数标量。这个数字可以小于在训练数据的行数,因为行包含值不符合的一部分。

数据类型:

这个属性是只读的。

预测变量名称,指定为一个单元阵列的特征向量。变量名在相同的顺序出现在训练数据X

数据类型:细胞

先验概率为每个类,指定为一个数值向量。元素的顺序之前对应于类的顺序一会

添加或更改之前使用点符号向量:mdl。之前= priorVector

数据类型:|

这个属性是只读的。

响应变量名称,指定为一个特征向量。

数据类型:字符

这个属性是只读的。

行中使用的原始训练数据拟合ClassificationKNN模型,指定为一个逻辑向量。使用这个属性是空的,如果所有行。

数据类型:逻辑

分数变换,指定为一个特征向量或一个函数处理。

这个表总结了可用的特征向量。

价值 描述
“doublelogit” 1 / (1 +e2x)
“invlogit” 日志(x/ (1 -x))
“ismax” 集类的分数最大的分数为1,并设置所有其他类的分数为0
“分对数” 1 / (1 +e- - - - - -x)
“没有”“身份” x(转换)
“标志” 1x< 0
为0x= 0
1x> 0
“对称” 2x- 1
“symmetricismax” 集合类的分数最大的分数为1,和所有其他类的分数设置为1
“symmetriclogit” 2 / (1 +e- - - - - -x)- 1

对于一个MATLAB®函数或函数定义,使用分数变换的函数处理。函数处理必须接受一个矩阵(原始分数)并返回一个相同大小的矩阵(转换后的分数)。

改变ScoreTransform使用点符号:mdl。年代coreTransform = newScoreTransform

数据类型:字符|function_handle

这个属性是只读的。

预测标准差,指定为一个数值向量的长度元素个数(PredictorNames)

如果你不规范预测变量在训练σ是空的([])。

数据类型:|

这个属性是只读的。

观察体重、指定为一个向量的非负价值相同的行数Y。中的每个条目W指定相应的观测的相对重要性Y

数据类型:|

这个属性是只读的。

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

数据类型:|

这个属性是只读的。

类标签,分类或字符数组,指定逻辑或者数值向量、数组或单元的特征向量。每个值在Y是观察到的类标签中相应的行吗X

Y具有相同数据类型的数据Y用于训练模型。(软件对字符串数组作为细胞阵列特征向量)。

数据类型:||逻辑|字符|细胞|分类

Hyperparameter优化性能

这个属性是只读的。

交叉验证优化hyperparameters,指定为一个BayesianOptimization对象或一个表hyperparameters和相关联的值。该属性时非空的“OptimizeHyperparameters”名称-值对的观点是非空的使用当您创建模型fitcknn。价值取决于的设置“HyperparameterOptimizationOptions”名称-值对的观点当您创建的模型:

  • “bayesopt”(默认)——对象的类BayesianOptimization

  • “gridsearch”“randomsearch”——hyperparameters表使用,观察目标函数值(交叉验证损失)和从最低(最好的)最高等级的观察(坏的)

对象的功能

compareHoldout 比较两种分类模型使用新数据的精度
crossval 旨在机器学习模型
边缘 的边缘k最近的邻居分类器
收集 收集的属性统计和机器学习工具对象从GPU
石灰 本地可model-agnostic解释(石灰)
损失 的损失k最近的邻居分类器
保证金 保证金的k最近的邻居分类器
partialDependence 计算部分依赖
plotPartialDependence 创建部分依赖图(PDP)和个人条件期望(ICE)情节
预测 预测标签使用k最近的邻居分类模型
resubEdge Resubstitution分类边缘
resubLoss Resubstitution分类损失
resubMargin Resubstitution分类保证金
resubPredict 使用训练数据训练分类器进行分类
沙普利 沙普利值
testckfold 比较两种分类模型的精度重复交叉验证

例子

全部折叠

训练k最近的邻居为费雪的虹膜数据分类器,k最近的邻居的数量预测,是5。

费雪的虹膜数据加载。

负载fisheririsX =量;Y =物种;

X是一个数字矩阵,包含四个花瓣测量150虹膜。Y是一个单元阵列包含相应的特征向量的虹膜的物种。

5-nearest近邻分类器训练。规范noncategorical预测数据。

Mdl = fitcknn (X, Y,“NumNeighbors”5,“标准化”,1)
Mdl = ClassificationKNN ResponseName:‘Y’CategoricalPredictors:[]类名:{“setosa”“杂色的”“virginica”} ScoreTransform:“没有一个”NumObservations: 150距离:“欧几里得”NumNeighbors: 5属性,方法

Mdl是一个培训ClassificationKNN分类器和它的一些属性出现在命令窗口。

访问的属性Mdl,使用点符号。

Mdl.ClassNames
ans =3 x1细胞{' setosa}{“癣”}{' 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(使用)和分类在其他步骤预测)。或者,您可以训练k最近的邻居分类模型使用交叉验证的选项调用fitcknn。在这种情况下,fitcknn返回一个ClassificationPartitionedModel旨在模型对象。

扩展功能

介绍了R2012a