合身k最近的邻居分类器
返回一个k-基于表中输入变量(也称为预测器、特征或属性)的最近邻分类模型Mdl
= fitcknn (资源描述
,ResponseVarName
)资源描述
和输出(响应)资源描述。ResponseVarName
.
训练k用于费舍尔的虹膜数据的最终邻居分类器,在哪里k,预测器中最近邻居的数量为5。
载入费雪的虹膜数据。
负载fisheririsX =量;Y =物种;
X
是一个数字矩阵,包含四个花瓣测量150鸢尾。Y
是包含相应虹膜种类的字符向量的细胞阵列。
火车5最接近的邻分类器。标准化非相似的预测器数据。
Mdl=Fitchnn(X,Y,“NumNeighbors”,5,'标准化'1)
Mdl = ClassificationKNN ResponseName: 'Y' CategoricalPredictors: [] ClassNames: {'setosa' 'versicolor' 'virginica'} ScoreTransform: 'none' NumObservations: 150距离:'euclidean' NumNeighbors: 5属性,方法
Mdl
他是一个训练有素的人分类KNN
分类器,它的一些属性出现在命令窗口中。
的属性Mdl
,使用点符号。
Mdl。ClassNames
ans =3 x1细胞{'setosa'} {'versicolor'} {'virginica'}
Mdl。之前
ans =1×30.3333 0.3333 0.3333
Mdl。之前
包含类先验概率,可以使用“之前”
中的名称-值对参数fitcknn
.类先验概率的顺序对应于类的顺序Mdl。ClassNames
.默认情况下,先验概率是数据中类的相对频率。
您还可以在训练后重新设置先验概率。例如,将先验概率分别设置为0.5、0.2和0.3。
Mdl。Prior = [0.5 0.2 0.3];
载入费雪的虹膜数据集。
负载fisheririsX =量;Y =物种;
X
是一个数字矩阵,包含四个花瓣测量150鸢尾。Y
是包含相应虹膜种类的字符向量的细胞阵列。
使用Minkowski度量训练3-最近邻分类器。要使用Minkowski度量,必须使用穷举搜索器。标准化非分类预测数据是一种很好的做法。
Mdl=Fitchnn(X,Y,“NumNeighbors”,3,...'nsmethod',“详尽”,“距离”,闵可夫斯基的,...'标准化'1);
Mdl
是一个分类KNN
分类器。
的属性Mdl
通过双击Mdl
在工作区窗口中。这将打开变量编辑器。
训练k-使用卡方距离的最近邻分类器。
载入费雪的虹膜数据集。
负载fisheririsX =量;%预测Y =物种;%响应
卡方距离j维点x和z是
哪里 重量与尺寸有关吗j.
指定卡方距离函数。距离函数必须:
takeX
,例如,x
,矩阵Z
.
比较x
每一行Z
.
返回一个向量D
的长度
, 在哪里
是行的行数Z
.的每个元素D
观察到的距离是否对应x
每一行对应的观测值Z
.
Chisqrdist = @(x,z,wt)sqrt((bsxfun(@ minus,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),...“NumNeighbors”K'标准化'1);
KNNMdl
是一个分类KNN
分类器。
使用默认的10倍交叉验证交叉验证KNN分类器。检查分类错误。
rng (1);重复性的%CVKNNMdl = crossval (KNNMdl);classError = kfoldLoss (CVKNNMdl)
classError=0.0600
CVKNNMdl
是一个ClassificationPartitionedModel
分类器。
将分类器与使用不同加权方案的分类器进行比较。
w2 = (0.2;0.2;0.3;0.3);CVKNNMdl2 = fitcknn (X, Y,“距离”@ (x, Z) chiSqrDist (x, Z, w2),...“NumNeighbors”K“KFold”10'标准化'1);classError2 = kfoldLoss (CVKNNMdl2)
classError2 = 0.0400
第二个加权方案产生了一个具有更好的样本外性能的分类器。
这个例子展示了如何自动优化超参数使用fitcknn
.该示例使用Fisher Iris数据。
加载数据。
负载fisheririsX =量;Y =物种;
通过使用自动超参数优化,找到最小化五倍交叉验证损失的超参数。
为了重现性,设置随机种子并使用'预期改善加'
采集功能。
rng(1) Mdl = fitcknn(X,Y,“OptimizeHyperparameters”,“汽车”,...“HyperparameterOptimizationOptions”,...结构(“AcquisitionFunctionName”,'预期改善加'))
|=====================================================================================================| | Iter | Eval客观客观| | | BestSoFar | BestSoFar | NumNeighbors距离| | | | |结果运行时| | | (estim(观察) .) | | | |=====================================================================================================||1|Best | 0.026667 | 1.9856 | 0.026667 | 0.026667 | 30 | cosine | | 2 | Accept | 0.04 | 0.5286 | 0.026667 | 0.027197 | 2 | chebychev | | 3 | Accept | 0.19333 | 0.36738 | 0.026667 | 0.030324 | 1 | hamming | | 4 | Accept | 0.33333 | 0.35378 | 0.026667 | 0.033313 | 31 | spearman | | 5 | Best | 0.02 | 0.58534 | 0.02 | 0.020648 | 6 | cosine | | 6 | Accept | 0.073333 | 0.20681 | 0.02 | 0.023082 | 1 | correlation | | 7 | Accept | 0.06 | 0.32763 | 0.02 | 0.020875 | 2 | cityblock | | 8 | Accept | 0.04 | 0.19611 | 0.02 | 0.020622 | 1 | euclidean | | 9 | Accept | 0.24 | 0.3244 | 0.02 | 0.020562 | 74 | mahalanobis | | 10 | Accept | 0.04 | 0.38552 | 0.02 | 0.020649 | 1 | minkowski | | 11 | Accept | 0.053333 | 0.31676 | 0.02 | 0.020722 | 1 | seuclidean | | 12 | Accept | 0.19333 | 0.34392 | 0.02 | 0.020701 | 1 | jaccard | | 13 | Accept | 0.04 | 0.24665 | 0.02 | 0.029203 | 1 | cosine | | 14 | Accept | 0.04 | 0.14708 | 0.02 | 0.031888 | 75 | cosine | | 15 | Accept | 0.04 | 0.20535 | 0.02 | 0.020076 | 1 | cosine | | 16 | Accept | 0.093333 | 0.31971 | 0.02 | 0.020073 | 75 | euclidean | | 17 | Accept | 0.093333 | 0.24077 | 0.02 | 0.02007 | 75 | minkowski | | 18 | Accept | 0.1 | 0.13832 | 0.02 | 0.020061 | 75 | chebychev | | 19 | Accept | 0.15333 | 0.19798 | 0.02 | 0.020044 | 75 | seuclidean | | 20 | Accept | 0.1 | 0.25624 | 0.02 | 0.020044 | 75 | cityblock | |=====================================================================================================| | Iter | Eval | Objective | Objective | BestSoFar | BestSoFar | NumNeighbors | Distance | | | result | | runtime | (observed) | (estim.) | | | |=====================================================================================================| | 21 | Accept | 0.033333 | 0.22756 | 0.02 | 0.020046 | 75 | correlation | | 22 | Accept | 0.033333 | 0.23851 | 0.02 | 0.02656 | 9 | cosine | | 23 | Accept | 0.033333 | 0.32822 | 0.02 | 0.02854 | 9 | cosine | | 24 | Accept | 0.02 | 0.22818 | 0.02 | 0.028607 | 1 | chebychev | | 25 | Accept | 0.02 | 0.25634 | 0.02 | 0.022264 | 1 | chebychev | | 26 | Accept | 0.02 | 0.16229 | 0.02 | 0.021439 | 1 | chebychev | | 27 | Accept | 0.02 | 0.19182 | 0.02 | 0.020999 | 1 | chebychev | | 28 | Accept | 0.66667 | 0.45625 | 0.02 | 0.020008 | 75 | hamming | | 29 | Accept | 0.04 | 0.37585 | 0.02 | 0.020008 | 12 | correlation | | 30 | Best | 0.013333 | 0.29335 | 0.013333 | 0.013351 | 6 | euclidean |
__________________________________________________________ 优化完成。maxobjective达到30个。总函数计算:30总运行时间:65.3436秒总目标函数计算时间:10.4324NumNeighbors Distance ____________ _________ 6欧几里得观测目标函数值= 0.013333估计目标函数值= 0.013351函数评估时间= 0.29335最佳估计可行点(根据模型):NumNeighbors Distance ____________ _________ 6欧几里德估计目标函数值= 0.013351估计函数计算时间= 0.29236
Mdl = ClassificationKNN ResponseName: 'Y' CategoricalPredictors: [] ClassNames: {'setosa' 'versicolor' 'virginica'} ScoreTransform: 'none' NumObservations: 150 HyperparameterOptimizationResults: [1x1 BayesianOptimization] Distance: 'euclidean' NumNeighbors: 6属性,方法
资源描述
- - - - - -样本数据用于培训模型的示例数据,指定为表。每一排资源描述
对应一个观察值,每一列对应一个预测变量。可选地,资源描述
可以为响应变量包含一个额外的列。除了字符向量的单元格数组之外,不允许使用多列变量和单元格数组。
如果资源描述
包含响应变量,并且您希望使用中的所有剩余变量资源描述
作为预测器,然后通过使用指定响应变量ResponseVarName
.
如果资源描述
包含响应变量,并且只想仅使用剩余变量的子集资源描述
作为预测器,然后通过使用公式
.
如果资源描述
不包含响应变量,则使用Y
.响应变量的长度和输入的行数资源描述
必须是相等的。
数据类型:表格
公式
- - - - - -反应变量和预测变量子集的解释模型响应变量的解释模型和预测变量的子集,指定为表单中的字符向量或字符串标量“y〜x1 + x2 + x3”
.在本表格中,Y
表示响应变量,和x1
,x2
,x3
表示预测变量。
中指定变量的子集资源描述
作为训练模型的预测器,使用一个公式。如果你指定一个公式,那么软件不使用任何变量资源描述
没有出现在公式
.
公式中的变量名必须是其中的两个变量名资源描述
(Tbl.Properties.VariableNames
)和有效的MATLAB®标识符。您可以验证变量名资源描述
通过使用isvarname
如果变量名无效,则可以使用matlab.lang.makeValidName
函数。
数据类型:char
|一串
Y
- - - - - -类标签类标签,指定为类别、字符或字符串数组、逻辑或数字向量或字符向量的单元格数组。每一排Y
表示对应行的分类X
.
软件认为南
,''
(空字符向量),""
(空字符串),< >失踪
,<定义>
值Y
丢失值。因此,该软件不会使用缺少响应的观察结果进行训练。
数据类型:分类
|char
|一串
|逻辑
|单
|双倍的
|细胞
X
- - - - - -预测数据预测器数据,指定为数字矩阵。
每一行对应一个观察(也称为实例或示例),每一列对应一个预测变量(也称为特性)。
的长度Y
的行数X
必须是相等的。
以它们的外观顺序指定预测器的名称X
,可以使用PredictorNames
名称-值对的论点。
数据类型:双倍的
|单
指定可选的逗号分隔的对名称,值
参数。的名字
参数名和价值
为对应值。的名字
必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家
.
“NumNeighbors”3“NSMethod”、“穷举”,“距离”,“闵可夫斯基”
使用最近邻搜索方法和Minkowski度量为三个最近邻指定分类器。
请注意
属性中不能同时使用任何交叉验证的名称-值参数“OptimizeHyperparameters”
名称-值参数。可以为。修改交叉验证“OptimizeHyperparameters”
只有使用“HyperparameterOptimizationOptions”
名称-值参数。
BreakTies
- - - - - -打破僵局的算法“最小的”
(默认)|“最近的”
|'随机的'
决胜算法所使用的预测
方法,如果多个类具有相同的最小开销,则指定为由“布朗蒂丝”
以及以下其中之一:
“最小的”
—在绑定组之间使用最小的索引。
“最近的”
- 将课程与最近的邻居一起使用,在绑定组中。
'随机的'
-在平局组中使用随机的平局决胜局。
默认情况下,当多个类在这些类中具有相同数量的最近点时,会发生连接K
最近的邻居。
例子:'Breakties','最近'
BucketSize
- - - - - -节点中的最大数据点50
(默认)|正整数的值叶节点中的最大数据点数kD-tree,指定为逗号分隔的对,由“BucketSize”
和一个正整数。这个参数只有在NSMethod
是“kdtree”
.
例子:“BucketSize”,40岁
数据类型:单
|双倍的
分类预测器
- - - - - -分类预测标志[]
|“所有”
分类预测器标志,指定为逗号分隔对,由“CategoricalPredictors”
以及以下其中之一:
“所有”
-所有的预测都是绝对的。
[]
-没有明确的预测指标。
预测数据fitcknn
要么是连续的,要么是绝对的。
当您设置分类预测器
来“所有”
,默认值距离
是“汉明”
.
例子:“CategoricalPredictors”、“所有”
一会
- - - - - -用于培训的课程名称用于训练的类名,指定为分类数组、字符数组或字符串数组;逻辑或数字向量;或者字符向量的单元格数组。一会
中的响应变量必须具有相同的数据类型资源描述
或Y
.
如果一会
是字符数组,则每个元素必须与数组的一行相对应。
使用一会
:
在培训期间指定课程的顺序。
指定与类顺序相对应的任何输入或输出参数维的顺序。例如,使用一会
指定尺寸的顺序成本
或返回的分类分数的列顺序预测
.
选择用于培训的类的子集。例如,假设集合中所有不同的类名Y
是[“a”、“b”、“c”]
.使用课程的观测训练模型“一种”
和“C”
仅限,指定“类名”,(“a”、“c”)
.
的默认值一会
中响应变量中所有不同类名的集合资源描述
或Y
.
例子:“类名”,(“b”,“g”)
数据类型:分类
|char
|一串
|逻辑
|单
|双倍的
|细胞
浸
- - - - - -协方差矩阵X (X, omitrows)
(默认)|标量值的正定矩阵协方差矩阵,指定为逗号分隔对组成“Cov”
以及计算马氏距离时表示协方差矩阵的标量值的正定矩阵。此参数仅在以下情况下有效“距离”
是“马哈拉诺比斯”
.
您不能同时指定'标准化'
而他们中的任何一个“规模”
或“Cov”
.
数据类型:单
|双倍的
距离
- - - - - -距离度量“城市街区”
|“chebychev”
|“相关”
|'余弦'
|“欧几里得”
|“汉明”
|函数处理|……距离度量,指定为逗号分隔对,由“距离”
和有效的距离度量名称或函数句柄。允许的距离度量名称取决于您对邻居搜索器方法的选择(请参阅NSMethod
).
NSMethod |
距离指标名称 |
---|---|
详尽的 |
任何距离度量ExhaustiveSearcher |
kdtree |
“城市街区” ,“chebychev” ,“欧几里得” ,或闵可夫斯基的 |
此表包括以下各项的有效距离度量:ExhaustiveSearcher
.
距离指标名称 | 描述 |
---|---|
“城市街区” |
城市街区的距离。 |
“chebychev” |
切比切夫距离(最大坐标差)。 |
“相关” |
一减去观察值之间的样本线性相关性(作为值的序列处理)。 |
'余弦' |
1减去观测值之间夹角的余弦值(作为向量处理)。 |
“欧几里得” |
欧氏距离。 |
“汉明” |
汉明距离,坐标差的百分比。 |
“jaccard” |
1减去雅卡尔系数,非零坐标差的百分比。 |
“马哈拉诺比斯” |
马氏距离,用正定协方差矩阵计算C .默认值C 样本协方差矩阵是X ,由X (X, omitrows) .指定一个不同的值C ,可以使用“Cov” 名称-值对的论点。 |
闵可夫斯基的 |
闵可夫斯基距离。默认指数为2 .要指定不同的指数,请使用“指数” 名称-值对的论点。 |
“seuclidean” |
标准化欧几里德距离。每个坐标之间的差异X 查询点被缩放,也就是除以一个缩放值年代 .默认值年代 标准偏差是从X ,S =性病(X, omitnan) .为指定另一个值年代 ,可以使用规模 名称-值对的论点。 |
“斯皮尔曼” |
1减去观察值之间的样本斯皮尔曼等级相关性(作为值的序列处理)。 |
@ |
距离函数处理。 函数ZJ D2 = distfun(子)距离计算%...
|
如果您指定分类预测器
作为“所有”
,则默认距离度量为“汉明”
.否则,默认距离度量为“欧几里得”
.
定义,请参阅距离指标.
例子:“距离”,“闵可夫斯基”
数据类型:char
|一串
|function_handle
距离重量级
- - - - - -距离加权功能“平等”
(默认)|“逆”
|“squaredinverse”
|函数处理距离加权函数,指定为逗号分隔对组成“DistanceWeight”
或者是函数句柄,或者是表中的一个值。
价值 | 描述 |
---|---|
“平等” |
非加权 |
“逆” |
重量是1 /距离 |
“squaredinverse” |
重量是1 /距离2 |
@ |
FCN. 是一个函数,它接受非负距离的矩阵,并返回包含非负距离权值的相同大小的矩阵。例如,“squaredinverse” 相当于@(d) d.^(-2) . |
例子:'timutialweight','逆'
数据类型:char
|一串
|function_handle
指数
- - - - - -闵可夫斯基距离指数2
(默认)|正标量值闵可夫斯基距离指数,指定为逗号分隔对,由“指数”
和一个正标量值。此参数仅在以下情况下有效“距离”
是闵可夫斯基的
.
例子:“指数”,3
数据类型:单
|双倍的
IncludeTies
- - - - - -平局包容旗假
(默认)|真正的
连接包含标志,指定为由逗号分隔的对组成“IncludeTies”
以及指示是否预测
包括距离值等于的所有邻居K
最小距离。如果IncludeTies
是真正的
,预测
包括所有这些邻居。否则,预测
使用完全K
邻居。
例子:“包含”,没错
数据类型:逻辑
NSMethod
- - - - - -最近邻搜索法“kdtree”
|“详尽”
最近邻搜索方法,指定为逗号分隔对,由'nsmethod'
和“kdtree”
或“详尽”
.
“kdtree”
-创建和使用kd树来寻找最近的邻居。“kdtree”
当距离度量为以下情况之一时,为有效:
“欧几里得”
“城市街区”
闵可夫斯基的
“chebychev”
“详尽”
—采用穷举搜索算法。当预测一个新点的等级时xnew
,软件计算所有点的距离值X
来xnew
寻找最近的邻居。
默认值是“kdtree”
什么时候X
有10
或更少的列,X
是不是稀疏还是一种gpuArray
,距离度规是a“kdtree”
类型;否则,“详尽”
.
例子:“NSMethod”、“详尽”
纽曼尼斯堡
- - - - - -要查找的最近邻居的数目1
(默认)|正整数的值PredictorNames
- - - - - -预测器变量名称预测器变量名,指定为具有惟一名称的字符串数组或具有惟一字符向量的单元格数组。的功能PredictorNames
这取决于你提供培训数据的方式。
如果你提供X
和Y
,则可以使用PredictorNames
为中的预测变量指定名称X
.
名字的顺序PredictorNames
必须对应的列顺序X
.那是,PredictorNames {1}
是x(:1)
,PredictorNames {2}
是X(:,2)
, 等等。还,尺寸(X,2)
和元素个数(PredictorNames)
必须是相等的。
默认情况下,PredictorNames
是{x1, x2,…}
.
如果你提供资源描述
,则可以使用PredictorNames
选择在训练中使用的预测变量。那是,fitcknn
仅使用中的预测变量PredictorNames
以及训练过程中的反应变量。
PredictorNames
一定是?的子集Tbl.Properties.VariableNames
且不能包含响应变量的名称。
默认情况下,PredictorNames
包含所有预测变量的名称。
一个好的实践是使用以下两种方法指定训练预测值:PredictorNames
或公式
,但不是两者都有。
例子:“PredictorNames”(“SepalLength”、“SepalWidth”,“PetalLength”,“PetalWidth”)
数据类型:一串
|细胞
之前
- - - - - -事前机率“经验的”
(默认)|“制服”
|标量向量|结构每个类别的先验概率,指定为逗号分隔对,由“之前”
和这个表中的值。
价值 | 描述 |
---|---|
“经验的” |
类先验概率是类的相对频率Y . |
“制服” |
所有类先验概率都等于1/K, 在哪里K是课程的数量。 |
数值向量 | 每个元素都是现有概率的类。根据符合元素Mdl .ClassNames 或者使用一会 名称-值对参数。软件规范化元素,使其总和为1 . |
结构 | 结构
|
如果你为两者都设置了值权重
和之前
时,权重被重归一化,使其与所属类的先验概率值相加。
例子:“优先”,“制服”
数据类型:char
|一串
|单
|双倍的
|结构体
ResponseName
- - - - - -响应变量名“Y”
(默认)|特征向量|字符串标量响应变量名称,指定为字符向量或字符串标量。
如果你提供Y
,则可以使用ResponseName
为响应变量指定名称。
如果你提供ResponseVarName
或公式
,则不能使用ResponseName
.
例子:“ResponseName”、“反应”
数据类型:char
|一串
规模
- - - - - -距离范围内性病(X, omitnan)
(默认)|非负标量值的向量距离比例尺,指定为逗号分隔对,由“规模”
以及包含非负标量值的向量,其长度等于列数X
.每个坐标差X
而一个查询点是由对应的元素缩放的规模
.此参数仅在以下情况下有效“距离”
是“seuclidean”
.
您不能同时指定'标准化'
而他们中的任何一个“规模”
或“Cov”
.
数据类型:单
|双倍的
ScoreTransform
- - - - - -分数转换“没有”
(默认)|“doublelogit”
|“invlogit”
|“ismax”
|“分对数”
|函数处理|……分数转换,指定为字符向量、字符串标量或函数句柄。
此表总结了可用的字符向量和字符串标量。
价值 | 描述 |
---|---|
“doublelogit” |
1 / (1 +e–2x) |
“invlogit” |
日志(x/ (1 –x)) |
“ismax” |
将得分最高的类的分数设置为1,并将所有其他类的分数设置为0 |
“分对数” |
1 / (1 +e- - - - - -x) |
“没有” 或“身份” |
x(转换) |
“标志” |
–1人x< 0 0代表x= 0 1为x> 0 |
“对称” |
2x- 1 |
“symmetricismax” |
将分数最大的班级的分数设置为1,并将所有其他班级的分数设置为-1 |
“symmetriclogit” |
2 / (1 +e- - - - - -x) - 1 |
对于MATLAB函数或您定义的函数,使用其函数句柄进行分数变换。函数句柄必须接受一个矩阵(原始分数)并返回相同大小的矩阵(转换后的分数)。
例子:“ScoreTransform”、“分对数”
数据类型:char
|一串
|function_handle
标准化
- - - - - -标志标准化预测器假
(默认)|真正的
标记来标准化预测器,指定为逗号分隔对,由'标准化'
和真正的
(1
)或假
(0)
.
如果你设置“标准化”,真的
,然后软件中心和缩放预测数据的每一列(X
)通过柱式和标准偏差分别。
软件没有标准化分类预测值,如果所有预测值都是分类的,则会抛出错误。
您不能同时指定'标准化',1
而他们中的任何一个“规模”
或“Cov”
.
良好的做法是为了标准化预测器数据。
例子:“标准化”,真的
数据类型:逻辑
权重
- - - - - -观测权重资源描述
CVPartition
- - - - - -交叉验证分区[]
(默认)|cvpartition
分区对象交叉验证分区,指定为cvpartition
由...创建的分区对象cvpartition
。分区对象指定交叉验证的类型以及训练集和验证集的索引。
要创建一个交叉验证的模型,您只能指定以下四个名称-值参数中的一个:CVPartition
,坚持
,KFold
,或Leaveout
.
例子:假设您使用以下方法创建了一个随机分区,用于对500个观测数据进行5倍交叉验证本量利= cvpartition(500年,“KFold”,5)
。然后,您可以使用指定交叉验证模型“CVPartition”,本量利
.
坚持
- - - - - -阻止验证的数据分数用于抵抗验证的数据的一部分,指定为范围(0,1)中的标量值。如果您指定‘坚持’,p
,则软件完成以下步骤:
随机选择和保留P * 100.
%的数据作为验证数据,并使用其余的数据训练模型。
将经过训练的小型模型存储在训练有素的
交叉验证模型的性质。
要创建一个交叉验证的模型,您只能指定以下四个名称-值参数中的一个:CVPartition
,坚持
,KFold
,或Leaveout
.
例子:“坚持”,0.1
数据类型:双倍的
|单
KFold
- - - - - -折叠次数10
(默认)|大于1的正整数在交叉验证模型中使用的折叠数,指定为大于1的正整数。如果您指定KFold, k
,则软件完成以下步骤:
将数据随机划分为k
集。
对于每个集合,保留该集合作为验证数据,并使用另一个来训练模型k
- 1集。
存储k
紧凑,训练有素的型号k
-by-1细胞载体训练有素的
交叉验证模型的性质。
要创建一个交叉验证的模型,您只能指定以下四个名称-值参数中的一个:CVPartition
,坚持
,KFold
,或Leaveout
.
例子:“KFold”,5
数据类型:单
|双倍的
Leaveout
- - - - - -省略一个交叉验证标志“关闭”
(默认)|“上”
省略一交叉验证标志,指定为“上”
或“关闭”
如果you specify“Leaveout”,“上”
,那么对于每一个n观察(在哪里n不包括遗漏的观测数据,观测数据的数量是否在NumObservations
模型属性),软件完成以下步骤:
保留一个观测值作为验证数据,使用另一个来训练模型n–1观察结果。
存储n紧凑,训练模型在一个n-by-1细胞载体训练有素的
交叉验证模型的性质。
要创建一个交叉验证的模型,您只能指定以下四个名称-值参数中的一个:CVPartition
,坚持
,KFold
,或Leaveout
.
例子:“Leaveout”,“上”
优化超参数
- - - - - -参数优化“没有”
(默认)|“汽车”
|“所有”
|符合条件的参数名称的字符串数组或单元格数组|向量的optimizableVariable
对象要优化的参数,指定为逗号分隔的对“OptimizeHyperparameters”
以及以下其中之一:
“没有”
-不要优化。
“汽车”
- 用{'距离','numneighbors'}
.
“所有”
- 优化所有符合条件的参数。
字符串数组或符合条件参数名称的单元数组。
向量的optimizableVariable
对象,通常是输出hyperparameters
.
优化尝试最小化交叉验证损失(错误)fitcknn
通过改变参数。有关交叉验证丢失的信息(尽管在不同的上下文中),请参阅分类损失.要控制交叉验证类型和其他方面的优化,请使用HyperparameterOptimizationOptions
名称值对。
请注意
的值“OptimizeHyperparameters”
重写使用其他名称-值参数指定的任何值。例如,设置“OptimizeHyperparameters”
来“汽车”
原因fitcknn
对对应的超参数进行优化“汽车”
选项并忽略HyperParameters的任何指定值。
符合条件的参数fitcknn
是:
距离
- - - - - -fitcknn
搜索中“城市街区”
,“chebychev”
,“相关”
,'余弦'
,“欧几里得”
,“汉明”
,“jaccard”
,“马哈拉诺比斯”
,闵可夫斯基的
,“seuclidean”
,“斯皮尔曼”
.
距离重量级
- - - - - -fitcknn
搜索中“平等”
,“逆”
,“squaredinverse”
.
指数
- - - - - -fitcknn
默认情况下,在范围内搜索正的实值(0.5, 3)
.
纽曼尼斯堡
- - - - - -fitcknn
在正整数中搜索,默认在范围内按对数缩放[1,马克斯(2轮(NumObservations / 2)))
.
标准化
- - - - - -fitcknn
在值之间进行搜索“真正的”
和“假”
.
通过传递的向量来设置非默认参数optimizableVariable
具有非默认值的对象。例如,
负载fisheririsparams = hyperparameters(“fitcknn”量,物种);参数(1)。范围=(1、20);
通过参数个数
的价值优化超参数
.
默认情况下,迭代显示出现在命令行,并根据优化中超参数的数量显示绘图。对于优化和绘图,目标函数为误分类率。若要控制迭代显示,请设置详细的
场的“HyperparameterOptimizationOptions”
名称-值参数。要控制情节,设置ShowPlots
场的“HyperparameterOptimizationOptions”
名称-值参数。
例如,请参见优化拟合KNN分类器.
例子:“汽车”
HyperparameterOptimizationOptions
- - - - - -选择优化优化选项,指定为结构。此参数修改优化超参数
名称-值参数。结构中的所有字段都是可选的。
字段名称 | 值 | 默认的 |
---|---|---|
优化器 |
|
“bayesopt” |
AcquisitionFunctionName |
获取函数的名称包括 |
“expected-improvement-per-second-plus” |
MaxObjectiveEvaluations |
最大客观函数评估数。 | 30. 为“bayesopt” 和“随机搜索” ,和整个网格“gridsearch” |
MaxTime |
时间限制,指定为正实标量。时间限制以秒为单位,用 |
正 |
NumGridDivisions |
为“gridsearch” ,每个维度中的值数。该值可以是给出每个维度值数的正整数向量,也可以是适用于所有维度的标量。对于分类变量,此字段将被忽略。 |
10 |
ShowPlots |
指示是否显示绘图的逻辑值。如果真正的 ,该域根据迭代次数绘制最佳观测目标函数值。如果你使用贝叶斯优化(优化器 是“bayesopt” ),则该域也绘制出最佳估计目标函数值。的最佳观测目标函数值和最佳估计目标函数值对应于BestSoFar(观察) 和BestSoFar (estim)。 列的迭代显示,分别。您可以在属性中找到这些值ObjectiveMinimumTrace 和EstimatedObjectiveMinimumTrace 的Mdl。HyperparameterOptimizationResults 如果the problem includes one or two optimization parameters for Bayesian optimization, thenShowPlots 还根据参数绘制目标函数的模型。 |
真正的 |
SaveIntermediateResults |
表示是否保存结果的逻辑值优化器 是“bayesopt” 如果真正的 ,此字段将覆盖名为“BayesoptResults” 在每次迭代中,变量是一个BayesianOptimization 对象。 |
假 |
详细的 |
在命令行显示:
具体操作请参见 |
1 |
UseParallel |
逻辑值,指示是否并行运行Bayesian Optimization,这需要并行计算工具箱™。由于并行时序的不可递容性,并行贝叶斯优化不一定会产生可重复的结果。有关详细信息,请参阅平行的贝叶斯优化. | 假 |
再分配 |
指示是否在每次迭代时重新划分交叉验证的逻辑值。如果这个字段是 那个设定 |
假 |
使用以下三个选项中的任意一个。 | ||
CVPartition |
一个cvpartition 对象,由创建的cvpartition |
“Kfold”,5 如果您没有指定交叉验证字段 |
坚持 |
范围内的标量(0,1) 代表保持部分 |
|
肯福尔德 |
大于1的整数 |
例子:“HyperparameterOptimizationOptions”、结构(MaxObjectiveEvaluations, 60)
数据类型:结构体
Mdl
——培训k-最近邻分类模型分类KNN
模型对象|ClassificationPartitionedModel
旨在模型对象训练有素的k- 最终邻居分类模型,作为一个返回分类KNN
模型对象或ClassificationPartitionedModel
旨在模型对象。
如果您设置任何名称-值对参数KFold
,坚持
,CrossVal
,或CVPartition
,然后Mdl
是一个ClassificationPartitionedModel
旨在模型对象。否则,Mdl
是一个分类KNN
模型对象。
引用Mdl
,使用点符号。例如,要在命令窗口显示距离度量,输入Mdl。D我stance
.
在训练模型之后,您可以生成C/ c++代码来预测新数据的标签。生成C/ c++代码需要Matlab Coder™.有关详细信息,请参阅代码生成简介.
南斯
或<定义>
s表示缺少观测值。以下描述fitcknn
当数据集或权重包含缺失的观测值时。
假设你设置了“标准化”,真的
.
如果您指定规模
而他们中的任何一个之前
或权重
,然后用加权标准差对观测距离进行标度。
如果您指定浸
而他们中的任何一个之前
或权重
,则该软件将加权协方差矩阵应用于距离。换句话说,
虽然fitcknn
可以训练一个多类KNN分类器,你可以将一个多类学习问题简化为一系列KNN二进制学习者使用fitcecoc
.
要执行并行超参数优化,请使用“HyperparameterOptimizationOptions”、结构(UseParallel,真的)
的名称-值参数fitcknn
函数。
有关并行超参数优化的更多信息,请参见平行的贝叶斯优化.
有关并行计算的一般信息,请参见运行MATLAB函数与自动并行支持金宝app(并行计算工具箱).
使用说明和限制:
默认情况下,fitcknn
采用穷举最近邻搜索算法gpuArray
输入参数。
不能指定名称值参数'nsmethod'
作为“kdtree”
.
不能指定名称值参数“距离”
作为函数句柄。
不能指定名称值参数“IncludeTies”
作为真正的
.
fitcknn
返回在这些情况下拟合有GPU数组输入参数的分类模型:
输入参数X
是一个gpuArray
.
输入参数资源描述
包含gpuArray
元素。
有关更多信息,请参阅在GPU上运行MATLAB函数(并行计算工具箱).
Hai Fatto Clic Su Un Collegamento Che Corlisponde A Questo Comando Matlab:
Esegui il comando inserendolo nella finestra di comando MATLAB。我浏览器web非supportano金宝app I命令MATLAB。
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。