ķ-nearest邻居分类
ClassificationKNN
是最近分类模型中,你可以改变距离度量和最近的邻居的数量两者。由于ClassificationKNN
分级存储的训练数据,就可以使用该模型来计算resubstitution预测。另外,使用该模型采用新的观测分类预测
方法。
创建一个ClassificationKNN
使用模型fitcknn
。
BreakTies
-平局决胜算法“最小”
(默认)|“最近”
|'随机'
平局决胜算法使用预测
当多个类具有相同的最小成本,指定为下列之一:
“最小”
- 使用捆绑群体中最小的指数。
“最近”
- 使用类绑群体之间的近邻。
'随机'
- 使用捆绑组当中的随机决胜局。
默认情况下,当多个类具有相同数量之间的最近点的发生关系ķ最近的邻居。BreakTies
适用于当IncludeTies
是假
。
更改BreakTies
使用点符号:mdl.BreakTies = newBreakTies
。
距离
-距离度量'城市街区'
|“切比雪夫”
|“相关性”
|“余弦”
|“欧几里德”
|功能手柄|...距离度量,指定为字符向量或功能句柄。允许的值取决于NSMethod
属性。
NSMethod | 距离度量允许 |
---|---|
“详尽” |
任何距离度量ExhaustiveSearcher |
'kdtree' |
'城市街区' ,“切比雪夫” ,“欧几里德” , 要么“闵可夫斯基 |
下表列出了ExhaustiveSearcher
距离度量。
值 | 描述 |
---|---|
'城市街区' |
城市街区的距离。 |
“切比雪夫” |
切比雪夫距离(最大坐标差)。 |
“相关性” |
一减观测之间的样本的线性相关(作为值的序列处理的)。 |
“余弦” |
一减观测之间的夹角(如载体处理的)的余弦值。 |
“欧几里德” |
欧氏距离。 |
“汉明” |
海明距离,即不同坐标的百分比。 |
“捷卡” |
一减杰卡德系数,即不同的非零坐标的百分比。 |
“马氏 |
马氏距离,来计算使用正定协方差矩阵C 。默认值C 是的样本协方差矩阵X 如通过计算nancov(X) 。要指定一个不同的值C ,设置DistParameter 财产MDL 使用点符号。 |
“闵可夫斯基 |
闵可夫斯基距离。默认的指数是2 。要指定不同的指数,设定DistParameter 财产MDL 使用点符号。 |
'seuclidean' |
标准化的欧氏距离。每个坐标之间的差异X 和查询点进行缩放,由一个刻度值含义划分小号 。默认值小号 在标准偏差计算从X ,S = nanstd(X) 。要指定另一个值小号 ,设置DistParameter 财产MDL 使用点符号。 |
“斯皮尔曼 |
一减观测之间的样品Spearman秩相关(作为值的序列处理的)。 |
@ |
距离函数句柄。 功能D2 = distfun(ZI,ZJ)距离的计算%...
|
欲了解更多信息,请参阅距离度量。
更改距离
使用点符号:mdl.Distance = newDistance
。
如果NSMethod
是'kdtree'
,你可以使用点符号改变距离
只为指标'城市街区'
,“切比雪夫”
,“欧几里德”
和“闵可夫斯基
。
数据类型:烧焦
|function_handle
DistanceWeight
-距离加权函数'等于'
|'逆'
|'squaredinverse'
|功能手柄距离加权函数,指定为在此表中的值之一。
值 | 描述 |
---|---|
'等于' |
没有权重 |
'逆' |
重量1 /距离 |
'squaredinverse' |
重量1 /距离2 |
@ |
FCN 是接受非负距离的矩阵,并返回包含非负权重的距离相同大小的矩阵的函数。例如,'squaredinverse' 相当于@(d)d ^( - 2) 。 |
更改DistanceWeight
使用点符号:mdl.DistanceWeight = newDistanceWeight
。
数据类型:烧焦
|function_handle
DistParameter
-参数距离度量参数为距离度量,指定为值之一在该表中描述。
距离度量 | 参数 |
---|---|
“马氏 |
正定协方差矩阵C |
“闵可夫斯基 |
明氏距离指数,正面标 |
'seuclidean' |
与长度阳性刻度值的矢量等于列数X |
对于任何其他距离度量,的值DistParameter
一定是[]
。
你可以改变DistParameter
使用点符号:mdl.DistParameter = newDistParameter
。但是,如果距离
是“马氏
要么'seuclidean'
,那么你不能改变DistParameter
。
数据类型:单
|双
IncludeTies
-领带列入旗假
(默认)|真正
指示是否包含铁旗预测
包括所有其距离值等于所述邻居ķ个最小距离,指定为假
要么真正
。如果IncludeTies
是真正
,预测
包括所有的这些邻居。除此以外,预测
究竟使用ķ邻居(见BreakTies
属性)。
更改IncludeTies
使用点符号:mdl.IncludeTies = newIncludeTies
。
数据类型:合乎逻辑
NSMethod
-最近邻搜索方法'kdtree'
|“详尽”
此属性是只读的。
最近邻搜索方法,指定为'kdtree'
要么“详尽”
。
'kdtree'
- 创建和使用ķd树找到最近的邻居。
“详尽”
- 使用穷举搜索算法。当预测类的新点xnew
,该软件在所有点计算距离值X
至xnew
找到最近的邻居。
默认值是'kdtree'
什么时候X
有10
或更少的列,X
不是稀疏的,并且该距离度量是'kdtree'
类型。否则,默认值是“详尽”
。
NumNeighbors
-最近的邻居数在最近的邻居数X
用来预测期间的每个点,指定为正整数值进行分类。
更改NumNeighbors
使用点符号:mdl.NumNeighbors = newNumNeighbors
。
数据类型:单
|双
CategoricalPredictors
-分类预测指标[]
|正整数的向量此属性是只读的。
分类预测指标,指定为正整数的向量。CategoricalPredictors
包含对应于包含分类预测所述预测数据的列的索引值。如果没有预测的是分类的,则此属性是空的([]
)。
数据类型:双
类名
-在训练数据的类名称ÿ
此属性是只读的。
在训练数据的类的名称ÿ
与重复删除,指定为绝对或字符阵列,逻辑或数字载体,或字符向量的单元阵列。类名
具有相同的数据类型ÿ
。(该软件把字符串数组作为字符向量的单元阵列。)
数据类型:明确的
|烧焦
|合乎逻辑
|单
|双
|细胞
成本
-错误分类的成本成本的点的错误分类,指定为方阵。成本(I,J)
是分类的点到类的费用Ĵ
如果它的真实类一世
(即,行对应于真类和列对应于所预测的类)。该行和列的顺序成本
对应于类的顺序类名
。行和列的数量成本
是响应独特的类数。
默认,成本(I,J)= 1
如果I〜= j的
和成本(I,J)= 0
如果我= j的
。换句话说,成本0
正确分类和1
不正确的分类。
变化的成本
矩阵使用点符号:mdl.Cost = costMatrix
。
数据类型:单
|双
ExpandedPredictorNames
-扩展预测名称此属性是只读的。
扩展预测器名,指定为字符向量的单元阵列。
如果编码分类变量,那么该模型的用途ExpandedPredictorNames
包括描述扩展的变量名。除此以外,ExpandedPredictorNames
是相同的PredictorNames
。
数据类型:细胞
ModelParameters
-在训练中使用的参数ClassificationKNN
此属性是只读的。
在训练中使用的参数ClassificationKNN
建模,指定为结构。
数据类型:结构
亩
-预测手段此属性是只读的。
预测手段,指定为长度的数值向量numel(PredictorNames)
。
如果不规范MDL
利用训练模型时fitcknn
, 然后亩
是空的 ([]
)。
数据类型:单
|双
NumObservations
-观察数此属性是只读的。
在训练中使用的观测数ClassificationKNN
模型,指定为正整数标量。这个数可以小于行的在训练数据的数量,因为包含的行为NaN
值不配合的一部分。
数据类型:双
PredictorNames
-预测变量名此属性是只读的。
预测器变量名,指定为字符向量的单元阵列。变量名是在它们出现在训练数据相同的顺序X
。
数据类型:细胞
先
-每一类的先验概率先验概率为每个类,指定为数值向量。元件的顺序先
对应于类的顺序类名
。
添加或更改先
向量使用点符号:mdl.Prior = priorVector
。
数据类型:单
|双
ResponseName
-响应变量名此属性是只读的。
响应变量名,指定为字符向量。
数据类型:烧焦
RowsUsed
-在安装使用的行[]
|逻辑向量此属性是只读的。
原始数据的行X
在装配中使用ClassificationKNN
建模,指定作为逻辑矢量。如果使用所有行此属性是空的。
数据类型:合乎逻辑
ScoreTransform
-得分变换'没有'
(默认)|'doublelogit'
|'invlogit'
|'ismax'
|'Logit模型'
|功能手柄|...得分变换,指定为一个字符向量或功能句柄。
此表总结了可用的特征向量。
值 | 描述 |
---|---|
'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 ^
-观察权重此属性是只读的。
观察权重,指定为非负值的具有相同的行数作为载体ÿ
。在每个条目w ^
指定的相应观测中的相对重要性ÿ
。
数据类型:单
|双
X
-非标准预测数据此属性是只读的。
非标准数据预测,指定为数值矩阵。的每一列X
代表一个预测值(变量),而每行代表一个观察。
数据类型:单
|双
ÿ
-类标签此属性是只读的。
类标签,指定为绝对或字符阵列,逻辑或数字载体,或字符向量的单元阵列。在每个值ÿ
是在相应的行中的观察到的类别标签X
。
ÿ
具有相同的数据类型中的数据ÿ
用于训练模型。(该软件把字符串数组作为字符向量的单元阵列。)
数据类型:单
|双
|合乎逻辑
|烧焦
|细胞
|明确的
HyperparameterOptimizationResults
-超参数的交叉验证优化BayesianOptimization
目的|表此属性是只读的。
超参数的交叉验证优化,指定为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]。
该紧凑
功能通过移除训练数据的属性和未预测的新的观测标签所需的任何其他属性降低了大多数分类模型的大小。因为ķ-nearest邻居分类模型要求所有的训练数据来预测标签,你不能减小的尺寸ClassificationKNN
模型。
knnsearch
发现ķ点-nearest邻居。rangesearch
查找所有的固定距离内的点。您可以使用这些功能进行分类,如图分类查询数据。如果你想进行分类,然后用ClassificationKNN
模型可以更方便,因为你可以在一步训练分类器(使用fitcknn
)并且在其它步骤进行分类(使用预测
)。或者,你可以锻炼ķ在呼叫使用的交叉验证选项之一-nearest邻居分类模型fitcknn
。在这种情况下,fitcknn
回报ClassificationPartitionedModel
交叉验证的模型对象。
使用注意事项和限制:
该预测
功能支持代码生成。万博1manbetx
当你训练ķ通过使用-nearest邻居分类模型fitcknn
,以下限制适用。
类别标签输入自变量值(ÿ
)不能是分类数组。
代码生成不支持分类预测(万博1manbetx合乎逻辑
,明确的
,烧焦
,串
, 要么细胞
)。如果您提供的表格训练数据,该预测必须是数字(双
要么单
)。此外,您不能使用'CategoricalPredictors'
名称 - 值对的参数。要在模型分类预测,预处理使用分类预测dummyvar
前拟合模型。
的价值“类名”
名称 - 值对参数不能为一个分类数组。
的价值'距离'
名称 - 值对参数不能是一个自定义距离函数。
的价值'DistanceWeight'
名称 - 值对参数可以是自定义的距离权重函数,但它不能是匿名函数。
的价值'ScoreTransform'
名称 - 值对参数不能匿名函数。
欲了解更多信息,请参阅介绍代码生成。
您单击对应于该MATLAB命令的链接:
在MATLAB命令窗口中输入它运行的命令。Web浏览器不支持MATLAB的命令。万博1manbetx
您还可以选择从下面的列表中的网站:
选择最佳的网站性能的中国网站(在中国或英文)。其他MathWorks的国家网站都没有从您的位置访问进行了优化。