ClassificationKNN

ķ-nearest邻居分类

描述

ClassificationKNN是最近分类模型中,你可以改变距离度量和最近的邻居的数量两者。由于ClassificationKNN分级存储的训练数据,就可以使用该模型来计算resubstitution预测。另外,使用该模型采用新的观测分类预测方法。

创建

创建一个ClassificationKNN使用模型fitcknn

属性

展开全部

KNN属性

平局决胜算法使用预测当多个类具有相同的最小成本,指定为下列之一:

  • “最小”- 使用捆绑群体中最小的指数。

  • “最近”- 使用类绑群体之间的近邻。

  • '随机'- 使用捆绑组当中的随机决胜局。

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

更改BreakTies使用点符号:mdl.BreakTies = newBreakTies

距离度量,指定为字符向量或功能句柄。允许的值取决于NSMethod属性。

NSMethod 距离度量允许
“详尽” 任何距离度量ExhaustiveSearcher
'kdtree' '城市街区'“切比雪夫”“欧几里德”, 要么“闵可夫斯基

下表列出了ExhaustiveSearcher距离度量。

描述
'城市街区' 城市街区的距离。
“切比雪夫” 切比雪夫距离(最大坐标差)。
“相关性” 一减观测之间的样本的线性相关(作为值的序列处理的)。
“余弦” 一减观测之间的夹角(如载体处理的)的余弦值。
“欧几里德” 欧氏距离。
“汉明” 海明距离,即不同坐标的百分比。
“捷卡” 一减杰卡德系数,即不同的非零坐标的百分比。
“马氏 马氏距离,来计算使用正定协方差矩阵C。默认值C是的样本协方差矩阵X如通过计算nancov(X)。要指定一个不同的值C,设置DistParameter财产MDL使用点符号。
“闵可夫斯基 闵可夫斯基距离。默认的指数是2。要指定不同的指数,设定DistParameter财产MDL使用点符号。
'seuclidean' 标准化的欧氏距离。每个坐标之间的差异X和查询点进行缩放,由一个刻度值含义划分小号。默认值小号在标准偏差计算从XS = nanstd(X)。要指定另一个值小号,设置DistParameter财产MDL使用点符号。
“斯皮尔曼 一减观测之间的样品Spearman秩相关(作为值的序列处理的)。
@distfun

距离函数句柄。distfun具有形式

功能D2 = distfun(ZI,ZJ)距离的计算%...
哪里

  • ZI1-通过-ñ载体含有一个排X要么ÿ

  • ZJ是一个M2-通过-ñ含的多行矩阵X要么ÿ

  • D2是一个M2-通过-1距离的向量,并且D2(k)的是观测之间的距离ZIZJ(K,:)

欲了解更多信息,请参阅距离度量

更改距离使用点符号:mdl.Distance = newDistance

如果NSMethod'kdtree',你可以使用点符号改变距离只为指标'城市街区'“切比雪夫”“欧几里德”“闵可夫斯基

数据类型:烧焦|function_handle

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

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

更改DistanceWeight使用点符号:mdl.DistanceWeight = newDistanceWeight

数据类型:烧焦|function_handle

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

距离度量 参数
“马氏 正定协方差矩阵C
“闵可夫斯基 明氏距离指数,正面标
'seuclidean' 与长度阳性刻度值的矢量等于列数X

对于任何其他距离度量,的值DistParameter一定是[]

你可以改变DistParameter使用点符号:mdl.DistParameter = newDistParameter。但是,如果距离“马氏要么'seuclidean',那么你不能改变DistParameter

数据类型:|

指示是否包含铁旗预测包括所有其距离值等于所述邻居ķ个最小距离,指定为要么真正。如果IncludeTies真正预测包括所有的这些邻居。除此以外,预测究竟使用ķ邻居(见BreakTies属性)。

更改IncludeTies使用点符号:mdl.IncludeTies = newIncludeTies

数据类型:合乎逻辑

此属性是只读的。

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

  • 'kdtree'- 创建和使用ķd树找到最近的邻居。

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

默认值是'kdtree'什么时候X10或更少的列,X不是稀疏的,并且该距离度量是'kdtree'类型。否则,默认值是“详尽”

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

更改NumNeighbors使用点符号:mdl.NumNeighbors = newNumNeighbors

数据类型:|

其他分类属性

此属性是只读的。

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

数据类型:

此属性是只读的。

在训练数据的类的名称ÿ与重复删除,指定为绝对或字符阵列,逻辑或数字载体,或字符向量的单元阵列。类名具有相同的数据类型ÿ(该软件把字符串数组作为字符向量的单元阵列。)

数据类型:明确的|烧焦|合乎逻辑|||细胞

成本的点的错误分类,指定为方阵。成本(I,J)是分类的点到类的费用Ĵ如果它的真实类一世(即,行对应于真类和列对应于所预测的类)。该行和列的顺序成本对应于类的顺序类名。行和列的数量成本是响应独特的类数。

默认,成本(I,J)= 1如果I〜= j的成本(I,J)= 0如果我= j的。换句话说,成本0正确分类和1不正确的分类。

变化的成本矩阵使用点符号:mdl.Cost = costMatrix

数据类型:|

此属性是只读的。

扩展预测器名,指定为字符向量的单元阵列。

如果编码分类变量,那么该模型的用途ExpandedPredictorNames包括描述扩展的变量名。除此以外,ExpandedPredictorNames是相同的PredictorNames

数据类型:细胞

此属性是只读的。

在训练中使用的参数ClassificationKNN建模,指定为结构。

数据类型:结构

此属性是只读的。

