适合k-最近邻分类器
返回一个k-基于表中输入变量(也称为预测器、特征或属性)的最近邻分类模型Mdl
= fitcknn (资源描述
,ResponseVarName
)资源描述
和输出(响应)Tbl.ResponseVarName
.
训练k-Fisher虹膜数据的最近邻分类器,其中k,预测值中的最近邻数为5。
载入费雪的虹膜数据。
负载fisheririsX =量;Y =物种;
X
是一个数字矩阵,包含四个花瓣测量150鸢尾。Y
是包含相应虹膜种类的字符向量的细胞阵列。
训练一个5-最近邻分类器。标准化非分类预测数据。
Mdl = fitcknn (X, Y,“纽曼尼斯堡”5.“标准化”,1)
Mdl = ClassificationKNN ResponseName: 'Y' CategoricalPredictors: [] ClassNames: {'setosa' 'versicolor' 'virginica'} ScoreTransform: 'none' NumObservations: 150距离:'euclidean' NumNeighbors: 5属性,方法
Mdl
是一个培训分类KNN
分类器,它的一些属性出现在命令窗口中。
要访问Mdl
,使用点符号。
Mdl。ClassNames
ans =3x1电池{'setosa'}{'versicolor'}{'virginica'}
Mdl。之前
ans =1×30.3333 0.3333 0.3333
Mdl。之前
包含类先验概率,您可以使用“之前”
中的名称-值对参数菲茨康
.类先验概率的顺序对应于类的顺序Mdl。ClassNames
. 默认情况下,先验概率是数据中类的相应相对频率。
您还可以在训练后重置先前的概率。例如,将先验概率分别设置为0.5、0.2和0.3。
Mdl。Prior = [0.5 0.2 0.3];
载入费雪的虹膜数据集。
负载fisheririsX =量;Y =物种;
X
是一个数字矩阵,包含四个花瓣测量150鸢尾。Y
是包含相应虹膜种类的字符向量的细胞阵列。
使用闵可夫斯基度量训练3个最近邻分类器。要使用闵可夫斯基度规,必须使用穷举搜索器。标准化非分类预测数据是一个很好的实践。
Mdl = fitcknn (X, Y,“纽曼尼斯堡”3....“NSMethod”,“详尽”,“距离”,“明可夫斯基”,...“标准化”,1);
Mdl
是一个分类KNN
分类器。
您可以检查Mdl
双击Mdl
在工作区窗口中。这将打开变量编辑器。
训练k-使用卡方距离的最近邻分类器。
载入费雪的虹膜数据集。
负载fisheririsX =量;%预测Y =物种;%响应
卡方距离j-维点x和z是
在哪里 是与维度关联的权重j.
指定卡方距离函数。距离函数必须:
拿一排X
,例如,x
,矩阵Z
.
比较x
每行Z
.
返回一个向量D
长度
哪里
是的行数Z
.的每个元素D
观察到的距离是否对应x
以及对应于每行数据的观测值Z
.
chiSqrDist=@(x,Z,wt)sqrt((bsxfun(@负,x,Z)。^2)*wt);
本例使用任意权重进行说明。
训练一个3-最近邻分类器。标准化非分类预测数据是一个很好的实践。
k=3;w=[0.3;0.3;0.2;0.2];KNNMdl=fitchnn(X,Y,“距离”@ (x, Z) chiSqrDist (x, Z, w),...“纽曼尼斯堡”、钾、“标准化”,1);
KNNMdl
是一个分类KNN
分类器。
使用默认的10倍交叉验证交叉验证KNN分类器。检查分类错误。
rng (1);%为了再现性CVKNNMdl=交叉值(KNNMdl);classError=kfoldLoss(CVKNNMdl)
classError=0.0600
CVKNNMdl
是一个ClassificationPartitionedModel
分类器。10倍分类误差为4%。
将分类器与使用不同权重方案的分类器进行比较。
w2=[0.2;0.2;0.3;0.3];CVKNNMdl2=Fitchnn(X,Y,“距离”,@(x,Z)chiSqrDist(x,Z,w2),...“纽曼尼斯堡”、钾、“KFold”,10,“标准化”,1); classError2=kfoldLoss(CVKNNMdl2)
classError2 = 0.0400
第二个加权方案产生了一个具有更好的样本外性能的分类器。
这个例子展示了如何自动优化超参数使用菲茨康
。该示例使用Fisher iris数据。
加载数据。
负载fisheririsX =量;Y =物种;
通过使用自动超参数优化,找到最小化五倍交叉验证损失的超参数。
为了重现性,设置随机种子并使用“预期改善加成”
采集功能。
rng(1)Mdl=Fitchnn(X,Y,“优化超参数”,“汽车”,...“HyperparameterOptimizationOptions”,...结构(“AcquisitionFunctionName”,“预期改善加成”))
|=====================================================================================================| | Iter | Eval客观客观| | | BestSoFar | BestSoFar | NumNeighbors距离| | | | |结果运行时| | | (estim(观察) .) | | | |=====================================================================================================||1|Be年代t | 0.026667 | 0.97867 | 0.026667 | 0.026667 | 30 | cosine |
|2 |接受| 0.04 | 0.38006 | 0.026667 | 0.027197 | 2 |切比切夫|
| 3 |接受| 0.19333 | 0.11535 | 0.026667 | 0.030324 | 1 |汉明|
| 4 |接受| 0.33333 | 0.12667 | 0.026667 | 0.033313 | 31 | spearman |
|5 |最佳| 0.02 | 0.075077 | 0.02 | 0.020648 | 6 |余弦|
|6 |接受| 0.073333 | 0.069325 | 0.02 | 0.023082 | 1 |相关性|
|7 |接受| 0.06 | 0.071807 | 0.02 | 0.020875 | 2 |城市街区|
| 8 |接受| 0.04 | 0.067053 | 0.02 | 0.020622 | 1 |欧氏|
| 9 |接受| 0.24 | 0.32008 | 0.02 | 0.020562 | 74 | mahalanobis |
| 10 |接受| 0.04 | 0.087131 | 0.02 | 0.020649 | 1 | minkowski |
| 11 |接受| 0.053333 | 0.12363 | 0.02 | 0.020722 | 1 | seuclidean |
| 12 |接受| 0.19333 | 0.092799 | 0.02 | 0.020701 | 1 | jaccard |
| 13 | Accept | 0.04 | 0.073193 | 0.02 | 0.029203 | 1 | cos |
|14 |接受| 0.04 | 0.064227 | 0.02 | 0.031888 | 75 |余弦|
| 15 |接受| 0.04 | 0.071708 | 0.02 | 0.020076 | 1 | cos |
|16 |接受| 0.093333 | 0.069671 | 0.02 | 0.020073 | 75 |欧几里德|
|17 |接受| 0.093333 | 0.066044 | 0.02 | 0.02007 | 75 |明考斯基|
|18 |接受| 0.1 | 0.066907 | 0.02 | 0.020061 | 75 |切比切夫|
|19 |接受| 0.15333 | 0.066742 | 0.02 | 0.020044 | 75 | seuclidean|
|20 |接受| 0.1 | 0.066637 | 0.02 | 0.020044 | 75 |城市街区|
|=====================================================================================================| | Iter | Eval客观客观| | | BestSoFar | BestSoFar | NumNeighbors距离| | | | |结果运行时| | | (estim(观察) .) | | | |=====================================================================================================||21|一个ccept | 0.033333 | 0.065178 | 0.02 | 0.020046 | 75 | correlation |
|22 |接受| 0.033333 | 0.076276 | 0.02 | 0.02656 | 9 |余弦|
|23 |接受| 0.033333 | 0.069098 | 0.02 | 0.02854 | 9 |余弦|
| 24 |接受| 0.02 | 0.071597 | 0.02 | 0.028607 | 1 | chebychev |
| 25 |接受| 0.02 | 0.064268 | 0.02 | 0.022264 | 1 | chebychev |
|26 |接受| 0.02 | 0.07473 | 0.02 | 0.021439 | 1 |切比切夫|
|27 |接受| 0.02 | 0.066959 | 0.02 | 0.020999 | 1 |切比切夫|
| 28 |接受| 0.66667 | 0.064738 | 0.02 | 0.020008 | 75 |汉明|
| 29 |接受| 0.04 | 0.082548 | 0.02 | 0.020008 | 12 |相关|
| 30 | Best | 0.013333 | 0.06474 | 0.013333 | 0.013351 | 6 |欧几里得|
__________________________________________________________ 优化完成。maxobjective达到30个。总函数计算:30总运行时间:30.7839秒。总目标函数评估时间:3.7529最佳观测可行点:NumNeighbors Distance ____________ _________ 6欧氏观测目标函数值= 0.013333估计目标函数值= 0.013351函数评估时间= 0.06474最佳估计可行点(根据模型):NumNeighbors Distance ____________ _________ 6欧几里德估计目标函数值= 0.013351估计函数计算时间= 0.090787
Mdl = ClassificationKNN ResponseName: 'Y' CategoricalPredictors: [] ClassNames: {'setosa' 'versicolor' 'virginica'} ScoreTransform: 'none' NumObservations: 150 HyperparameterOptimizationResults: [1×1 BayesianOptimization] Distance: 'euclidean' NumNeighbors: 6 Properties, Methods . NumNeighbors: 6 Properties,方法
资源描述
- - - - - -样本数据用于训练模型的样本数据,以表格形式指定。每行资源描述
对应一个观察值,每一列对应一个预测变量。可选地,资源描述
可以为响应变量包含一个额外的列。除了字符向量的单元格数组之外,不允许使用多列变量和单元格数组。
如果资源描述
包含响应变量,并且您希望使用中的所有剩余变量资源描述
作为预测器,然后使用ResponseVarName
.
如果资源描述
包含响应变量,并且您只希望使用中剩余变量的子集资源描述
作为预测器,然后通过使用公式
.
如果资源描述
不包含响应变量,则使用Y
. 响应变量的长度和中的行数资源描述
必须是相等的。
数据类型:桌子
公式
- - - - - -反应变量和预测变量子集的解释模型响应变量和预测变量子集的解释模型,指定为以下形式的字符向量或字符串标量“Y ~ X1 + X2 + X3”
. 以这种形式,,Y
表示响应变量,和X1
,X2
和X3
表示预测变量。
中指定变量的子集资源描述
作为训练模型的预测器,使用一个公式。如果你指定一个公式,那么软件不使用任何变量资源描述
没有出现在公式
.
公式中的变量名必须是公式中的两个变量名资源描述
(Tbl.Properties.VariableNames
)并且是有效的MATLAB®标识符。
您可以在中验证变量名资源描述
通过使用伊斯瓦名称
函数。下面的代码返回逻辑的1
(符合事实的
)对于具有有效变量名的每个变量。
cellfun(@isvarname,Tbl.Properties.VariableNames)
资源描述
无效,然后使用matlab.lang.makeValidName
函数。Tbl.Properties.VariableNames=matlab.lang.makeValidName(Tbl.Properties.VariableNames);
数据类型:烧焦
|一串
Y
- - - - - -类标签类标签,指定为类别、字符或字符串数组、逻辑或数字向量或字符向量的单元格数组。每行Y
的对应行的分类X
.
软件认为南
,''
(空字符向量),""
(空字符串),< >失踪
和<定义>
价值观Y
丢失值。因此,该软件不会使用缺少响应的观察结果进行训练。
数据类型:分类
|烧焦
|一串
|逻辑
|仅有一个的
|双重的
|细胞
X
- - - - - -预测数据预测器数据,指定为数字矩阵。
每行对应一个观察值(也称为实例或示例),每列对应一个预测变量(也称为特征)。
的长度Y
以及X
必须是相等的。
按预测值在中的出现顺序指定其名称X
,可以使用PredictorNames
名称-值对的论点。
数据类型:双重的
|仅有一个的
指定可选的逗号分隔的对名称,值
参数。名称
是参数名和价值
是对应的值。名称
必须出现在引号内。您可以按任意顺序指定多个名称和值对参数,如下所示:Name1, Value1,…,的家
.
“NumNeighbors”,3,“NSMethod”,“穷举”,“Distance”,“minkowski”
使用最近邻搜索方法和Minkowski度量为三个最近邻指定分类器。
不能将任何交叉验证名称-值对参数与“优化超参数”
名称-值对参数。您可以修改的交叉验证“优化超参数”
只有使用“HyperparameterOptimizationOptions”
名称-值对的论点。
“布朗蒂丝”
- - - - - -解结算法“最小的”
(默认)|“最近的”
|“随机”
决胜算法所使用的预测
如果多个类具有相同的最小开销,则指定为逗号分隔的对“布朗蒂丝”
以及以下其中之一:
“最小的”
—在绑定组之间使用最小的索引。
“最近的”
-使用绑定组中最近邻的类。
“随机”
-在平局组中使用随机的平局决胜局。
在默认情况下,当多个类之间有相同数量的最近点时,就会发生平局K
最近的邻居。
例子:“BreakTies”,“最近的”
“BucketSize”
- - - - - -节点中的最大数据点50
(默认)|正整数值服务器的叶节点中的最大数据点数kd-树,指定为逗号分隔对,由“BucketSize”
和一个正整数值。这个论点只有在下列情况下才有意义NSMethod
是“kdtree”
.
例子:“BucketSize”,40
数据类型:仅有一个的
|双重的
“CategoricalPredictors”
- - - - - -分类预测标志[]
|“全部”
分类预测器标志,指定为逗号分隔对,由“CategoricalPredictors”
以及以下其中之一:
“全部”
-所有的预测都是绝对的。
[]
-没有预测是绝对的。
预测数据菲茨康
必须是全部连续的或全部分类的。
当您设置分类预测因子
到“全部”
,默认值距离
是“哈明”
.
例子:“分类预测因子”,“全部”
“类名”
- - - - - -用于培训的类名要用于训练的类名,指定为逗号分隔对,由“类名”
以及类别、字符或字符串数组、逻辑或数字向量或字符向量的单元格数组。一会
必须具有与相同的数据类型Y
.
如果一会
是字符数组,则每个元素必须对应于数组的一行。
使用“类名”
:
在培训期间安排课程。
指定与类顺序对应的任何输入或输出参数维度的顺序。例如,使用“类名”
指定尺寸的顺序费用
或返回的分类分数的列顺序预测
.
选择用于培训的类的子集。例如,假设集合中所有不同的类名Y
是{'a','b','c'}
.使用课堂观察来训练模型“a”
和“c”
仅指定'ClassNames',{'a','c'}
.
的默认值一会
中所有不同类名的集合Y
.
例子:“类名”,{' b ', ' g '}
数据类型:分类
|烧焦
|一串
|逻辑
|仅有一个的
|双重的
|细胞
“Cov”
- - - - - -协方差矩阵nancov (X)
(默认)|标量值的正定矩阵协方差矩阵,指定为逗号分隔对,由“Cov”
以及计算马氏距离时表示协方差矩阵的标量值的正定矩阵。此参数仅在以下情况下有效“距离”
是“马哈拉诺比斯”
.
不能同时指定“标准化”
的,要么“规模”
或“Cov”
.
数据类型:仅有一个的
|双重的
“距离”
- - - - - -距离度量“cityblock”
|“切比切夫”
|“相关”
|“余弦”
|“欧几里得”
|“哈明”
|函数处理| ...距离度量,指定为逗号分隔对,由“距离”
和一个有效的距离度量名称或函数句柄。允许的距离度量名称取决于你选择的邻居搜索方法(见NSMethod
).
NSMethod | 距离指标名称 |
---|---|
详尽的 |
任意距离度量ExhaustiveSearcher |
kdtree |
“cityblock” ,“切比切夫” ,“欧几里得” 或“明可夫斯基” |
此表包括以下各项的有效距离度量:ExhaustiveSearcher
.
距离指标名称 | 描述 |
---|---|
“cityblock” |
城市街区的距离。 |
“切比切夫” |
切比切夫距离(最大坐标差)。 |
“相关” |
1减去观测值之间的样本线性相关性(视为值序列)。 |
“余弦” |
一减去观测值之间夹角的余弦(视为向量)。 |
“欧几里得” |
欧氏距离。 |
“哈明” |
汉明距离,不同坐标的百分比。 |
“jaccard” |
1减去Jaccard系数,即不同的非零坐标的百分比。 |
“马哈拉诺比斯” |
马氏距离,用正定协方差矩阵计算C . 的默认值C 样本协方差矩阵是X ,由nancov (X) .指定一个不同的值C ,可以使用“Cov” 名称-值对的论点。 |
“明可夫斯基” |
闵可夫斯基距离。默认指数为2 . 要指定不同的指数,请使用“指数” 名称-值对的论点。 |
“seuclidean” |
标准化欧几里德距离。每个坐标之间的差异X 查询点被缩放,也就是除以一个缩放值年代 . 的默认值年代 标准偏差是从X ,S=Td(X) 。为指定另一个值年代 ,可以使用规模 名称-值对的论点。 |
“枪兵” |
1减去样本斯皮尔曼观察值之间的等级相关性(视为值序列)。 |
@ |
距离函数处理。 函数ZJ D2 = distfun(子)%距离计算...
|
如果您指定分类预测因子
像“全部”
,则默认距离度量为“哈明”
.否则,默认距离度量为“欧几里得”
.
定义,请参阅距离度量.
例子:“距离”,“闵可夫斯基”
数据类型:烧焦
|一串
|function_handle
“距离重量”
- - - - - -距离加权函数“平等”
(默认)|“逆”
|“squaredinverse”
|函数处理距离加权函数,指定为逗号分隔对,由“距离重量”
以及函数句柄或此表中的某个值。
价值 | 描述 |
---|---|
“平等” |
非加权 |
“逆” |
重量是1 /距离 |
“squaredinverse” |
重量是1 /距离2 |
@ |
fcn 是一个函数,它接受非负距离矩阵,并返回包含非负距离权重的大小相同的矩阵。例如,“squaredinverse” 相当于@(d) d.^(-2) . |
例子:“距离权重”,“反向”
数据类型:烧焦
|一串
|function_handle
“指数”
- - - - - -闵可夫斯基距离指数2
(默认)|积极的标量值闵可夫斯基距离指数,指定为逗号分隔对,由“指数”
和一个正的标量值。此参数仅在以下情况下有效:“距离”
是“明可夫斯基”
.
例子:“指数”,3
数据类型:仅有一个的
|双重的
“包括”
- - - - - -平局包容旗错误的
(默认)|符合事实的
连接包含标志,指定为由逗号分隔的对组成“包括”
以及指示是否预测
包括距离值等于K
最小距离。如果包括
是符合事实的
,预测
包括所有这些邻居。否则,预测
使用完全K
邻居。
例子:“IncludeTies”,真的
数据类型:逻辑
“NSMethod”
- - - - - -最近邻搜索法“kdtree”
|“详尽”
最近邻搜索方法,指定为逗号分隔对,由“NSMethod”
和“kdtree”
或“详尽”
.
“kdtree”
-创建和使用kd树来寻找最近的邻居。“kdtree”
当距离度量值为以下值之一时有效:
“欧几里得”
“cityblock”
“明可夫斯基”
“切比切夫”
“详尽”
-使用穷举搜索算法。当预测新点的等级时xnew
,软件将计算中所有点的距离值X
到xnew
寻找最近的邻居。
默认值是“kdtree”
什么时候X
有10
或更少的列,X
不是稀疏的,距离度量是a“kdtree”
类型否则“详尽”
.
例子:“NSMethod”,“穷举”
“纽曼尼斯堡”
- - - - - -要查找的最近邻居数1
(默认)|正整数值“PredictorNames”
- - - - - -预测器变量名预测器变量名,指定为逗号分隔对,由“PredictorNames”
以及唯一名称的字符串数组或唯一字符向量的单元格数组。的功能“PredictorNames”
这取决于你提供培训数据的方式。
如果你提供X
和Y
,然后您可以使用“PredictorNames”
来给出预测变量X
的名字。
名字的顺序PredictorNames
必须对应于的列顺序X
.就是,PredictorNames {1}
你的名字是什么X(:,1)
,PredictorNames {2}
你的名字是什么X(:,2)
,等等。还有,大小(X, 2)
和numel(预测名称)
必须是相等的。
默认情况下,PredictorNames
是{'x1','x2',…}
.
如果你提供资源描述
,然后您可以使用“PredictorNames”
选择在训练中使用的预测变量。即,菲茨康
仅使用中的预测变量PredictorNames
以及训练中的反应变量。
PredictorNames
必须是Tbl.Properties.VariableNames
并且不能包含响应变量的名称。
默认情况下,PredictorNames
包含所有预测变量的名称。
一个好的实践是指定使用这两种方法进行训练的预测器“PredictorNames”
或公式
只有。
例子:PredictorNames,{‘SepalLength’,‘SepalWidth’,‘PetalLength’,‘PetalWidth}
数据类型:一串
|细胞
“之前”
- - - - - -先验概率“经验”
(默认)|“统一”
|标量值向量|结构每个类的先验概率,指定为逗号分隔对,由“之前”
和表中的一个值。
价值 | 描述 |
---|---|
“经验” |
类先验概率是类的相对频率Y . |
“统一” |
所有类的先验概率都等于1/K哪里K是班级的数量。 |
数值向量 | 每个元素都是一类先验概率。按顺序排列元素Mdl .ClassNames 或者使用一会 名称-值对的论点。软件将元素标准化,使它们相加为1 . |
结构 | 建筑物
|
如果你为两者都设置了值权重
和之前
,将权重重新规范化,使之相加为相应类别中先验概率的值。
例子:“优先”,“制服”
数据类型:烧焦
|一串
|仅有一个的
|双重的
|结构体
“ResponseName”
- - - - - -响应变量名“是的”
(默认)|特征向量|字符串标量响应变量名称,指定为逗号分隔对,由“ResponseName”
以及字符向量或字符串标量。
如果你提供Y
,然后您可以使用“ResponseName”
为响应变量指定名称。
如果你提供ResponseVarName
或公式
,则不能使用“ResponseName”
.
例子:“ResponseName”、“响应”
数据类型:烧焦
|一串
“规模”
- - - - - -距离标度南区运输署(X)
(默认)|非负标量值向量距离比例尺,指定为逗号分隔对,由“规模”
以及包含非负标量值的向量,其长度等于列数X
. 之间的每个坐标差X
查询点由查询点的对应元素进行缩放规模
.此参数仅在以下情况下有效“距离”
是“seuclidean”
.
不能同时指定“标准化”
的,要么“规模”
或“Cov”
.
数据类型:仅有一个的
|双重的
“分数变换”
- - - - - -分数变换“没有”
(默认)|“doublelogit”
|“因弗罗吉特”
|“ismax”
|分对数的
|函数处理| ...分数转换,指定为逗号分隔对,由“分数变换”
以及字符向量、字符串标量或函数句柄。
此表总结了可用的字符向量和字符串标量。
价值 | 描述 |
---|---|
“doublelogit” |
1 / (1 +e2x) |
“因弗罗吉特” |
日志(x/ (1 -x)) |
“ismax” |
将分数最大的班级的分数设置为1,并将所有其他班级的分数设置为0 |
分对数的 |
1 / (1 +e- - - - - -x) |
“没有” 或“身份” |
x(转换) |
“标志” |
1x< 0 为0x= 0 1为x> 0 |
“对称” |
2x– 1 |
“symmetricismax” |
将分数最大的班级的分数设置为1,并将所有其他班级的分数设置为-1 |
“symmetriclogit” |
2/(1 +e- - - - - -x) - 1 |
对于MATLAB函数或您定义的函数,使用其函数句柄进行分数变换。函数句柄必须接受一个矩阵(原始分数)并返回相同大小的矩阵(转换后的分数)。
例子:“ScoreTransform”和“logit”
数据类型:烧焦
|一串
|function_handle
“标准化”
- - - - - -标准化预测值的标志错误的
(默认)|符合事实的
标记来标准化预测器,指定为逗号分隔对,由“标准化”
和符合事实的
(1
)或错误的
(0)
.
如果你设置“标准化”,没错
,然后软件集中并缩放预测数据的每一列(X
)分别按列平均值和标准偏差。
软件没有标准化分类预测值,如果所有预测值都是分类的,则会抛出错误。
不能同时指定“标准化”,1
的,要么“规模”
或“Cov”
.
将预测数据标准化是一种很好的做法。
例子:“标准化”,没错
数据类型:逻辑
“重量”
- - - - - -观察权重资源描述
“坚持”
- - - - - -保留验证的数据分数用于保持有效性验证的部分数据,指定为逗号分隔对,由“坚持”
和范围(0,1)中的标量值。如果指定‘坚持’,p
,则软件完成以下步骤:
随机选择和保留p*100
%将这些数据作为验证数据,并使用其余数据对模型进行训练。
将经过训练的小型模型存储在训练有素的
交叉验证模型的性质。
要创建一个交叉验证的模型,您只能使用以下四个名称-值对参数之一:CVPartition
,坚持
,肯福尔德
或发酵剂
.
例子:“坚持”,0.1
数据类型:双重的
|仅有一个的
“KFold”
- - - - - -折叠次数10
(默认)|大于1的正整数要在交叉验证的模型中使用的折叠数,指定为逗号分隔的对,由“KFold”
和大于1的正整数值。如果指定KFold, k
,则软件完成以下步骤:
将数据随机划分为k
集。
对于每个集合,保留集合作为验证数据,并使用其他集合训练模型k
– 1集。
存储k
细胞中的紧凑、经过训练的模型k
-by-1细胞载体训练有素的
交叉验证模型的性质。
要创建一个交叉验证的模型,您只能使用以下四个名称-值对参数之一:CVPartition
,坚持
,肯福尔德
或发酵剂
.
例子:“KFold”,5
数据类型:仅有一个的
|双重的
“Leaveout”
- - - - - -分析交叉验证标志“关闭”
(默认)|“上”
省略一个交叉验证标志,指定为逗号分隔的对,由“Leaveout”
和“上”
或“关闭”
.如果您指定“Leavout”和“on”
,那么,对于每一个n观察(在哪里n是表中规定的不包括缺失观测的观测数NumObservations
属性),软件完成以下步骤:
保留观测数据作为验证数据,并使用其他数据训练模型n–1观察结果。
存储n紧凑的、经过训练的模型n-by-1细胞载体训练有素的
交叉验证模型的性质。
要创建一个交叉验证的模型,您只能使用以下四个名称-值对参数之一:CVPartition
,坚持
,肯福尔德
或发酵剂
.
例子:“Leavout”和“on”
“优化超参数”
- - - - - -参数优化“没有”
(默认)|“汽车”
|“全部”
|符合条件的参数名称的字符串数组或单元格数组|向量优化变量
对象要优化的参数,指定为逗号分隔对,由“优化超参数”
以及以下其中之一:
“没有”
-不要优化。
“汽车”
-使用{'Distance','numnighbors'}
.
“全部”
-优化所有符合条件的参数。
符合条件的参数名称的字符串数组或单元格数组。
向量优化变量
对象,通常是hyperparameters
.
该优化尝试将交叉验证损失(错误)降至最低菲茨康
通过改变参数。有关交叉验证丢失的信息(尽管在不同的上下文中),请参阅分类损失。要控制交叉验证类型和优化的其他方面,请使用HyperparameterOptimizationOptions
名称-值对。
“优化超参数”
值覆盖使用其他名称-值对参数设置的任何值。例如,设置“优化超参数”
到“汽车”
导致“汽车”
值应用。
符合条件的参数菲茨康
是:
距离
- - - - - -菲茨康
搜索“cityblock”
,“切比切夫”
,“相关”
,“余弦”
,“欧几里得”
,“哈明”
,“jaccard”
,“马哈拉诺比斯”
,“明可夫斯基”
,“seuclidean”
和“枪兵”
.
距离重量
- - - - - -菲茨康
搜索“平等”
,“逆”
和“squaredinverse”
.
指数
- - - - - -菲茨康
默认情况下,在范围内的正实值之间搜索(0.5, 3)
.
NumNeighbors
- - - - - -菲茨康
在正整数中搜索,默认在范围内按对数缩放[1,马克斯(2轮(NumObservations / 2)))
.
标准化
- - - - - -菲茨康
在值之间进行搜索“真的”
和“假”
.
通过传递的向量来设置非默认参数优化变量
具有非默认值的对象。例如,
负载fisheriris参数=超参数(“菲茨康”量,物种);参数(1)。范围=(1、20);
通过params
作为OptimizeHyperparameters
.
默认情况下,在命令行出现迭代显示,并根据优化中超参数的数量出现绘图。对于优化和绘图,目标函数为Log(1 +交叉验证损失)用于回归和分类的误分类率。要控制迭代显示,请设置详细的
领域“HyperparameterOptimizationOptions”
名称-值对的论点。要控制情节,设置ShowPlots
领域“HyperparameterOptimizationOptions”
名称-值对的论点。
例如,请参见优化拟合KNN分类器.
例子:“汽车”
“HyperparameterOptimizationOptions”
- - - - - -优化选项优化选项,指定为逗号分隔对,由“HyperparameterOptimizationOptions”
和一个结构。这个参数修改了OptimizeHyperparameters
名称-值对的论点。结构中的所有字段都是可选的。
字段名 | 值 | 默认的 |
---|---|---|
优化器 |
|
“bayesopt” |
AcquisitionFunctionName |
获取函数的名称包括 |
“expected-improvement-per-second-plus” |
MaxObjectiveEvaluations |
目标函数评估的最大数量。 | 30 对于“bayesopt” 或“随机搜索” ,以及“网格搜索” |
MaxTime |
时间限制,指定为正实数。时间限制以秒为单位,由 |
正 |
NumGridDivisions |
对于“网格搜索” ,每个维度中的值数。该值可以是给出每个维度值数的正整数向量,也可以是适用于所有维度的标量。对于分类变量,此字段将被忽略。 |
10 |
ShowPlots |
指示是否显示绘图的逻辑值。如果符合事实的 ,该域根据迭代次数绘制出最佳目标函数值。如果有一个或两个优化参数,如果优化器 是“bayesopt” 然后ShowPlots 还根据参数绘制了目标函数的模型。 |
符合事实的 |
SaveIntermediateResults |
表示是否保存结果的逻辑值优化器 是“bayesopt” .如果符合事实的 ,此字段将覆盖名为“BayeSotResults” 在每次迭代中,变量是一个BayesianOptimization 对象。 |
错误的 |
详细的 |
显示到命令行。
有关详细信息,请参阅 |
1 |
使用并行 |
指示是否并行运行贝叶斯优化的逻辑值,需要并行计算工具箱™. 由于并行计时的不可再现性,并行贝叶斯优化不一定产生可再现的结果。有关详细信息,请参阅并行贝叶斯优化. | 错误的 |
再分配 |
指示是否在每次迭代时重新划分交叉验证的逻辑值。如果
|
错误的 |
使用以下三个字段名中的一个。 | ||
CVPartition |
一个CVD分区 对象,如所创建的CVD分区 . |
“Kfold”,5 如果未指定任何交叉验证字段 |
坚持 |
范围内的标量(0,1) 代表抵抗分数。 |
|
肯福尔德 |
大于1的整数。 |
例子:“HyperparameterOptimizationOptions”、结构(MaxObjectiveEvaluations, 60)
数据类型:结构体
Mdl
-训练k-最近邻分类模型分类KNN
模型对象|ClassificationPartitionedModel
旨在模型对象训练有素的k-最近邻分类模型,作为分类KNN
模型对象或ClassificationPartitionedModel
旨在模型对象。
如果您设置任何名称-值对参数肯福尔德
,坚持
,CrossVal
或CVPartition
然后Mdl
是一个ClassificationPartitionedModel
旨在模型对象。否则,Mdl
是一个分类KNN
模型对象。
引用Mdl
,使用点符号。例如,要在命令窗口显示距离度量,输入距离
.
在训练模型之后,您可以生成C/ c++代码来预测新数据的标签。生成C/ c++代码需要MATLAB编码器™。有关详情,请参阅代码生成简介.
南斯
或<定义>
S表示观测缺失。下面描述的行为菲茨康
当数据集或权重包含缺失的观测值时。
假设你设置“标准化”,1
.
如果您指定规模
的,要么之前
或权重
,然后用加权标准差对观测距离进行标度。
如果您指定浸
的,要么之前
或权重
,则该软件将加权协方差矩阵应用于距离。换句话说,
在哪里B是指数集吗j观察结果是什么xj没有任何缺少的值和wj没有丢失。
虽然菲茨康
可以训练一个多类KNN分类器,你可以将一个多类学习问题简化为一系列KNN二进制学习者使用fitcecoc
.
要并行运行,请设置“使用并行”
选择符合事实的
.
要执行并行超参数优化,请使用“HyperparameterOptions”、结构(UseParallel,真的)
此函数调用中的名称-值对参数。
有关并行超参数优化的更多信息,请参见并行贝叶斯优化.
有关并行计算的更多一般信息,请参阅使用自动并行支持运行MATLAB函数万博1manbetx(并行计算工具箱)。
你点击一个链接对应于这个MATLAB命令:
通过在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。万博1manbetx
你也可以从以下列表中选择一个网站:
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家/地区网站未针对您所在地的访问进行优化。