预测手段,指定为长度的数值向量numel(PredictorNames)

如果不规范MDL利用训练模型时fitcknn, 然后是空的 ([])。

数据类型:|

此属性是只读的。

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

数据类型:

此属性是只读的。

预测器变量名,指定为字符向量的单元阵列。变量名是在它们出现在训练数据相同的顺序X

数据类型:细胞

先验概率为每个类,指定为数值向量。元件的顺序对应于类的顺序类名

添加或更改向量使用点符号:mdl.Prior = priorVector

数据类型:|

此属性是只读的。

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

数据类型:烧焦

此属性是只读的。

原始数据的行X在装配中使用ClassificationKNN建模,指定作为逻辑矢量。如果使用所有行此属性是空的。

数据类型:合乎逻辑

得分变换,指定为一个字符向量或功能句柄。

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

描述
'doublelogit' 1 /(1 +Ë-2X
'invlogit' 日志(X/(1 -X))
'ismax' 设置得分与得分最高的类1,并设置分数为所有其他类0
'Logit模型' 1 /(1 +Ë-X
'没有'要么“身份” X(无转换)
'标志' -1X<0
0X= 0
1X> 0
“对称” 2X- 1
'symmetricismax' 设置得分与得分最高的类1,并设置分数为所有其他类-1
'symmetriclogit' 2 /(1 +Ë-X) - 1

对于MATLAB®功能或者你定义一个函数,使用它的功能手柄得分变换。功能句柄必须接受矩阵(原始分)并返回相同的尺寸(转化分数)的矩阵。

更改ScoreTransform使用点符号:mdl.ScoreTransform = newScoreTransform

数据类型:烧焦|function_handle

此属性是只读的。

预测标准偏差,指定为长度的数值向量numel(PredictorNames)

如果你不训练期间标准化预测变量,然后适马是空的 ([])。

数据类型:|

此属性是只读的。

观察权重,指定为非负值的具有相同的行数作为载体ÿ。在每个条目w ^指定的相应观测中的相对重要性ÿ

数据类型:|

此属性是只读的。

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

数据类型:|

此属性是只读的。

类标签,指定为绝对或字符阵列,逻辑或数字载体,或字符向量的单元阵列。在每个值ÿ是在相应的行中的观察到的类别标签X

ÿ具有相同的数据类型中的数据ÿ用于训练模型。(该软件把字符串数组作为字符向量的单元阵列。)

数据类型:||合乎逻辑|烧焦|细胞|明确的

超参数优化性能

此属性是只读的。

超参数的交叉验证优化,指定为BayesianOptimization对象或超参数和相关联的值的表。此属性不为空当'OptimizeHyperparameters'名称 - 值对参数不为空,当您使用创建模型fitcknn。值取决于的设置'HyperparameterOptimizationOptions'名称 - 值对的说法,当你创建模型:

  • 'bayesopt'(默认) - 类对象BayesianOptimization

  • 'gridsearch'要么'randomsearch'- 超参数的表所使用的,观测到的观测的目标函数值(交叉验证损失),和等级从最低(最好)至最高(最差)

对象函数

compareHoldout 使用新的数据的两个分类模型的精度比较
crossval 交叉验证ķ-nearest邻分类
边缘 的边缘ķ-nearest邻分类
失利 损失ķ-nearest邻分类
余量 保证金ķ-nearest邻分类
预测 预测使用标签ķ-nearest邻居分类模型
resubEdge 的边缘ķ通过resubstitution -nearest邻分类
resubLoss 损失ķ通过resubstitution -nearest邻分类
resubMargin 保证金ķ通过resubstitution -nearest邻分类
resubPredict 预测resubstitution标签ķ-nearest邻分类

例子

全部收缩

火车ķ-nearest邻分类费舍尔的虹膜数据,其中ķ,最近邻居中的预测数,为5。

加载费舍尔的虹膜数据。

加载fisheririsX = MEAS;Y =物种;

X是一个包含150和虹膜4次花瓣测量的数值矩阵。ÿ是字符向量的单元阵列,它包含相应的虹膜物种。

培养出5近邻分类。规范noncategorical预测数据。

MDL = fitcknn(X,Y,'NumNeighbors'5,“标准化”,1)
MDL = ClassificationKNN ResponseName: 'Y' CategoricalPredictors:[]类名:{ 'setosa' '云芝' '锦葵'} ScoreTransform: '无' NumObservations:150距离: '欧几里得' NumNeighbors:5的属性,方法

MDL是一个训练有素的ClassificationKNN分类,和它的一些特性出现在命令窗口。

要访问的属性MDL,使用点记号。

Mdl.ClassNames
ANS =3X1细胞{ 'setosa'} { '云芝'} { '锦葵'}
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交叉验证分类器。

提示

  • 紧凑功能通过移除训练数据的属性和未预测的新的观测标签所需的任何其他属性降低了大多数分类模型的大小。因为ķ-nearest邻居分类模型要求所有的训练数据来预测标签,你不能减小的尺寸ClassificationKNN模型。

另类功能

knnsearch发现ķ点-nearest邻居。rangesearch查找所有的固定距离内的点。您可以使用这些功能进行分类,如图分类查询数据。如果你想进行分类,然后用ClassificationKNN模型可以更方便,因为你可以在一步训练分类器(使用fitcknn)并且在其它步骤进行分类(使用预测)。或者,你可以锻炼ķ在呼叫使用的交叉验证选项之一-nearest邻居分类模型fitcknn。在这种情况下,fitcknn回报ClassificationPartitionedModel交叉验证的模型对象。

扩展功能

介绍了在R2012a