fitcecocgydF4y2Ba

适合支持向量机或其他分类器的多类模型万博1manbetxgydF4y2Ba

描述gydF4y2Ba

MdlgydF4y2Ba= fitcecoc (gydF4y2Ba资源描述gydF4y2Ba,gydF4y2BaResponseVarNamegydF4y2Ba)gydF4y2Ba返回一个完整的,训练过的,多类的,gydF4y2Ba纠错输出码(ECOC)模型gydF4y2Ba使用表中的预测器gydF4y2Ba资源描述gydF4y2Ba和类标签gydF4y2Ba资源描述。ResponseVarNamegydF4y2Ba.gydF4y2BafitcecocgydF4y2Ba使用gydF4y2BaKgydF4y2Ba(gydF4y2BaKgydF4y2Ba- 1)/2个二进制支持向量万博1manbetx机(SVM)模型使用一对一gydF4y2Ba编码设计gydF4y2Ba,在那里gydF4y2BaKgydF4y2Ba是惟一类标签(级别)的数量。gydF4y2BaMdlgydF4y2Ba是一个gydF4y2BaClassificationECOCgydF4y2Ba模型。gydF4y2Ba

MdlgydF4y2Ba= fitcecoc (gydF4y2Ba资源描述gydF4y2Ba,gydF4y2Ba公式gydF4y2Ba)gydF4y2Ba返回使用表中的预测器的ECOC模型gydF4y2Ba资源描述gydF4y2Ba和类标签。gydF4y2Ba公式gydF4y2Ba是否有响应的解释模型和预测变量的子集gydF4y2Ba资源描述gydF4y2Ba用于培训。gydF4y2Ba

MdlgydF4y2Ba= fitcecoc (gydF4y2Ba资源描述gydF4y2Ba,gydF4y2BaYgydF4y2Ba)gydF4y2Ba返回使用表中的预测器的ECOC模型gydF4y2Ba资源描述gydF4y2Ba类标签在向量中gydF4y2BaYgydF4y2Ba.gydF4y2Ba

例子gydF4y2Ba

MdlgydF4y2Ba= fitcecoc (gydF4y2BaXgydF4y2Ba,gydF4y2BaYgydF4y2Ba)gydF4y2Ba返回使用预测器的训练过的ECOC模型gydF4y2BaXgydF4y2Ba和类标签gydF4y2BaYgydF4y2Ba.gydF4y2Ba

例子gydF4y2Ba

MdlgydF4y2Ba= fitcecoc (gydF4y2Ba___gydF4y2Ba,gydF4y2Ba名称,值gydF4y2Ba)gydF4y2Ba返回一个ECOC模型,其中包含一个或多个指定的附加选项gydF4y2Ba名称,值gydF4y2Ba对参数,使用任何前面的语法。gydF4y2Ba

例如,指定不同的二进制学习器、不同的编码设计或进行交叉验证。的交叉验证是一种很好的实践gydF4y2BaKfoldgydF4y2Ba名称,值gydF4y2Ba对参数。交叉验证结果决定了模型的泛化程度。gydF4y2Ba

[gydF4y2BaMdlgydF4y2Ba,gydF4y2BaHyperparameterOptimizationResultsgydF4y2Ba) = fitcecoc (gydF4y2Ba___gydF4y2Ba,gydF4y2Ba名称,值gydF4y2Ba)gydF4y2Ba属性时,还返回超参数优化细节gydF4y2BaOptimizeHyperparametersgydF4y2Ba名值对参数并使用线性或核二进制学习器。为其他gydF4y2Ba学习者gydF4y2Ba,gydF4y2BaHyperparameterOptimizationResultsgydF4y2Ba的属性gydF4y2BaMdlgydF4y2Ba包含结果。gydF4y2Ba

例子gydF4y2Ba

全部折叠gydF4y2Ba

利用支持向量机(SVM)二元学习器训练多类纠错输出码(ECOC)模型。万博1manbetxgydF4y2Ba

载入费雪的虹膜数据集。指定预测数据gydF4y2BaXgydF4y2Ba和响应数据gydF4y2BaYgydF4y2Ba.gydF4y2Ba

负载gydF4y2BafisheririsgydF4y2BaX =量;Y =物种;gydF4y2Ba

使用默认选项训练一个多类ECOC模型。gydF4y2Ba

Mdl = fitcecoc (X, Y)gydF4y2Ba
Mdl = ClassificationECOC ResponseName: 'Y' CategoricalPredictors: [] ClassNames: {'setosa' 'versicolor' 'virginica'} ScoreTransform: 'none' binary学习者:{3x1 cell} CodingName: 'onevsone'属性,方法gydF4y2Ba

MdlgydF4y2Ba是一个gydF4y2BaClassificationECOCgydF4y2Ba模型。默认情况下,gydF4y2BafitcecocgydF4y2Ba使用支持向量机二进制学习器和一对一编码设计。您可以访问gydF4y2BaMdlgydF4y2Ba属性使用点表示法。gydF4y2Ba

显示类名和编码设计矩阵。gydF4y2Ba

Mdl。Cl一个年代年代的名字年代gydF4y2Ba
ans =gydF4y2Ba3 x1细胞gydF4y2Ba{'setosa'} {'versicolor'} {'virginica'}gydF4y2Ba
CodingMat = Mdl。CodingMatrixgydF4y2Ba
CodingMat =gydF4y2Ba3×3gydF4y2Ba1 1 0 -1 0 1 0 -1gydF4y2Ba

针对三个类的一对一编码设计产生三个二进制学习者。的列gydF4y2BaCodingMatgydF4y2Ba对应的是学习者,行对应的是类。类的顺序与中的顺序相同gydF4y2BaMdl。Cl一个年代年代的名字年代gydF4y2Ba.例如,gydF4y2BaCodingMat (: 1)gydF4y2Ba是gydF4y2Ba(1;1;0]gydF4y2Ba并表明该软件使用分类为的所有观察值来训练第一个SVM二元学习器gydF4y2Ba“setosa”gydF4y2Ba而且gydF4y2Ba“多色的”gydF4y2Ba.因为gydF4y2Ba“setosa”gydF4y2Ba对应于gydF4y2Ba1gydF4y2Ba,是正类;gydF4y2Ba“多色的”gydF4y2Ba对应于gydF4y2Ba1gydF4y2Ba,所以它是负类。gydF4y2Ba

您可以使用单元索引和点表示法访问每个二进制学习器。gydF4y2Ba

Mdl。BinaryLearners {1}gydF4y2Ba第一个二元学习者gydF4y2Ba
ans = classreg.learning.classif.CompactClassificationSVM ResponseName: 'Y' CategoricalPredictors: [] ClassNames: [-1 1] ScoreTransform: 'none' Beta: [4x1 double]偏差:1.4505 KernelParameters: [1x1 struct]属性,方法gydF4y2Ba

计算替换分类误差。gydF4y2Ba

错误= resubLoss (Mdl)gydF4y2Ba
错误= 0.0067gydF4y2Ba

训练数据的分类误差较小,但分类器可能是一个过拟合模型。您可以使用gydF4y2BacrossvalgydF4y2Ba并计算交叉验证的分类误差。gydF4y2Ba

训练一个由多个二元线性分类模型组成的ECOC模型。gydF4y2Ba

加载NLP数据集。gydF4y2Ba

负载gydF4y2BanlpdatagydF4y2Ba

XgydF4y2Ba是稀疏矩阵的预测数据,和gydF4y2BaYgydF4y2Ba是类标签的分类向量。数据中有两个以上的类。gydF4y2Ba

创建一个默认的线性分类模型模板。gydF4y2Ba

t = templateLinear ();gydF4y2Ba

如需调整默认值,请参见gydF4y2Ba名称-值对的观点gydF4y2Ba在gydF4y2BatemplateLineargydF4y2Ba页面。gydF4y2Ba

训练一个由多个二进制线性分类模型组成的ECOC模型,该模型可以根据文档网页上单词的频率分布来识别产品。为了更快的训练时间,转置预测器数据,并指定观察对应的列。gydF4y2Ba

X = X ';rng (1);gydF4y2Ba%的再现性gydF4y2BaMdl = fitcecoc (X, Y,gydF4y2Ba“学习者”gydF4y2BatgydF4y2Ba“ObservationsIn”gydF4y2Ba,gydF4y2Ba“列”gydF4y2Ba)gydF4y2Ba
Mdl = classreg.learning.classif.CompactClassificationECOC ResponseName: 'Y' ClassNames: [1x13 categorical] ScoreTransform: 'none' binary学习者:{78x1 cell} CodingMatrix: [13x78 double]属性,方法gydF4y2Ba

或者,您可以训练一个由默认线性分类模型组成的ECOC模型gydF4y2Ba“学习者”,“线性”gydF4y2Ba.gydF4y2Ba

为了节省内存,gydF4y2BafitcecocgydF4y2Ba返回由线性分类学习者组成的训练过的ECOC模型gydF4y2BaCompactClassificationECOCgydF4y2Ba模型对象。gydF4y2Ba

ECOC分类器与支持向量机二元学习器的交叉验证,估计广义分类误差。gydF4y2Ba

载入费雪的虹膜数据集。指定预测数据gydF4y2BaXgydF4y2Ba和响应数据gydF4y2BaYgydF4y2Ba.gydF4y2Ba

负载gydF4y2BafisheririsgydF4y2BaX =量;Y =物种;rng (1);gydF4y2Ba%的再现性gydF4y2Ba

创建一个SVM模板,并标准化预测器。gydF4y2Ba

t = templateSVM (gydF4y2Ba“标准化”gydF4y2Ba,真正的)gydF4y2Ba
t =拟合模板用于分类支持向量机。Alpha: [0x1 double] BoxConstraint: [] CacheSize: [] CachingMethod: " ClipAlphas: [] DeltaGradientTolerance: [] Epsilon: [] GapTolerance: [] kktttolerance: [] IterationLimit: [] KernelFunction: " KernelScale: [] KernelOffset: [] kernelpolyialorder: [] NumPrint: [] Nu: [] OutlierFraction: [] removeduplduplations: [] ShrinkagePeriod: [] Solver: " standzedata: 1 SaveSuppo万博1manbetxrtVectors: [] VerbosityLevel: [] Version: 2方法:'SVM'类型:'classification'gydF4y2Ba

tgydF4y2Ba为SVM模板。大多数模板对象属性都是空的。当训练ECOC分类器时,软件将适用的属性设置为默认值。gydF4y2Ba

训练ECOC分类器,并指定类顺序。gydF4y2Ba

Mdl = fitcecoc (X, Y,gydF4y2Ba“学习者”gydF4y2BatgydF4y2Ba...gydF4y2Ba“类名”gydF4y2Ba,{gydF4y2Ba“setosa”gydF4y2Ba,gydF4y2Ba“多色的”gydF4y2Ba,gydF4y2Ba“virginica”gydF4y2Ba});gydF4y2Ba

MdlgydF4y2Ba是一个gydF4y2BaClassificationECOCgydF4y2Ba分类器。您可以使用点表示法访问它的属性。gydF4y2Ba

旨在gydF4y2BaMdlgydF4y2Ba使用10倍交叉验证。gydF4y2Ba

CVMdl = crossval (Mdl);gydF4y2Ba

CVMdlgydF4y2Ba是一个gydF4y2BaClassificationPartitionedECOCgydF4y2Ba旨在ECOC分类器。gydF4y2Ba

估计广义分类误差。gydF4y2Ba

genError = kfoldLoss (CVMdl)gydF4y2Ba
genError = 0.0400gydF4y2Ba

广义分类误差为4%,说明ECOC分类器具有较好的泛化能力。gydF4y2Ba

使用支持向量机二元学习器训练ECOC分类器。首先预测训练样本标签和类后验概率。然后预测网格中每个点的最大类后验概率。可视化结果。gydF4y2Ba

载入费雪的虹膜数据集。将花瓣尺寸指定为预测器,将物种名称指定为响应。gydF4y2Ba

负载gydF4y2BafisheririsgydF4y2BaX =量(:,3:4);Y =物种;rng (1);gydF4y2Ba%的再现性gydF4y2Ba

创建支持向量机模板标准化预测器,并指定高斯核。gydF4y2Ba

t = templateSVM (gydF4y2Ba“标准化”gydF4y2Ba,真的,gydF4y2Ba“KernelFunction”gydF4y2Ba,gydF4y2Ba“高斯”gydF4y2Ba);gydF4y2Ba

tgydF4y2Ba为SVM模板。它的大部分属性都是空的。当软件训练ECOC分类器时,它将适用的属性设置为默认值。gydF4y2Ba

使用SVM模板训练ECOC分类器。将分类分数转换为类后验概率(由gydF4y2Ba预测gydF4y2Ba或gydF4y2BaresubPredictgydF4y2Ba)使用gydF4y2Ba“FitPosterior”gydF4y2Ba名称-值对的论点。方法指定类顺序gydF4y2Ba“类名”gydF4y2Ba名称-值对的论点。控件在训练期间显示诊断消息gydF4y2Ba“详细”gydF4y2Ba名称-值对的论点。gydF4y2Ba

Mdl = fitcecoc (X, Y,gydF4y2Ba“学习者”gydF4y2BatgydF4y2Ba“FitPosterior”gydF4y2Ba,真的,gydF4y2Ba...gydF4y2Ba“类名”gydF4y2Ba,{gydF4y2Ba“setosa”gydF4y2Ba,gydF4y2Ba“多色的”gydF4y2Ba,gydF4y2Ba“virginica”gydF4y2Ba},gydF4y2Ba...gydF4y2Ba“详细”gydF4y2Ba2);gydF4y2Ba
用50个消极观察和50个积极观察来训练3个二元学习者1 (SVM)。负类指标:2正类指标:1拟合学习者1的后验概率(SVM)。训练3个二元学习者2 (SVM),其中50个是消极的,50个是积极的。负类指标:3正类指标:1拟合学习者2的后验概率(SVM)。训练3个二元学习者中的第3个(SVM),有50个消极观察和50个积极观察。负类指标:3正类指标:2拟合学习者3的后验概率(SVM)。gydF4y2Ba

MdlgydF4y2Ba是一个gydF4y2BaClassificationECOCgydF4y2Ba模型。相同的SVM模板适用于每个二元学习器,但是您可以通过传入模板的单元格向量来调整每个二元学习器的选项。gydF4y2Ba

预测训练样本标签和类后验概率。类的后验概率在计算标签和类后验概率期间显示诊断消息gydF4y2Ba“详细”gydF4y2Ba名称-值对的论点。gydF4y2Ba

[标签,~,~,后]= resubPredict (Mdl,gydF4y2Ba“详细”gydF4y2Ba1);gydF4y2Ba
所有学习者的预测都经过了计算。计算了所有观测值的损失。计算后验概率…gydF4y2Ba
Mdl。BinaryLossgydF4y2Ba
ans =“二次”gydF4y2Ba

该软件将一个观测值分配给产生最小平均二进制损耗的类。因为所有的二元学习者都在计算后验概率,所以二元损失函数为gydF4y2Ba二次gydF4y2Ba.gydF4y2Ba

显示结果的随机集合。gydF4y2Ba

idx = randsample(大小(X, 1), 10日1);Mdl。Cl一个年代年代的名字年代gydF4y2Ba
ans =gydF4y2Ba3 x1细胞gydF4y2Ba{'setosa'} {'versicolor'} {'virginica'}gydF4y2Ba
表(Y (idx)、标签(idx)、后(idx:)gydF4y2Ba...gydF4y2Ba“VariableNames”gydF4y2Ba,{gydF4y2Ba“TrueLabel”gydF4y2Ba,gydF4y2Ba“PredLabel”gydF4y2Ba,gydF4y2Ba“后”gydF4y2Ba})gydF4y2Ba
ans =gydF4y2Ba10×3表gydF4y2BaTrueLabel PredLabel后路____________________________ ______________________________________ {'virginica'} {'virginica'} 0.0039316 0.0039864 0.99208 {'virginica'}} 0.017065 0.018261 0.96467 {'virginica'} {0.014946 0.015854 0.9692 {'versicolor'} 0.014318 0.12682 {'setosa'} {'setosa'} 0.999 0.00025091 0.0007464 {'versicolor'} {'virginica'} 2.2194e-14 0.059423 0.94058 {'versicolor'} {'versicolor'} 2.2194e-14 0.97002 0.029983{'setosa'} {'setosa'} 0.999 0.00024989 0.00074741 {'versicolor'} {'versicolor'} 0.0085637 0.98259 0.0088481 {'setosa'} {'setosa'} 0.999 0.00025012 0.00074719gydF4y2Ba

的列gydF4y2Ba后gydF4y2Ba对应的类顺序gydF4y2BaMdl。Cl一个年代年代的名字年代gydF4y2Ba.gydF4y2Ba

在观察到的预测器空间中定义一个值的网格。预测网格中每个实例的后验概率。gydF4y2Ba

xMax = max (X);xMin = min (X);x1Pts = linspace (xMin (1) xMax (1));xMax x2Pts = linspace (xMin (2), (2));[x1Grid, x2Grid] = meshgrid (x1Pts x2Pts);[~, ~, ~, PosteriorRegion] =预测(Mdl, [x1Grid (:), x2Grid (:)));gydF4y2Ba

对于网格上的每个坐标,绘制所有类中的最大类后验概率。gydF4y2Ba

contourf (x1Grid x2Grid,gydF4y2Ba...gydF4y2Ba重塑(max (PosteriorRegion[], 2),大小(x1Grid, 1),大小(x1Grid, 2)));h = colorbar;h.YLabel.String =gydF4y2Ba最大后验的gydF4y2Ba;h.YLabel.FontSize = 15;持有gydF4y2Ba在gydF4y2Bagh = gscatter (X (: 1), X (:, 2), Y,gydF4y2Ba“krk”gydF4y2Ba,gydF4y2Ba‘* xd‘gydF4y2Ba8);gh(2)。l我neW我dth = 2; gh(3).LineWidth = 2; title(“虹膜花瓣测量和最大后验”gydF4y2Ba)包含(gydF4y2Ba“花瓣长度(厘米)”gydF4y2Ba) ylabel (gydF4y2Ba“花瓣宽度(cm)”gydF4y2Ba)轴gydF4y2Ba紧gydF4y2Ba传奇(gh,gydF4y2Ba“位置”gydF4y2Ba,gydF4y2Ba“西北”gydF4y2Ba)举行gydF4y2Ba从gydF4y2Ba

训练一个单对所有的ECOC分类器gydF4y2BaGentleBoostgydF4y2Ba具有代理分割的决策树集成。为了加速训练,摒弃数值预测器并使用并行计算。Binning仅在以下情况下有效gydF4y2BafitcecocgydF4y2Ba使用树学习器。训练结束后,使用10倍交叉验证估计分类误差。注意,并行计算需要并行计算工具箱™。gydF4y2Ba

加载示例数据gydF4y2Ba

加载和检查gydF4y2Ba心律失常gydF4y2Ba数据集。gydF4y2Ba

负载gydF4y2Ba心律失常gydF4y2Ba(氮、磷)大小(X) =gydF4y2Ba
n = 452gydF4y2Ba
p = 279gydF4y2Ba
isLabels =独特(Y);nLabels =元素个数(isLabels)gydF4y2Ba
nLabels = 13gydF4y2Ba
汇总(分类(Y))gydF4y2Ba
数值计数百分比1 245 54.20% 2 44 9.73% 3 15 3.32% 4 15 3.32% 5 13 2.88% 6 25 5.53% 73 0.66% 8 2 0.44% 99 1.99% 10 50 11.06% 14 4 0.88% 15 5 1.11% 16 22 4.87%gydF4y2Ba

数据集包含gydF4y2Ba279gydF4y2Ba的样本量gydF4y2Ba452gydF4y2Ba相对较小。在16个不同的标签中,只有13个在响应(gydF4y2BaYgydF4y2Ba).每个标签描述不同程度的心律失常,54.20%的观察是在课堂上进行的gydF4y2Ba1gydF4y2Ba.gydF4y2Ba

训练一对全ECOC分类器gydF4y2Ba

创建一个集成模板。您必须指定至少三个参数:方法、若干学习者和学习者的类型。对于本例,指定gydF4y2Ba“GentleBoost”gydF4y2Ba的方法,gydF4y2BaOne hundred.gydF4y2Ba对于学习者的数量,和一个使用代理分割的决策树模板,因为有遗漏的观察。gydF4y2Ba

tTree = templateTree (gydF4y2Ba“代孕”gydF4y2Ba,gydF4y2Ba“上”gydF4y2Ba);tEnsemble = templateEnsemble (gydF4y2Ba“GentleBoost”gydF4y2Ba, 100年,tTree);gydF4y2Ba

tEnsemblegydF4y2Ba模板对象。它的大多数属性都是空的,但在训练过程中,软件会用默认值填充它们。gydF4y2Ba

使用决策树集合作为二元学习者来训练一个单对全的ECOC分类器。要加速训练,请使用分箱和并行计算。gydF4y2Ba

  • 装箱(gydF4y2Ba“NumBins”,50岁gydF4y2Ba)—当您有一个大的训练数据集时,您可以通过使用gydF4y2Ba“NumBins”gydF4y2Ba名称-值对的论点。这个论点只有在gydF4y2BafitcecocgydF4y2Ba使用树学习器。如果指定gydF4y2Ba“NumBins”gydF4y2Ba值,然后软件将每个数字预测器分类到指定数量的等概率分类中,然后在分类索引上生长树,而不是原始数据。你可以试着gydF4y2Ba“NumBins”,50岁gydF4y2Ba先改,再改gydF4y2Ba“NumBins”gydF4y2Ba值取决于准确性和训练速度。gydF4y2Ba

  • 并行计算(gydF4y2Ba“选项”,statset (UseParallel,真的)gydF4y2Ba) -使用并行计算工具箱许可证,您可以通过使用并行计算来加快计算速度,它将每个二进制学习者发送到池中的一个工作者。工作人员的数量取决于您的系统配置。当你对二元学习者使用决策树时,gydF4y2BafitcecocgydF4y2Ba并行训练使用英特尔®线程构建块(TBB)双核系统及以上。因此,指定gydF4y2Ba“UseParallel”gydF4y2Ba选项在单个计算机上没有帮助。在集群上使用此选项。gydF4y2Ba

另外,指定先验概率为1/gydF4y2BaKgydF4y2Ba,在那里gydF4y2BaKgydF4y2Ba= 13是不同类的数量。gydF4y2Ba

选择= statset (gydF4y2Ba“UseParallel”gydF4y2Ba,真正的);Mdl = fitcecoc (X, Y,gydF4y2Ba“编码”gydF4y2Ba,gydF4y2Ba“onevsall”gydF4y2Ba,gydF4y2Ba“学习者”gydF4y2BatEnsemble,gydF4y2Ba...gydF4y2Ba“之前”gydF4y2Ba,gydF4y2Ba“统一”gydF4y2Ba,gydF4y2Ba“NumBins”gydF4y2Ba, 50岁,gydF4y2Ba“选项”gydF4y2Ba、选择);gydF4y2Ba
使用“本地”配置文件启动并行池(parpool)…连接到并行池(工作人员数量:6)。gydF4y2Ba

MdlgydF4y2Ba是一个gydF4y2BaClassificationECOCgydF4y2Ba模型。gydF4y2Ba

交叉验证gydF4y2Ba

使用10倍交叉验证交叉验证ECOC分类器。gydF4y2Ba

CVMdl = crossval (Mdl,gydF4y2Ba“选项”gydF4y2Ba、选择);gydF4y2Ba
警告:一个或多个折叠不包含所有组的点。gydF4y2Ba

CVMdlgydF4y2Ba是一个gydF4y2BaClassificationPartitionedECOCgydF4y2Ba模型。该警告表示,当软件训练至少一次时,有些类没有表示。因此,这些折叠不能预测缺失类的标签。您可以使用单元格索引和点表示法检查折叠的结果。例如,通过输入访问第一次折叠的结果gydF4y2BaCVMdl。训练有素的{1}gydF4y2Ba.gydF4y2Ba

使用交叉验证的ECOC分类器来预测验证折叠标签。你可以通过使用计算混淆矩阵gydF4y2BaconfusionchartgydF4y2Ba.通过更改内部位置属性来移动和调整图表的大小,以确保百分比出现在行摘要中。gydF4y2Ba

oofLabel = kfoldPredict (CVMdl,gydF4y2Ba“选项”gydF4y2Ba、选择);ConfMat = confusionchart (Y, oofLabel,gydF4y2Ba“RowSummary”gydF4y2Ba,gydF4y2Ba“total-normalized”gydF4y2Ba);ConfMat。在nerPosition = [0.10 0.12 0.85 0.85];

复制分箱数据gydF4y2Ba

方法重新生成归档的预测器数据gydF4y2BaBinEdgesgydF4y2Ba训练模型的性质和gydF4y2Ba离散化gydF4y2Ba函数。gydF4y2Ba

X = Mdl.X;gydF4y2Ba%的预测数据gydF4y2BaXbinned = 0(大小(X));边缘= Mdl.BinEdges;gydF4y2Ba查找已装箱预测器的索引。gydF4y2BaidxNumeric =找到(~ cellfun (@isempty边缘));gydF4y2Ba如果gydF4y2Baiscolumn(idxNumeric) idxNumeric = idxNumeric';gydF4y2Ba结束gydF4y2Ba为gydF4y2Baj = idxNumeric x = x (:,j);gydF4y2Ba如果x是表,则将x转换为数组。gydF4y2Ba如果gydF4y2Ba稳定(x) x = table2array(x);gydF4y2Ba结束gydF4y2Ba使用离散化函数将x分组到箱子中。gydF4y2Baxbinned =离散化(x,[无穷;边缘{};正]);Xbinned (:, j) = Xbinned;gydF4y2Ba结束gydF4y2Ba

XbinnedgydF4y2Ba包含数值预测器的bin索引,范围从1到bin的数量。gydF4y2BaXbinnedgydF4y2Ba值是gydF4y2Ba0gydF4y2Ba分类预测。如果gydF4y2BaXgydF4y2Ba包含gydF4y2Ba南gydF4y2BaS,那么对应的gydF4y2BaXbinnedgydF4y2Ba值是gydF4y2Ba南gydF4y2Ba年代。gydF4y2Ba

自动优化超参数使用gydF4y2BafitcecocgydF4y2Ba.gydF4y2Ba

加载gydF4y2BafisheririsgydF4y2Ba数据集。gydF4y2Ba

负载gydF4y2BafisheririsgydF4y2BaX =量;Y =物种;gydF4y2Ba

通过使用自动超参数优化找到最小化五倍交叉验证损失的超参数。为了再现性,设置随机种子并使用gydF4y2Ba“expected-improvement-plus”gydF4y2Ba采集功能。gydF4y2Ba

rnggydF4y2Ba默认的gydF4y2BaMdl = fitcecoc (X, Y,gydF4y2Ba“OptimizeHyperparameters”gydF4y2Ba,gydF4y2Ba“汽车”gydF4y2Ba,gydF4y2Ba...gydF4y2Ba“HyperparameterOptimizationOptions”gydF4y2Ba结构(gydF4y2Ba“AcquisitionFunctionName”gydF4y2Ba,gydF4y2Ba...gydF4y2Ba“expected-improvement-plus”gydF4y2Ba))gydF4y2Ba
|====================================================================================================================| | Iter | Eval客观客观| | | BestSoFar | BestSoFar编码| | BoxConstraint | KernelScale | | |结果| |运行时| | (estim(观察) .) | | | | |====================================================================================================================| | 最好1 | | 0.10667 | 3.059 | 0.10667 | 0.10667 | onevsone | 5.6939 | 200.36 |gydF4y2Ba
0.08 | 3.8045 | 0.08 | 0.081379 | one one | 94.849 | 0.0032549 |gydF4y2Ba
| 3 |接受|.08 | 0.23894 | 0.08 | 0.08003 |全部| 0.01378 | 0.076021 |gydF4y2Ba
| 4 |接受| 0.08 | 0.21096 | 0.08 | 0.080001 |全部| 889 | 38.798 |gydF4y2Ba
| 5最佳|.073333 | 0.30401 | 0.073333 | 0.073337 |全部| 17.142 | 1.7174 |gydF4y2Ba
| 6 |接受|.26 | 12.772 | 0.073333 | 0.073337 |全部| 0.88995 | 0.0010029 |gydF4y2Ba
| 7 |接受|.08 | 0.17009 | 0.073333 | 0.073341 |全部| 0.23012 | 0.34633 |gydF4y2Ba
| 0.04 | 0.22662 | 0.04 | 0.040007 | one evsone | 100.53 | 0.10211 |gydF4y2Ba
| 9 |接受| 0.12667 | 0.16848 | 0.04 | 0.04001 | onevsone | 0.0015155 | 0.91412 |gydF4y2Ba
| 10 |接受| 0.046667 | 2.4425 | 0.04 | 0.040017 | onevsone | 931.08 | 0.040024 |gydF4y2Ba
| 0.04 | 0.19873 | 0.04 | 0.040003 | onevsone | 965.69 | 0.36688 |gydF4y2Ba
| 12 |接受| 0.33333 | 0.17024 | 0.04 | 0.040005 | onevsall | 0.0010224 | 17.726 |gydF4y2Ba
| 892.53 | 0.35788 | . | . | . 0.05805 | . 0.04 | . 0.040003 |全部接受|gydF4y2Ba
| 14 |接受| 0.046667 | 0.17873 | 0.04 | 0.039989 | onevsone | 963.47 | 6.6814 |gydF4y2Ba
| 0.0010354 | 0.0010571 | . | 0.017384 | 0.04 | 0.03999 | onevsone | 0.0010354 | 0.0010571 |gydF4y2Ba
| 16 |接受| 0.046667 | 0.16344 | 0.04 | 0.039987 | onevsone | 0.0011208 | 0.0078247 |gydF4y2Ba
| 17 |接受| 0.04 | 0.6233 | 0.04 | 0.039982 | onevsall | 916.38 | 1.868 |gydF4y2Ba
| 18 |接受|.10667 | 0.16093 | 0.04 | 0.039982 | onevsone | 993.53 | 989.56 |gydF4y2Ba
| 19 |接受| 0.04 | 0.17614 | 0.04 | 0.039981 | onevsone | 0.028541 | 0.0037104 |gydF4y2Ba
| 20 |接受| 0.04 | 0.18138 | 0.04 | 0.039991 | onevsone | 0.7471 | 0.0221 |gydF4y2Ba
|====================================================================================================================| | Iter | Eval客观客观| | | BestSoFar | BestSoFar编码| | BoxConstraint | KernelScale | | |结果| |运行时| | (estim(观察) .) | | | | |====================================================================================================================| | 21日|接受| 0.04 | 0.165 | 0.04 | 0.039964 | onevsone | 0.0011513 | 0.0021711 |gydF4y2Ba
| 22 |接受| 0.046667 | 1.7948 | 0.04 | 0.039792 |全部| 978.75 | 1.0047 |gydF4y2Ba
| 23 |接受| 0.04 | 0.16673 | 0.04 | 0.03979 | onevsone | 965.54 | 1.0173 |gydF4y2Ba
| 24 |接受| 0.04 | 0.19985 | 0.04 | 0.039801 | onevsone | 11.578 | 0.048162 |gydF4y2Ba
| 25 |接受| 0.046667 | 0.3368 | 0.04 | 0.039603 | onevsone | 909.35 | 0.1889 |gydF4y2Ba
| 26 |接受| 0.04 | 0.1643 | 0.04 | 0.039541 | onevsone | 82.422 | 0.81772 |gydF4y2Ba
| 27 |接受| 0.04 | 0.16383 | 0.04 | 0.039528 | onevsone | 0.061877 | 0.0080194 |gydF4y2Ba
| 28 |接受| 0.04 | 0.16602 | 0.04 | 0.039658 | onevsone | 0.0050147 | 0.0026878 |gydF4y2Ba
| 29 |接受| 0.04 | 0.16725 | 0.04 | 0.039677 | onevsone | 526.28 | 1.2964 |gydF4y2Ba
| 30 |接受| 0.04 | 0.23983 | 0.04 | 0.039693 | onevsall | 945.22 | 4.473 |gydF4y2Ba

__________________________________________________________ 优化完成。最大目标:达到30。总运行时间:63.9855秒。总目标函数评估时间:36.5691最佳可行观测点:Coding BoxConstraint KernelScale ________ _____________ ___________ onevsone 100.53 0.10211观察目标函数值= 0.04估计目标函数值= 0.040645函数评估时间= 0.22662最佳估计可行点(根据模型):编码盒约束KernelScale ________ _____________ ___________ onevsone 0.0050147 0.0026878估计的目标函数值= 0.039693估计的函数评估时间= 0.16596gydF4y2Ba
Mdl = ClassificationECOC ResponseName: 'Y' CategoricalPredictors: [] ClassNames: {'setosa' 'versicolor' 'virginica'} ScoreTransform: 'none' binary学习者:{3×1 cell} CodingName: 'onevsone' HyperparameterOptimizationResults: [1×1 BayesianOptimization]属性,方法gydF4y2Ba

创建两个高数据训练的多类ECOC模型。其中一个模型使用线性二元学习器,另一个模型使用核二元学习器。比较两种模型的替代分类误差。gydF4y2Ba

通常,您可以使用gydF4y2BafitcecocgydF4y2Ba线性或核二元学习者。当你使用gydF4y2BafitcecocgydF4y2Ba要在高数组上训练模型,不能直接使用SVM二进制学习器。但是,您可以使用使用支持向量机的线性或内核二进制分类模型。gydF4y2Ba

当您在高数组上执行计算时,MATLAB®使用并行池(如果您有并行计算工具箱™则默认)或本地MATLAB会话。如果在拥有并行计算工具箱的情况下,希望使用本地MATLAB会话运行示例,则可以通过使用gydF4y2BamapreducegydF4y2Ba函数。gydF4y2Ba

创建一个引用包含Fisher虹膜数据集的文件夹的数据存储。指定gydF4y2Ba“NA”gydF4y2Ba值作为缺失的数据,因此gydF4y2Ba数据存储gydF4y2Ba取代他们gydF4y2Ba南gydF4y2Ba值。创建预测器和响应数据的高版本。gydF4y2Ba

ds =数据存储(gydF4y2Ba“fisheriris.csv”gydF4y2Ba,gydF4y2Ba“TreatAsMissing”gydF4y2Ba,gydF4y2Ba“NA”gydF4y2Ba);t =高(ds);gydF4y2Ba
使用“本地”配置文件启动并行池(parpool)…连接到并行池(工作人员数量:6)。gydF4y2Ba
X = [t。年代epalLength t.SepalWidth t.PetalLength t.PetalWidth]; Y = t.Species;

标准化预测器数据。gydF4y2Ba

Z = zscore (X);gydF4y2Ba

训练一个使用高数据和线性二元学习者的多类ECOC模型。默认情况下,当您将高数组传递给gydF4y2BafitcecocgydF4y2Ba,该软件训练线性二元学习者使用支持向量机。因为响应数据只包含三个惟一的类,所以将编码方案从1对所有(这是使用高数据时的默认值)更改为1对1(这是使用内存中数据时的默认值)。gydF4y2Ba

为了再现性,设置随机数生成器的种子使用gydF4y2BarnggydF4y2Ba而且gydF4y2BatallrnggydF4y2Ba.根据工作人员的数量和tall数组的执行环境,结果可能有所不同。有关详细信息,请参见gydF4y2Ba控制代码运行的位置gydF4y2Ba(MATLAB)。gydF4y2Ba

rng (gydF4y2Ba“默认”gydF4y2Ba) tallrng (gydF4y2Ba“默认”gydF4y2Ba) mdlLinear = fitcecoc(Z,Y,gydF4y2Ba“编码”gydF4y2Ba,gydF4y2Ba“onevsone”gydF4y2Ba)gydF4y2Ba
训练3个二元学习者中的1(线性)。训练3个二元学习者中的2(线性)。训练二元学习者3(线性)。gydF4y2Ba
mdlLinear = classreg.learning.classif.CompactClassificationECOC ResponseName: 'Y' ClassNames: {'setosa' 'versicolor' 'virginica'} ScoreTransform: 'none' binary学习者:{3×1 cell} CodingMatrix: [3×3 double]属性,方法gydF4y2Ba

mdlLineargydF4y2Ba是一个gydF4y2BaCompactClassificationECOCgydF4y2Ba由三个二元学习者组成的模型。gydF4y2Ba

训练一个使用高数据和内核二进制学习器的多类ECOC模型。首先,创建一个gydF4y2BatemplateKernelgydF4y2Ba对象指定内核二进制学习器的属性;特别是,将展开维度的数量增加到gydF4y2Ba 2gydF4y2Ba 1gydF4y2Ba 6gydF4y2Ba .gydF4y2Ba

tKernel = templateKernel (gydF4y2Ba“NumExpansionDimensions”gydF4y2Ba2 ^ 16)gydF4y2Ba
tKernel =适合内核分类模板。BetaTolerance: [] BlockSize: [] BoxConstraint: [] Epsilon: [] NumExpansionDimensions: 65536 GradientTolerance: [] HessianHistorySize: [] IterationLimit: [] KernelScale: [] Lambda: [] Learner: 'svm' LossFunction: [] Stream: [] VerbosityLevel: [] Version: 1 Method: 'Kernel' Type: 'classification'gydF4y2Ba

默认情况下,内核二进制学习器使用支持向量机。gydF4y2Ba

通过gydF4y2BatemplateKernelgydF4y2Ba对象gydF4y2BafitcecocgydF4y2Ba并将编码方案改为一对一。gydF4y2Ba

mdlKernel = fitcecoc (Z, Y,gydF4y2Ba“学习者”gydF4y2BatKernel,gydF4y2Ba“编码”gydF4y2Ba,gydF4y2Ba“onevsone”gydF4y2Ba)gydF4y2Ba
训练3个二进制学习者中的1个(Kernel)。训练二进制学习者2 (Kernel)中的3个。训练3个二进制学习者中的3 (Kernel)。gydF4y2Ba
mdlKernel = classreg.learning.classif.CompactClassificationECOC ResponseName: 'Y' ClassNames: {'setosa' 'versicolor' 'virginica'} ScoreTransform: 'none' binary学习者:{3×1 cell} CodingMatrix: [3×3 double]属性,方法gydF4y2Ba

mdlKernelgydF4y2Ba也是一个gydF4y2BaCompactClassificationECOCgydF4y2Ba由三个二元学习者组成的模型。gydF4y2Ba

比较两种模型的替代分类误差。gydF4y2Ba

errorLinear =收集(损失(mdlLinear, Z, Y))gydF4y2Ba
使用并行池“local”计算高表达式:-通过1 / 1:在1.5秒内完成计算gydF4y2Ba
errorLinear = 0.0333gydF4y2Ba
errorKernel =收集(损失(mdlKernel, Z, Y))gydF4y2Ba
使用并行池“local”计算高表达式:-通过1 / 1:在17秒内完成计算gydF4y2Ba
errorKernel = 0.0067gydF4y2Ba

mdlKernelgydF4y2Ba错误分类的训练数据比例小于gydF4y2BamdlLineargydF4y2Ba.gydF4y2Ba

输入参数gydF4y2Ba

全部折叠gydF4y2Ba

示例数据,指定为表。每一行的gydF4y2Ba资源描述gydF4y2Ba对应一个观察结果,每一列对应一个预测器。可选地,gydF4y2Ba资源描述gydF4y2Ba可以为响应变量包含一个附加列。不接受多列变量和字符向量的单元格数组以外的单元格数组。gydF4y2Ba

如果gydF4y2Ba资源描述gydF4y2Ba包含响应变量,并且希望在中使用所有剩余变量gydF4y2Ba资源描述gydF4y2Ba作为预测器,然后使用指定响应变量gydF4y2BaResponseVarNamegydF4y2Ba.gydF4y2Ba

如果gydF4y2Ba资源描述gydF4y2Ba包含响应变量,并且您希望仅使用其余变量的子集gydF4y2Ba资源描述gydF4y2Ba作为预测器,指定使用的公式gydF4y2Ba公式gydF4y2Ba.gydF4y2Ba

如果gydF4y2Ba资源描述gydF4y2Ba不包含响应变量,请使用gydF4y2BaYgydF4y2Ba.响应变量的长度和个数gydF4y2Ba资源描述gydF4y2Ba行必须相等。gydF4y2Ba

请注意gydF4y2Ba

为了训练线性或核分类模型,gydF4y2BafitcecocgydF4y2Ba不支持表。万博1manbetx也就是说,如果gydF4y2Ba学习者gydF4y2Ba是gydF4y2Ba“线性”gydF4y2Ba或gydF4y2Ba“内核”gydF4y2Ba,包含一个线性分类模型学习者模板(参见gydF4y2BatemplateLineargydF4y2Ba),或者包含一个内核分类学习器模板(参见gydF4y2BatemplateKernelgydF4y2Ba),你不能供应gydF4y2Ba资源描述gydF4y2Ba,gydF4y2BaResponseVarNamegydF4y2Ba,或gydF4y2Ba公式gydF4y2Ba.提供预测数据矩阵(gydF4y2BaXgydF4y2Ba)及一连串的回应(gydF4y2BaYgydF4y2Ba)。gydF4y2Ba

数据类型:gydF4y2Ba表格gydF4y2Ba

中指定为变量名的响应变量名gydF4y2Ba资源描述gydF4y2Ba.gydF4y2Ba

您必须指定gydF4y2BaResponseVarNamegydF4y2Ba作为字符向量或字符串标量。例如,如果响应变量gydF4y2BaYgydF4y2Ba存储为gydF4y2Ba资源描述。YgydF4y2Ba,然后将其指定为gydF4y2Ba“Y”gydF4y2Ba.的所有列gydF4y2Ba资源描述gydF4y2Ba,包括gydF4y2BaYgydF4y2Ba,作为训练模型时的预测因子。gydF4y2Ba

响应变量必须是类别、字符或字符串数组、逻辑或数字向量,或者字符向量的单元格数组。如果gydF4y2BaYgydF4y2Ba是字符数组,则响应变量的每个元素必须对应于数组的一行。gydF4y2Ba

类指定类的顺序是一个好的实践gydF4y2Ba一会gydF4y2Ba名称-值对的论点。gydF4y2Ba

数据类型:gydF4y2Ba字符gydF4y2Ba|gydF4y2Ba字符串gydF4y2Ba

响应变量和预测变量子集的解释模型,在形式中指定为字符向量或字符串标量gydF4y2Ba“Y ~ X1 + X2 + X3”gydF4y2Ba.在这种形式,gydF4y2BaYgydF4y2Ba表示响应变量,和gydF4y2BaX1gydF4y2Ba,gydF4y2BaX2gydF4y2Ba,gydF4y2BaX3gydF4y2Ba表示预测变量。gydF4y2Ba

中指定变量的子集gydF4y2Ba资源描述gydF4y2Ba使用公式作为训练模型的预测因子。如果您指定了一个公式,那么该软件将不使用任何变量gydF4y2Ba资源描述gydF4y2Ba没有出现在gydF4y2Ba公式gydF4y2Ba.gydF4y2Ba

公式中的变量名必须是gydF4y2Ba资源描述gydF4y2Ba(gydF4y2BaTbl.Properties.VariableNamesgydF4y2Ba)和有效的MATLABgydF4y2Ba®gydF4y2Ba标识符。gydF4y2Ba

中的变量名可以进行验证gydF4y2Ba资源描述gydF4y2Ba通过使用gydF4y2BaisvarnamegydF4y2Ba函数。以下代码返回合乎逻辑的结果gydF4y2Ba1gydF4y2Ba(gydF4y2Ba真正的gydF4y2Ba)用于每个具有有效变量名的变量。gydF4y2Ba

cellfun (@isvarname Tbl.Properties.VariableNames)gydF4y2Ba
如果变量名在gydF4y2Ba资源描述gydF4y2Ba是无效的,那么使用gydF4y2Bamatlab.lang.makeValidNamegydF4y2Ba函数。gydF4y2Ba
Tbl.Properties.VariableNames = matlab.lang.makeValidName (Tbl.Properties.VariableNames);gydF4y2Ba

数据类型:gydF4y2Ba字符gydF4y2Ba|gydF4y2Ba字符串gydF4y2Ba

ECOC模型训练到的类标签,指定为类别、字符或字符串数组、逻辑或数字向量或字符向量的单元格数组。gydF4y2Ba

如果gydF4y2BaYgydF4y2Ba是字符数组,则每个元素必须对应于数组的一行。gydF4y2Ba

的长度gydF4y2BaYgydF4y2Ba的行数gydF4y2Ba资源描述gydF4y2Ba或gydF4y2BaXgydF4y2Ba必须是相等的。gydF4y2Ba

方法指定类顺序是一种很好的实践gydF4y2Ba一会gydF4y2Ba名称-值对的论点。gydF4y2Ba

数据类型:gydF4y2Ba分类gydF4y2Ba|gydF4y2Ba字符gydF4y2Ba|gydF4y2Ba字符串gydF4y2Ba|gydF4y2Ba逻辑gydF4y2Ba|gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba|gydF4y2Ba细胞gydF4y2Ba

预测器数据,指定为全矩阵或稀疏矩阵。gydF4y2Ba

的长度gydF4y2BaYgydF4y2Ba观察到的数量gydF4y2BaXgydF4y2Ba必须是相等的。gydF4y2Ba

以预测符的出现顺序指定它们的名称gydF4y2BaXgydF4y2Ba,可以使用gydF4y2BaPredictorNamesgydF4y2Ba名称-值对的论点。gydF4y2Ba

请注意gydF4y2Ba

  • 对于线性分类的学习者,如果你定向gydF4y2BaXgydF4y2Ba观察结果与列相对应gydF4y2Ba“ObservationsIn”、“列”gydF4y2Ba,那么您可以体验到优化执行时间的显著减少。gydF4y2Ba

  • 对所有其他学习者来说,要有方向gydF4y2BaXgydF4y2Ba所以观察结果对应于行。gydF4y2Ba

  • fitcecocgydF4y2Ba万博1manbetx仅支持稀疏矩阵训练线性分类模型。gydF4y2Ba

数据类型:gydF4y2Ba双gydF4y2Ba|gydF4y2Ba单gydF4y2Ba

请注意gydF4y2Ba

该软件将gydF4y2Ba南gydF4y2Ba,空字符向量(gydF4y2Ba”gydF4y2Ba,空字符串(gydF4y2Ba""gydF4y2Ba),gydF4y2Ba< >失踪gydF4y2Ba,gydF4y2Ba<定义>gydF4y2Ba元素作为缺失的数据。该软件删除行gydF4y2BaXgydF4y2Ba中的缺失值对应gydF4y2BaYgydF4y2Ba.然而,在处理的缺失值gydF4y2BaXgydF4y2Ba不同的二元学习者。有关详细信息,请参见针对您的二进制学习者的训练函数:gydF4y2BafitcdiscrgydF4y2Ba,gydF4y2BafitckernelgydF4y2Ba,gydF4y2BafitcknngydF4y2Ba,gydF4y2BafitclineargydF4y2Ba,gydF4y2BafitcnbgydF4y2Ba,gydF4y2BafitcsvmgydF4y2Ba,gydF4y2BafitctreegydF4y2Ba,或gydF4y2BafitcensemblegydF4y2Ba.删除观察结果会减少有效训练或交叉验证样本量。gydF4y2Ba

名称-值对的观点gydF4y2Ba

指定逗号分隔的可选对gydF4y2Ba名称,值gydF4y2Ba参数。gydF4y2Ba的名字gydF4y2Ba参数名称和gydF4y2Ba价值gydF4y2Ba对应的值。gydF4y2Ba的名字gydF4y2Ba必须出现在引号内。可以以任意顺序指定多个名称和值对参数gydF4y2BaName1, Value1,…,的家gydF4y2Ba.gydF4y2Ba

例子:gydF4y2Ba“学习者”,“树”、“编码”,“onevsone”、“CrossVal”,“上”gydF4y2Ba指定对所有二进制学习器使用决策树,一对一编码设计,并实现10倍交叉验证。gydF4y2Ba

请注意gydF4y2Ba

方法不能使用任何交叉验证名值对参数gydF4y2Ba“OptimizeHyperparameters”gydF4y2Ba名称-值对的论点。的交叉验证gydF4y2Ba“OptimizeHyperparameters”gydF4y2Ba只有使用gydF4y2Ba“HyperparameterOptimizationOptions”gydF4y2Ba名称-值对的论点。gydF4y2Ba

ECOC分类器的选择gydF4y2Ba

全部折叠gydF4y2Ba

编码设计名称,指定为逗号分隔的对gydF4y2Ba“编码”gydF4y2Ba一个数字矩阵或者表格中的一个值。gydF4y2Ba

价值gydF4y2Ba 双语学习者数量gydF4y2Ba 描述gydF4y2Ba
“allpairs”gydF4y2Ba而且gydF4y2Ba“onevsone”gydF4y2Ba KgydF4y2Ba(gydF4y2BaKgydF4y2Ba- 1) / 2gydF4y2Ba 对于每一个二元学习者,一个类别是积极的,另一个是消极的,软件忽略其余的。这种设计用尽了类对分配的所有组合。gydF4y2Ba
“binarycomplete”gydF4y2Ba 2gydF4y2Ba (gydF4y2Ba KgydF4y2Ba −gydF4y2Ba 1gydF4y2Ba )gydF4y2Ba −gydF4y2Ba 1gydF4y2Ba 这种设计将类划分为所有的二进制组合,并且不忽略任何类。对于每个二元学习者,所有的课堂作业都是gydF4y2Ba-1gydF4y2Ba而且gydF4y2Ba1gydF4y2Ba作业中至少有一个正负类。gydF4y2Ba
“denserandom”gydF4y2Ba 随机,但大约10个日志gydF4y2Ba2gydF4y2BaKgydF4y2Ba 对于每一个二元学习者,软件随机地将类分为正类和负类,每种类型至少有一个。有关更多细节,请参见gydF4y2Ba随机编码设计矩阵gydF4y2Ba.gydF4y2Ba
“onevsall”gydF4y2Ba KgydF4y2Ba 对于每一个二元学习者,一类是积极的,其余的是消极的。这种设计用尽了所有积极的课堂作业的组合。gydF4y2Ba
“顺序”gydF4y2Ba KgydF4y2Ba- 1gydF4y2Ba 对于第一个二元学习者来说,第一堂课是负的,其余的都是正的。对于第二个二元学习者,前两个类别是消极的,其余的是积极的,依此类推。gydF4y2Ba
“sparserandom”gydF4y2Ba 随机,但大约15个日志gydF4y2Ba2gydF4y2BaKgydF4y2Ba 对于每一个二元学习者,软件随机分配正或负的类别,每个类别的概率为0.25,忽略概率为0.5的类别。有关更多细节,请参见gydF4y2Ba随机编码设计矩阵gydF4y2Ba.gydF4y2Ba
“ternarycomplete”gydF4y2Ba (gydF4y2Ba 3.gydF4y2Ba KgydF4y2Ba −gydF4y2Ba 2gydF4y2Ba (gydF4y2Ba KgydF4y2Ba +gydF4y2Ba 1gydF4y2Ba )gydF4y2Ba +gydF4y2Ba 1gydF4y2Ba )gydF4y2Ba /gydF4y2Ba 2gydF4y2Ba 这种设计将类划分为所有三元组合。所有的课堂作业gydF4y2Ba0gydF4y2Ba,gydF4y2Ba-1gydF4y2Ba,gydF4y2Ba1gydF4y2Ba作业中至少有一个积极的和一个消极的类。gydF4y2Ba

还可以使用自定义编码矩阵指定编码设计。自定义编码矩阵是agydF4y2BaKgydF4y2Ba——- - - - - -gydF4y2BalgydF4y2Ba矩阵。每一行对应一个类,每列对应一个二元学习者。类顺序(行)对应于中的顺序gydF4y2Ba一会gydF4y2Ba.按照以下准则编写矩阵:gydF4y2Ba

  • 自定义编码矩阵的每个元素都必须是gydF4y2Ba-1gydF4y2Ba,gydF4y2Ba0gydF4y2Ba,或gydF4y2Ba1gydF4y2Ba,且该值必须对应于二分类赋值。该表描述的含义gydF4y2Ba编码(i, j)gydF4y2Ba,即班谓学习者gydF4y2BajgydF4y2Ba分配给课堂上的观察gydF4y2Ba我gydF4y2Ba.gydF4y2Ba

    价值gydF4y2Ba 两个类的任务gydF4y2Ba
    1gydF4y2Ba 学习者gydF4y2BajgydF4y2Ba在课堂上布置观察gydF4y2Ba我gydF4y2Ba到一个消极的班级。gydF4y2Ba
    0gydF4y2Ba 在培训之前,学习者gydF4y2BajgydF4y2Ba删除课堂上的观察gydF4y2Ba我gydF4y2Ba从数据集中。gydF4y2Ba
    1gydF4y2Ba 学习者gydF4y2BajgydF4y2Ba在课堂上布置观察gydF4y2Ba我gydF4y2Ba到一个积极的班级。gydF4y2Ba

  • 每列必须至少包含一个gydF4y2Ba-1gydF4y2Ba或gydF4y2Ba1gydF4y2Ba.gydF4y2Ba

  • 对于所有列索引gydF4y2Ba我gydF4y2Ba,gydF4y2BajgydF4y2Ba这样gydF4y2Ba我gydF4y2Ba≠gydF4y2BajgydF4y2Ba,gydF4y2Ba编码(:,我)gydF4y2Ba不能平等gydF4y2Ba编码(:,j)gydF4y2Ba而且gydF4y2Ba编码(:,我)gydF4y2Ba不能平等gydF4y2Ba编码(:,j)gydF4y2Ba.gydF4y2Ba

  • 自定义编码矩阵的所有行必须是不同的。gydF4y2Ba

有关自定义编码设计矩阵形式的详细信息,请参见gydF4y2Ba自定义编码设计矩阵gydF4y2Ba.gydF4y2Ba

例子:gydF4y2Ba“编码”、“ternarycomplete”gydF4y2Ba

数据类型:gydF4y2Ba字符gydF4y2Ba|gydF4y2Ba字符串gydF4y2Ba|gydF4y2Ba双gydF4y2Ba|gydF4y2Ba单gydF4y2Ba|gydF4y2Baint16gydF4y2Ba|gydF4y2Baint32gydF4y2Ba|gydF4y2Baint64gydF4y2Ba|gydF4y2Baint8gydF4y2Ba

标志,指示是否将分数转换为后验概率,指定为逗号分隔的对,由gydF4y2Ba“FitPosterior”gydF4y2Ba和一个gydF4y2Ba真正的gydF4y2Ba(gydF4y2Ba1gydF4y2Ba)或gydF4y2Ba假gydF4y2Ba(gydF4y2Ba0gydF4y2Ba).gydF4y2Ba

如果gydF4y2BaFitPosteriorgydF4y2Ba是gydF4y2Ba真正的gydF4y2Ba,然后该软件将二元学习者分类分数转换为后验概率。你可以用得到后验概率gydF4y2BakfoldPredictgydF4y2Ba,gydF4y2Ba预测gydF4y2Ba,或gydF4y2BaresubPredictgydF4y2Ba.gydF4y2Ba

fitcecocgydF4y2Ba不支持拟合后验概率万博1manbetx,如果:gydF4y2Ba

  • 集成方法是gydF4y2BaAdaBoostM2gydF4y2Ba,gydF4y2BaLPBoostgydF4y2Ba,gydF4y2BaRUSBoostgydF4y2Ba,gydF4y2BaRobustBoostgydF4y2Ba,或gydF4y2BaTotalBoostgydF4y2Ba.gydF4y2Ba

  • 二元学习者(gydF4y2Ba学习者gydF4y2Ba)是实现支持向量机的线性或核分类模型。为了获得线性或核分类模型的后验概率,可以用逻辑回归代替。gydF4y2Ba

例子:gydF4y2Ba“FitPosterior”,真的gydF4y2Ba

数据类型:gydF4y2Ba逻辑gydF4y2Ba

二进制学习器模板,指定为逗号分隔的对,由gydF4y2Ba“学习者”gydF4y2Ba和模板对象的字符向量、字符串标量、模板对象或单元格向量。具体来说,您可以指定二进制分类器,例如SVM,以及所使用的集成gydF4y2BaGentleBoostgydF4y2Ba,gydF4y2BaLogitBoostgydF4y2Ba,gydF4y2BaRobustBoostgydF4y2Ba,解决多阶层问题。然而,gydF4y2BafitcecocgydF4y2Ba还支持多类万博1manbetx模型作为二进制分类器。gydF4y2Ba

  • 如果gydF4y2Ba学习者gydF4y2Ba为字符向量或字符串标量,则软件使用指定算法的默认值训练每个二进制学习器。下表总结了可用的算法。gydF4y2Ba

    价值gydF4y2Ba 描述gydF4y2Ba
    “判别”gydF4y2Ba 判别分析。有关默认选项,请参见gydF4y2BatemplateDiscriminantgydF4y2Ba.gydF4y2Ba
    “内核”gydF4y2Ba 内核的分类模型。有关默认选项,请参见gydF4y2BatemplateKernelgydF4y2Ba.gydF4y2Ba
    “资讯”gydF4y2Ba kgydF4y2Ba最近的邻居。有关默认选项,请参见gydF4y2BatemplateKNNgydF4y2Ba.gydF4y2Ba
    “线性”gydF4y2Ba 线性分类模型。有关默认选项,请参见gydF4y2BatemplateLineargydF4y2Ba.gydF4y2Ba
    “naivebayes”gydF4y2Ba 朴素贝叶斯。有关默认选项,请参见gydF4y2BatemplateNaiveBayesgydF4y2Ba.gydF4y2Ba
    “支持向量机”gydF4y2Ba 支持向量机。有关默认选项,请参见gydF4y2BatemplateSVMgydF4y2Ba.gydF4y2Ba
    “树”gydF4y2Ba 分类树。有关默认选项,请参见gydF4y2BatemplateTreegydF4y2Ba.gydF4y2Ba

  • 如果gydF4y2Ba学习者gydF4y2Ba是一个模板对象,那么每个二进制学习者根据存储的选项进行训练。你可以使用以下方法创建模板对象:gydF4y2Ba

  • 如果gydF4y2Ba学习者gydF4y2Ba是模板对象的单元格向量,则:gydF4y2Ba

    • 细胞gydF4y2BajgydF4y2Ba对应二元学习器gydF4y2BajgydF4y2Ba(换句话说,列gydF4y2BajgydF4y2Ba的编码设计矩阵),并且单元向量必须有长度gydF4y2BalgydF4y2Ba.gydF4y2BalgydF4y2Ba是编码设计矩阵中的列数。有关详细信息,请参见gydF4y2Ba编码gydF4y2Ba.gydF4y2Ba

    • 要使用一个内置的损失函数进行预测,那么所有二进制学习者必须返回相同范围内的分数。例如,您不能将默认的SVM二元学习器与默认的朴素贝叶斯二元学习器包含在一起。前者返回(-∞,∞)范围内的分数,后者返回后验概率作为分数。否则,必须将自定义丢失作为函数句柄提供给诸如gydF4y2Ba预测gydF4y2Ba而且gydF4y2Ba损失gydF4y2Ba.gydF4y2Ba

    • 不能用任何其他模板指定线性分类模型学习器模板。gydF4y2Ba

    • 类似地,您不能用任何其他模板指定内核分类模型学习器模板。gydF4y2Ba

默认情况下,该软件使用默认的支持向量机模板训练学习者。gydF4y2Ba

例子:gydF4y2Ba“学习者”,“树”gydF4y2Ba

数值预测器的箱数,指定为逗号分隔的对,由gydF4y2Ba“NumBins”gydF4y2Ba和一个正整数标量。这个论点只有在gydF4y2BafitcecocgydF4y2Ba使用树形学习器,即,gydF4y2Ba“学习者”gydF4y2Ba要么是gydF4y2Ba“树”gydF4y2Ba或使用创建的模板对象gydF4y2BatemplateTreegydF4y2Ba,或使用创建的模板对象gydF4y2BatemplateEnsemblegydF4y2Ba与树弱的学习者。gydF4y2Ba

  • 如果gydF4y2Ba“NumBins”gydF4y2Ba值为空(默认值),则软件不存储任何预测器。gydF4y2Ba

  • 如果指定gydF4y2Ba“NumBins”gydF4y2Ba值作为正整数标量,那么软件将每个数字预测器分类到指定数量的等概率分类中,然后在分类索引上生长树,而不是原始数据。gydF4y2Ba

    • 如果gydF4y2Ba“NumBins”gydF4y2Ba值超过数字(gydF4y2BaugydF4y2Ba)的唯一值,那么gydF4y2BafitcecocgydF4y2Ba将预测器分类到gydF4y2BaugydF4y2Ba箱里。gydF4y2Ba

    • fitcecocgydF4y2Ba不丢弃绝对预测器。gydF4y2Ba

当您使用大型训练数据集时,此分箱选项会加速训练,但可能会降低准确性。你可以试着gydF4y2Ba“NumBins”,50岁gydF4y2Ba先改,再改gydF4y2Ba“NumBins”gydF4y2Ba值取决于准确性和训练速度。gydF4y2Ba

经过训练的模型将桶边存储在gydF4y2BaBinEdgesgydF4y2Ba财产。gydF4y2Ba

例子:gydF4y2Ba“NumBins”,50岁gydF4y2Ba

数据类型:gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba

同时训练的二进制学习者的数目,指定为逗号分隔的对,由gydF4y2Ba“NumConcurrent”gydF4y2Ba和一个正整数标量。默认值为gydF4y2Ba1gydF4y2Ba,这意味着gydF4y2BafitcecocgydF4y2Ba按顺序训练二元学习者。gydF4y2Ba

请注意gydF4y2Ba

此选项仅适用于使用gydF4y2BafitcecocgydF4y2Ba在高大的数组。看到gydF4y2Ba高大的数组gydF4y2Ba为更多的信息。gydF4y2Ba

数据类型:gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba

预测器数据观测维数,指定为逗号分隔的对,由gydF4y2Ba“ObservationsIn”gydF4y2Ba而且gydF4y2Ba“列”gydF4y2Ba或gydF4y2Ba“行”gydF4y2Ba.gydF4y2Ba

请注意gydF4y2Ba

  • 对于线性分类的学习者,如果你定向gydF4y2BaXgydF4y2Ba观察结果与列相对应gydF4y2Ba“ObservationsIn”、“列”gydF4y2Ba,那么您可以体验到优化执行时间的显著减少。gydF4y2Ba

  • 对所有其他学习者来说,要有方向gydF4y2BaXgydF4y2Ba所以观察结果对应于行。gydF4y2Ba

例子:gydF4y2Ba“ObservationsIn”、“列”gydF4y2Ba

冗长级别,指定为逗号分隔的对,由gydF4y2Ba“详细”gydF4y2Ba而且gydF4y2Ba0gydF4y2Ba,gydF4y2Ba1gydF4y2Ba,或gydF4y2Ba2gydF4y2Ba.gydF4y2Ba详细的gydF4y2Ba控制软件在命令窗口中显示的每个二进制学习者的诊断信息的数量。gydF4y2Ba

此表总结了可用的冗长级别选项。gydF4y2Ba

价值gydF4y2Ba 描述gydF4y2Ba
0gydF4y2Ba 软件不显示诊断信息。gydF4y2Ba
1gydF4y2Ba 该软件每次训练一个新的二进制学习者时都会显示诊断信息。gydF4y2Ba
2gydF4y2Ba 该软件每次训练一个新的二进制学习器时都会显示额外的诊断信息。gydF4y2Ba

每个二元学习器都有自己的冗长级别,独立于名称-值对参数。要更改二进制学习器的冗长级别,请创建一个模板对象并指定gydF4y2Ba“详细”gydF4y2Ba名称-值对的论点。然后,将模板对象传递给gydF4y2BafitcecocgydF4y2Ba通过使用gydF4y2Ba“学习者”gydF4y2Ba名称-值对的论点。gydF4y2Ba

例子:gydF4y2Ba“详细”,1gydF4y2Ba

数据类型:gydF4y2Ba双gydF4y2Ba|gydF4y2Ba单gydF4y2Ba

交叉验证选择gydF4y2Ba

全部折叠gydF4y2Ba

标志来训练交叉验证的分类器,指定为逗号分隔的对,由gydF4y2Ba“Crossval”gydF4y2Ba而且gydF4y2Ba“上”gydF4y2Ba或gydF4y2Ba“关闭”gydF4y2Ba.gydF4y2Ba

如果您指定gydF4y2Ba“上”gydF4y2Ba,然后该软件用10次折叠训练交叉验证的分类器。gydF4y2Ba

方法之一可以覆盖此交叉验证设置gydF4y2BaCVPartitiongydF4y2Ba,gydF4y2Ba坚持gydF4y2Ba,gydF4y2BaKFoldgydF4y2Ba,或gydF4y2BaLeaveoutgydF4y2Ba名称-值对参数。一次只能使用一个交叉验证名称-值对参数来创建交叉验证模型。gydF4y2Ba

或者,稍后通过传递交叉验证gydF4y2BaMdlgydF4y2Ba来gydF4y2BacrossvalgydF4y2Ba.gydF4y2Ba

例子:gydF4y2Ba“Crossval”,“上”gydF4y2Ba

交叉验证分区,指定为逗号分隔的对,由gydF4y2Ba“CVPartition”gydF4y2Ba和一个gydF4y2BacvpartitiongydF4y2Ba创建的分区对象gydF4y2BacvpartitiongydF4y2Ba.分区对象指定交叉验证的类型以及训练集和验证集的索引。gydF4y2Ba

要创建交叉验证的模型,你只能使用以下四个名称-值对参数中的一个:gydF4y2BaCVPartitiongydF4y2Ba,gydF4y2Ba坚持gydF4y2Ba,gydF4y2BaKFoldgydF4y2Ba,或gydF4y2BaLeaveoutgydF4y2Ba.gydF4y2Ba

例子:gydF4y2Ba假设您创建一个随机分区,对500个观察结果进行5次交叉验证gydF4y2Ba本量利= cvpartition(500年,“KFold”,5)gydF4y2Ba.然后,您可以使用指定交叉验证的模型gydF4y2Ba“CVPartition”,本量利gydF4y2Ba.gydF4y2Ba

用于抵制验证的数据的一部分,指定为逗号分隔的对,由gydF4y2Ba“坚持”gydF4y2Ba和(0,1)范围内的标量值。如果您指定gydF4y2Ba‘坚持’,pgydF4y2Ba,然后软件完成以下步骤:gydF4y2Ba

  1. 随机选择和保留gydF4y2Bap * 100gydF4y2Ba%的数据作为验证数据,并使用其余的数据训练模型。gydF4y2Ba

  2. 存储紧凑的,训练过的模型gydF4y2Ba训练有素的gydF4y2Ba属性的交叉验证模型。gydF4y2Ba

要创建交叉验证的模型,你只能使用以下四个名称-值对参数中的一个:gydF4y2BaCVPartitiongydF4y2Ba,gydF4y2Ba坚持gydF4y2Ba,gydF4y2BaKFoldgydF4y2Ba,或gydF4y2BaLeaveoutgydF4y2Ba.gydF4y2Ba

例子:gydF4y2Ba“坚持”,0.1gydF4y2Ba

数据类型:gydF4y2Ba双gydF4y2Ba|gydF4y2Ba单gydF4y2Ba

交叉验证模型中使用的折叠数,指定为逗号分隔的对,由gydF4y2Ba“KFold”gydF4y2Ba和一个大于1的正整数。如果您指定gydF4y2BaKFold, kgydF4y2Ba,然后软件完成以下步骤:gydF4y2Ba

  1. 将数据随机划分为gydF4y2BakgydF4y2Ba集。gydF4y2Ba

  2. 对于每个集合,保留该集合作为验证数据,并使用另一个集合训练模型gydF4y2BakgydF4y2Ba- 1gydF4y2Ba集。gydF4y2Ba

  3. 存储gydF4y2BakgydF4y2Ba训练有素的小型模型gydF4y2BakgydF4y2Ba中的-by-1单元格向量gydF4y2Ba训练有素的gydF4y2Ba属性的交叉验证模型。gydF4y2Ba

要创建交叉验证的模型,你只能使用以下四个名称-值对参数中的一个:gydF4y2BaCVPartitiongydF4y2Ba,gydF4y2Ba坚持gydF4y2Ba,gydF4y2BaKFoldgydF4y2Ba,或gydF4y2BaLeaveoutgydF4y2Ba.gydF4y2Ba

例子:gydF4y2Ba“KFold”,5gydF4y2Ba

数据类型:gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba

省略一个交叉验证标志,指定为逗号分隔的对,由gydF4y2Ba“Leaveout”gydF4y2Ba而且gydF4y2Ba“上”gydF4y2Ba或gydF4y2Ba“关闭”gydF4y2Ba.如果您指定gydF4y2Ba“Leaveout”,“上”gydF4y2Ba,那么,对于每一个gydF4y2BangydF4y2Ba的观察,gydF4y2BangydF4y2Ba是gydF4y2Ba尺寸(Mdl.X, 1)gydF4y2Ba软件:gydF4y2Ba

  1. 保留观察数据作为验证数据,并使用其他数据训练模型gydF4y2BangydF4y2Ba- 1的观察gydF4y2Ba

  2. 存储gydF4y2BangydF4y2Ba训练有素的小型模型gydF4y2BangydF4y2Ba中的-by-1单元格向量gydF4y2Ba训练有素的gydF4y2Ba属性的交叉验证模型。gydF4y2Ba

要创建一个交叉验证的模型,你只能使用以下四个选项之一:gydF4y2BaCVPartitiongydF4y2Ba,gydF4y2Ba坚持gydF4y2Ba,gydF4y2BaKFoldgydF4y2Ba,或gydF4y2BaLeaveoutgydF4y2Ba.gydF4y2Ba

请注意gydF4y2Ba

不建议在交叉验证由线性或核分类模型学习者组成的ECOC模型时遗漏一个。gydF4y2Ba

例子:gydF4y2Ba“Leaveout”,“上”gydF4y2Ba

其他分类选项gydF4y2Ba

全部折叠gydF4y2Ba

类别预测器列表,指定为逗号分隔的对,由gydF4y2Ba“CategoricalPredictors”gydF4y2Ba和这个表中的一个值。gydF4y2Ba

价值gydF4y2Ba 描述gydF4y2Ba
正整数向量gydF4y2Ba 向量中的每个条目都是一个索引值,对应于预测器数据的列(gydF4y2BaXgydF4y2Ba或gydF4y2Ba资源描述gydF4y2Ba),它包含一个类别变量。gydF4y2Ba
逻辑向量gydF4y2Ba 一个gydF4y2Ba真正的gydF4y2Ba条目指预测器数据的对应列(gydF4y2BaXgydF4y2Ba或gydF4y2Ba资源描述gydF4y2Ba)是一个类别变量。gydF4y2Ba
字符矩阵gydF4y2Ba 矩阵的每一行都是一个预测变量的名称。中的条目名称必须匹配gydF4y2BaPredictorNamesgydF4y2Ba.用额外的空格填充名字,这样字符矩阵的每一行都有相同的长度。gydF4y2Ba
字符向量的字符串数组或单元格数组gydF4y2Ba 数组中的每个元素都是一个预测变量的名称。中的条目名称必须匹配gydF4y2BaPredictorNamesgydF4y2Ba.gydF4y2Ba
“所有”gydF4y2Ba 所有的预测都是绝对的。gydF4y2Ba

规范的gydF4y2Ba“CategoricalPredictors”gydF4y2Ba是合适的,如果:gydF4y2Ba

  • 至少有一个预测器是分类的,所有的二元学习者都是分类树、朴素贝叶斯学习者、支持向量机或分类树的集合。gydF4y2Ba

  • 所有预测器都是绝对的,至少有一个二元学习者是绝对的gydF4y2BakgydF4y2Ba神经网络。gydF4y2Ba

如果您指定gydF4y2Ba“CategoricalPredictors”gydF4y2Ba对于其他的学习者,软件会警告说它无法训练这个二元学习者。例如,该软件不能使用分类预测器训练线性或核分类模型学习者。gydF4y2Ba

每个学习者都以与学习者对应的拟合函数相同的方式识别和处理范畴预测器。看到gydF4y2Ba“CategoricalPredictors”gydF4y2Ba的gydF4y2BafitcknngydF4y2Ba为gydF4y2BakgydF4y2Ba最近的学习者,gydF4y2Ba“CategoricalPredictors”gydF4y2Ba的gydF4y2BafitcnbgydF4y2Ba对于朴素的贝叶斯学习者,gydF4y2Ba“CategoricalPredictors”gydF4y2Ba的gydF4y2BafitcsvmgydF4y2Ba对于支持向量机学习者,和gydF4y2Ba“CategoricalPredictors”gydF4y2Ba的gydF4y2BafitctreegydF4y2Ba树的学习者。gydF4y2Ba

例子:gydF4y2Ba“CategoricalPredictors”、“所有”gydF4y2Ba

数据类型:gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba|gydF4y2Ba逻辑gydF4y2Ba|gydF4y2Ba字符gydF4y2Ba|gydF4y2Ba字符串gydF4y2Ba|gydF4y2Ba细胞gydF4y2Ba

用于训练的类名,指定为逗号分隔的对,由gydF4y2Ba“类名”gydF4y2Ba和类别、字符或字符串数组、逻辑或数字向量或字符向量的单元格数组。gydF4y2Ba一会gydF4y2Ba必须具有与?相同的数据类型gydF4y2BaYgydF4y2Ba.gydF4y2Ba

如果gydF4y2Ba一会gydF4y2Ba是字符数组,则每个元素必须对应于数组的一行。gydF4y2Ba

使用gydF4y2Ba“类名”gydF4y2Ba:gydF4y2Ba

  • 在培训期间订购课程。gydF4y2Ba

  • 指定与类顺序对应的任何输入或输出参数维度的顺序。例如,使用gydF4y2Ba“类名”gydF4y2Ba指定…尺寸的顺序gydF4y2Ba成本gydF4y2Ba返回的分类分数的列顺序gydF4y2Ba预测gydF4y2Ba.gydF4y2Ba

  • 选择培训类的一个子集。例如,假设所有不同的类名的集合gydF4y2BaYgydF4y2Ba是gydF4y2Ba{' a ', ' b ', ' c '}gydF4y2Ba.使用类的观察来训练模型gydF4y2Ba“一个”gydF4y2Ba而且gydF4y2Ba“c”gydF4y2Ba只是,指定gydF4y2Ba“类名”,{' a ', ' c '}gydF4y2Ba.gydF4y2Ba

的默认值。gydF4y2Ba一会gydF4y2Ba所有不同的类名的集合是否在gydF4y2BaYgydF4y2Ba.gydF4y2Ba

例子:gydF4y2Ba“类名”,{' b ', ' g '}gydF4y2Ba

数据类型:gydF4y2Ba分类gydF4y2Ba|gydF4y2Ba字符gydF4y2Ba|gydF4y2Ba字符串gydF4y2Ba|gydF4y2Ba逻辑gydF4y2Ba|gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba|gydF4y2Ba细胞gydF4y2Ba

错误分类代价,指定为逗号分隔的对组成gydF4y2Ba“成本”gydF4y2Ba和一个方阵或结构。如果你指定:gydF4y2Ba

  • 的方阵gydF4y2Ba成本gydF4y2Ba,然后gydF4y2Ba成本(i, j)gydF4y2Ba将一个点分类到类的成本是多少gydF4y2BajgydF4y2Ba如果它真正的阶级是gydF4y2Ba我gydF4y2Ba.也就是说,行对应真正的类,列对应预测的类。的相应行和列的类顺序gydF4y2Ba成本gydF4y2Ba,另外指定gydF4y2Ba一会gydF4y2Ba名称-值对的论点。gydF4y2Ba

  • 结构gydF4y2Ba年代gydF4y2Ba,那么它必须有两个字段:gydF4y2Ba

    • S.ClassNamesgydF4y2Ba,其中将类名作为数据类型与gydF4y2BaYgydF4y2Ba

    • S.ClassificationCostsgydF4y2Ba,其中包含成本矩阵,其行和列的顺序为gydF4y2BaS.ClassNamesgydF4y2Ba

默认值是gydF4y2Ba(gydF4y2BaKgydF4y2Ba) - (gydF4y2BaKgydF4y2Ba)gydF4y2Ba,在那里gydF4y2BaKgydF4y2Ba是不同类的数量。gydF4y2Ba

例子:gydF4y2Ba'Cost',[0 1 2;1 0 2;2 2 0)gydF4y2Ba

数据类型:gydF4y2Ba双gydF4y2Ba|gydF4y2Ba单gydF4y2Ba|gydF4y2Ba结构体gydF4y2Ba

并行计算选项,指定为逗号分隔的对,由gydF4y2Ba“选项”gydF4y2Ba和返回的结构数组gydF4y2BastatsetgydF4y2Ba.这些选项需要并行计算工具箱™。gydF4y2BafitcecocgydF4y2Ba使用gydF4y2Ba“流”gydF4y2Ba,gydF4y2Ba“UseParallel”gydF4y2Ba,gydF4y2Ba“UseSubtreams”gydF4y2Ba字段。gydF4y2Ba

下表总结了可用的选项。gydF4y2Ba

选项gydF4y2Ba 描述gydF4y2Ba
“流”gydF4y2Ba

一个gydF4y2BaRandStreamgydF4y2Ba对象或此类对象的单元格数组。如果不指定gydF4y2Ba流gydF4y2Ba,软件使用默认流或流。如果您指定gydF4y2Ba流gydF4y2Ba,除非下列情况为真,否则使用单个对象:gydF4y2Ba

  • 你有一个开放式的平行泳池。gydF4y2Ba

  • UseParallelgydF4y2Ba是gydF4y2Ba真正的gydF4y2Ba.gydF4y2Ba

  • UseSubstreamsgydF4y2Ba是gydF4y2Ba假gydF4y2Ba.gydF4y2Ba

在这种情况下,使用与并行池相同大小的单元格数组。如果一个并行池没有打开,那么软件会尝试打开一个并行池(取决于您的首选项),然后gydF4y2Ba流gydF4y2Ba必须提供单个随机数流。gydF4y2Ba

“UseParallel”gydF4y2Ba

如果您有“并行计算工具箱”,那么您可以通过设置来调用工作人员池gydF4y2Ba“UseParallel”,真的gydF4y2Ba.的gydF4y2BafitcecocgydF4y2Ba函数将每个二进制学习者发送给池中的一个工作者。gydF4y2Ba

当你对二元学习者使用决策树时,gydF4y2BafitcecocgydF4y2Ba使用Intel并行化训练gydF4y2Ba®gydF4y2Ba用于双核及以上系统的线程构建块(TBB)。因此,指定gydF4y2Ba“UseParallel”gydF4y2Ba选项在单个计算机上没有帮助。在集群上使用此选项。有关Intel TBB的详细信息,请参见gydF4y2Bahttps://software.intel.com/en-us/intel-tbbgydF4y2Ba.gydF4y2Ba

“UseSubstreams”gydF4y2Ba 设置为gydF4y2Ba真正的gydF4y2Ba通过指定的流进行并行计算gydF4y2Ba“流”gydF4y2Ba.默认是gydF4y2Ba假gydF4y2Ba.例如,设置gydF4y2Ba流gydF4y2Ba到允许子流的类型,例如gydF4y2Ba“mlfg6331_64”gydF4y2Ba或gydF4y2Ba“mrg32k3a”gydF4y2Ba.gydF4y2Ba

确保更可预测的结果的最佳实践是使用gydF4y2BaparpoolgydF4y2Ba在调用并行计算之前显式地创建一个并行池gydF4y2BafitcecocgydF4y2Ba.gydF4y2Ba

例子:gydF4y2Ba“选项”,statset (UseParallel,真的)gydF4y2Ba

数据类型:gydF4y2Ba结构体gydF4y2Ba

预测器变量名,指定为逗号分隔的一对,由gydF4y2Ba“PredictorNames”gydF4y2Ba和唯一名称的字符串数组或唯一字符向量的单元格数组。的功能gydF4y2Ba“PredictorNames”gydF4y2Ba这取决于你提供训练数据的方式。gydF4y2Ba

  • 如果你提供gydF4y2BaXgydF4y2Ba而且gydF4y2BaYgydF4y2Ba,然后你可以使用gydF4y2Ba“PredictorNames”gydF4y2Ba给出预测变量gydF4y2BaXgydF4y2Ba的名字。gydF4y2Ba

    • 名字的顺序gydF4y2BaPredictorNamesgydF4y2Ba的列顺序必须对应gydF4y2BaXgydF4y2Ba.也就是说,gydF4y2BaPredictorNames {1}gydF4y2Ba是gydF4y2BaX (: 1)gydF4y2Ba,gydF4y2BaPredictorNames {2}gydF4y2Ba是gydF4y2BaX (:, 2)gydF4y2Ba,等等。同时,gydF4y2Ba大小(X, 2)gydF4y2Ba而且gydF4y2Ba元素个数(PredictorNames)gydF4y2Ba必须是相等的。gydF4y2Ba

    • 默认情况下,gydF4y2BaPredictorNamesgydF4y2Ba是gydF4y2Ba{x1, x2,…}gydF4y2Ba.gydF4y2Ba

  • 如果你提供gydF4y2Ba资源描述gydF4y2Ba,然后你可以使用gydF4y2Ba“PredictorNames”gydF4y2Ba选择在训练中使用的预测变量。也就是说,gydF4y2BafitcecocgydF4y2Ba中的预测变量gydF4y2BaPredictorNamesgydF4y2Ba训练中的响应变量。gydF4y2Ba

    • PredictorNamesgydF4y2Ba的子集gydF4y2BaTbl.Properties.VariableNamesgydF4y2Ba和不能包含响应变量的名称。gydF4y2Ba

    • 默认情况下,gydF4y2BaPredictorNamesgydF4y2Ba包含所有预测变量的名称。gydF4y2Ba

    • 一个好的实践是使用任意一种方法指定训练的预测器gydF4y2Ba“PredictorNames”gydF4y2Ba或gydF4y2Ba公式gydF4y2Ba只有。gydF4y2Ba

例子:gydF4y2BaPredictorNames,{‘SepalLength’,‘SepalWidth’,‘PetalLength’,‘PetalWidth}gydF4y2Ba

数据类型:gydF4y2Ba字符串gydF4y2Ba|gydF4y2Ba细胞gydF4y2Ba

每个类的先验概率,指定为逗号分隔的对,由gydF4y2Ba“之前”gydF4y2Ba和这个表中的一个值。gydF4y2Ba

价值gydF4y2Ba 描述gydF4y2Ba
“经验”gydF4y2Ba 类的先验概率是类的相对频率gydF4y2BaYgydF4y2Ba.gydF4y2Ba
“统一”gydF4y2Ba 所有类的先验概率都等于1/gydF4y2BaKgydF4y2Ba,在那里gydF4y2BaKgydF4y2Ba是类的数量。gydF4y2Ba
数值向量gydF4y2Ba 每个元素都是一个类先验概率。对元素进行排序gydF4y2BaMdlgydF4y2Ba.ClassNamesgydF4y2Ba方法指定顺序gydF4y2Ba一会gydF4y2Ba名称-值对的论点。该软件将元素规范化,使它们的和为gydF4y2Ba1gydF4y2Ba.gydF4y2Ba
结构gydF4y2Ba

一个结构gydF4y2Ba年代gydF4y2Ba两个字段:gydF4y2Ba

  • S.ClassNamesgydF4y2Ba作为类型相同的变量包含类名gydF4y2BaYgydF4y2Ba.gydF4y2Ba

  • S.ClassProbsgydF4y2Ba包含相应先验概率的向量。该软件将元素规范化,使它们的和为gydF4y2Ba1gydF4y2Ba.gydF4y2Ba

有关软件如何合并类先验概率的详细信息,请参见gydF4y2Ba先验概率和成本gydF4y2Ba.gydF4y2Ba

例子:gydF4y2Ba结构(“类名”,{{setosa,杂色的,‘virginica}}, ClassProbs, 1:3)gydF4y2Ba

数据类型:gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba|gydF4y2Ba字符gydF4y2Ba|gydF4y2Ba字符串gydF4y2Ba|gydF4y2Ba结构体gydF4y2Ba

响应变量名,指定为逗号分隔的对gydF4y2Ba“ResponseName”gydF4y2Ba和字符向量或字符串标量。gydF4y2Ba

  • 如果你提供gydF4y2BaYgydF4y2Ba,然后你可以使用gydF4y2Ba“ResponseName”gydF4y2Ba为响应变量指定名称。gydF4y2Ba

  • 如果你提供gydF4y2BaResponseVarNamegydF4y2Ba或gydF4y2Ba公式gydF4y2Ba,那么你就不能使用gydF4y2Ba“ResponseName”gydF4y2Ba.gydF4y2Ba

例子:gydF4y2Ba“ResponseName”、“响应”gydF4y2Ba

数据类型:gydF4y2Ba字符gydF4y2Ba|gydF4y2Ba字符串gydF4y2Ba

分数转换,指定为逗号分隔的对组成gydF4y2Ba“ScoreTransform”gydF4y2Ba和字符向量、字符串标量或函数句柄。gydF4y2Ba

这个表总结了可用的字符向量和字符串标量。gydF4y2Ba

价值gydF4y2Ba 描述gydF4y2Ba
“doublelogit”gydF4y2Ba 1 / (1 +gydF4y2BaegydF4y2Ba2gydF4y2BaxgydF4y2Ba)gydF4y2Ba
“invlogit”gydF4y2Ba 日志(gydF4y2BaxgydF4y2Ba/ (1 -gydF4y2BaxgydF4y2Ba))gydF4y2Ba
“ismax”gydF4y2Ba 将分数最大的类的分数设置为1,并将所有其他类的分数设置为0gydF4y2Ba
分对数的gydF4y2Ba 1 / (1 +gydF4y2BaegydF4y2Ba- - - - - -gydF4y2BaxgydF4y2Ba)gydF4y2Ba
“没有”gydF4y2Ba或gydF4y2Ba“身份”gydF4y2Ba xgydF4y2Ba(转换)gydF4y2Ba
“标志”gydF4y2Ba 1gydF4y2BaxgydF4y2Ba< 0gydF4y2Ba
为0gydF4y2BaxgydF4y2Ba= 0gydF4y2Ba
1gydF4y2BaxgydF4y2Ba> 0gydF4y2Ba
“对称”gydF4y2Ba 2gydF4y2BaxgydF4y2Ba- 1gydF4y2Ba
“symmetricismax”gydF4y2Ba 将分数最大的类的分数设置为1,并将所有其他类的分数设置为-1gydF4y2Ba
“symmetriclogit”gydF4y2Ba 2 / (1 +gydF4y2BaegydF4y2Ba- - - - - -gydF4y2BaxgydF4y2Ba) - 1gydF4y2Ba

对于MATLAB函数或您定义的函数,使用它的函数句柄进行分数变换。函数句柄必须接受一个矩阵(原始分数)并返回一个相同大小的矩阵(转换后的分数)。gydF4y2Ba

例子:gydF4y2Ba“ScoreTransform”、“分对数的gydF4y2Ba

数据类型:gydF4y2Ba字符gydF4y2Ba|gydF4y2Ba字符串gydF4y2Ba|gydF4y2Bafunction_handlegydF4y2Ba

观察权值,用逗号分隔的对表示gydF4y2Ba“重量”gydF4y2Ba和正数值向量或变量名gydF4y2Ba资源描述gydF4y2Ba.软件对每一行的观察结果进行加权gydF4y2BaXgydF4y2Ba或gydF4y2Ba资源描述gydF4y2Ba的对应值gydF4y2Ba权重gydF4y2Ba.的大小gydF4y2Ba权重gydF4y2Ba必须等于的行数gydF4y2BaXgydF4y2Ba或gydF4y2Ba资源描述gydF4y2Ba.gydF4y2Ba

如果将输入数据指定为表gydF4y2Ba资源描述gydF4y2Ba,然后gydF4y2Ba权重gydF4y2Ba变量的名称可以在gydF4y2Ba资源描述gydF4y2Ba它包含一个数字向量。在这种情况下,您必须指定gydF4y2Ba权重gydF4y2Ba作为字符向量或字符串标量。例如,如果权重向量gydF4y2BaWgydF4y2Ba存储为gydF4y2Ba资源描述。WgydF4y2Ba,然后将其指定为gydF4y2Ba' W 'gydF4y2Ba.的所有列gydF4y2Ba资源描述gydF4y2Ba,包括gydF4y2BaWgydF4y2Ba,作为训练模型时的预测器或响应。gydF4y2Ba

该软件可实现gydF4y2Ba权重gydF4y2Ba加起来等于各自类的先验概率的值。gydF4y2Ba

默认情况下,gydF4y2Ba权重gydF4y2Ba是gydF4y2Ba(gydF4y2BangydF4y2Ba, 1)gydF4y2Ba,在那里gydF4y2BangydF4y2Ba观察的数量在吗gydF4y2BaXgydF4y2Ba或gydF4y2Ba资源描述gydF4y2Ba.gydF4y2Ba

数据类型:gydF4y2Ba双gydF4y2Ba|gydF4y2Ba单gydF4y2Ba|gydF4y2Ba字符gydF4y2Ba|gydF4y2Ba字符串gydF4y2Ba

Hyperparameter优化gydF4y2Ba

全部折叠gydF4y2Ba

参数要优化,指定为逗号分隔的对,由gydF4y2Ba“OptimizeHyperparameters”gydF4y2Ba和以下其中之一:gydF4y2Ba

  • “没有”gydF4y2Ba-不要优化。gydF4y2Ba

  • “汽车”gydF4y2Ba——使用gydF4y2Ba{“编码”}gydF4y2Ba以及指定的默认参数gydF4y2Ba学习者gydF4y2Ba:gydF4y2Ba

    • 学习者gydF4y2Ba=gydF4y2Ba“支持向量机”gydF4y2Ba(默认)gydF4y2Ba{“BoxConstraint”、“KernelScale”}gydF4y2Ba

    • 学习者gydF4y2Ba=gydF4y2Ba“判别”gydF4y2Ba- - - - - -gydF4y2Ba{“三角洲”,“伽马”}gydF4y2Ba

    • 学习者gydF4y2Ba=gydF4y2Ba“内核”gydF4y2Ba- - - - - -gydF4y2Ba{“KernelScale”、“λ”}gydF4y2Ba

    • 学习者gydF4y2Ba=gydF4y2Ba“资讯”gydF4y2Ba- - - - - -gydF4y2Ba{‘距离’,‘NumNeighbors}gydF4y2Ba

    • 学习者gydF4y2Ba=gydF4y2Ba“线性”gydF4y2Ba- - - - - -gydF4y2Ba{“λ”、“学习者”}gydF4y2Ba

    • 学习者gydF4y2Ba=gydF4y2Ba“naivebayes”gydF4y2Ba- - - - - -gydF4y2Ba{“DistributionNames”、“宽度”}gydF4y2Ba

    • 学习者gydF4y2Ba=gydF4y2Ba“树”gydF4y2Ba- - - - - -gydF4y2Ba{' MinLeafSize '}gydF4y2Ba

  • “所有”gydF4y2Ba—优化所有符合条件的参数。gydF4y2Ba

  • 合格参数名称的字符串数组或单元格数组gydF4y2Ba

  • 向量的gydF4y2BaoptimizableVariablegydF4y2Ba的输出gydF4y2BahyperparametersgydF4y2Ba

优化尝试最小化交叉验证的损失(错误)gydF4y2BafitcecocgydF4y2Ba通过改变参数。有关在不同上下文中交叉验证丢失的信息,请参见gydF4y2Ba分类损失gydF4y2Ba.要控制交叉验证类型和优化的其他方面,请使用gydF4y2BaHyperparameterOptimizationOptionsgydF4y2Ba名称-值对。gydF4y2Ba

请注意gydF4y2Ba

“OptimizeHyperparameters”gydF4y2Ba值覆盖使用其他名称-值对参数设置的任何值。例如,设置gydF4y2Ba“OptimizeHyperparameters”gydF4y2Ba来gydF4y2Ba“汽车”gydF4y2Ba导致gydF4y2Ba“汽车”gydF4y2Ba值应用。gydF4y2Ba

符合条件的参数gydF4y2BafitcecocgydF4y2Ba是:gydF4y2Ba

  • 编码gydF4y2Ba- - - - - -gydF4y2BafitcecocgydF4y2Ba搜索中gydF4y2Ba“onevsall”gydF4y2Ba而且gydF4y2Ba“onevsone”gydF4y2Ba.gydF4y2Ba

  • 所选对象的合格超参数gydF4y2Ba学习者gydF4y2Ba,如本表所示。gydF4y2Ba

    学习者gydF4y2Ba 合格HyperparametersgydF4y2Ba
    (大胆=默认)gydF4y2Ba
    默认范围gydF4y2Ba
    “判别”gydF4y2Ba δgydF4y2Ba 在范围内取对数gydF4y2Ba(1 e-6, 1 e3)gydF4y2Ba
    DiscrimTypegydF4y2Ba “线性”gydF4y2Ba,gydF4y2Ba“二次”gydF4y2Ba,gydF4y2Ba“diagLinear”gydF4y2Ba,gydF4y2Ba“diagQuadratic”gydF4y2Ba,gydF4y2Ba“pseudoLinear”gydF4y2Ba,gydF4y2Ba“pseudoQuadratic”gydF4y2Ba
    γgydF4y2Ba 真正的价值gydF4y2Ba[0, 1]gydF4y2Ba
    “内核”gydF4y2Ba λgydF4y2Ba 正数值在范围内按对数缩放gydF4y2Ba(1 e - 3 / NumObservations, e3 / NumObservations]gydF4y2Ba
    KernelScalegydF4y2Ba 正数值在范围内按对数缩放gydF4y2Ba(1 e - 3, 1 e3)gydF4y2Ba
    学习者gydF4y2Ba “支持向量机”gydF4y2Ba而且gydF4y2Ba“物流”gydF4y2Ba
    NumExpansionDimensionsgydF4y2Ba 在范围内对数缩放的整数gydF4y2Ba(100、10000)gydF4y2Ba
    “资讯”gydF4y2Ba 距离gydF4y2Ba “cityblock”gydF4y2Ba,gydF4y2Ba“chebychev”gydF4y2Ba,gydF4y2Ba“相关”gydF4y2Ba,gydF4y2Ba的余弦gydF4y2Ba,gydF4y2Ba“欧几里得”gydF4y2Ba,gydF4y2Ba“汉明”gydF4y2Ba,gydF4y2Ba“jaccard”gydF4y2Ba,gydF4y2Ba“mahalanobis”gydF4y2Ba,gydF4y2Ba闵可夫斯基的gydF4y2Ba,gydF4y2Ba“seuclidean”gydF4y2Ba,gydF4y2Ba“枪兵”gydF4y2Ba
    DistanceWeightgydF4y2Ba “平等”gydF4y2Ba,gydF4y2Ba“逆”gydF4y2Ba,gydF4y2Ba“squaredinverse”gydF4y2Ba
    指数gydF4y2Ba 积极的价值观gydF4y2Ba(0.5, 3)gydF4y2Ba
    NumNeighborsgydF4y2Ba 正整数在范围内进行对数缩放gydF4y2Ba[1,马克斯(2轮(NumObservations / 2)))gydF4y2Ba
    标准化gydF4y2Ba “真正的”gydF4y2Ba而且gydF4y2Ba“假”gydF4y2Ba
    “线性”gydF4y2Ba λgydF4y2Ba 正数值在范围内按对数缩放gydF4y2Ba[1 e-5 / NumObservations 1 e5 / NumObservations]gydF4y2Ba
    学习者gydF4y2Ba “支持向量机”gydF4y2Ba而且gydF4y2Ba“物流”gydF4y2Ba
    正则化gydF4y2Ba “岭”gydF4y2Ba而且gydF4y2Ba“套索”gydF4y2Ba
    “naivebayes”gydF4y2Ba DistributionNamesgydF4y2Ba “正常”gydF4y2Ba而且gydF4y2Ba“内核”gydF4y2Ba
    宽度gydF4y2Ba 正数值在范围内按对数缩放gydF4y2Ba[MinPredictorDiff / 4,马克斯(MaxPredictorRange MinPredictorDiff)]gydF4y2Ba
    内核gydF4y2Ba “正常”gydF4y2Ba,gydF4y2Ba“盒子”gydF4y2Ba,gydF4y2Ba“epanechnikov”gydF4y2Ba,gydF4y2Ba“三角形”gydF4y2Ba
    “支持向量机”gydF4y2Ba BoxConstraintgydF4y2Ba 正数值在范围内按对数缩放gydF4y2Ba(1 e - 3, 1 e3)gydF4y2Ba
    KernelScalegydF4y2Ba 正数值在范围内按对数缩放gydF4y2Ba(1 e - 3, 1 e3)gydF4y2Ba
    KernelFunctiongydF4y2Ba “高斯”gydF4y2Ba,gydF4y2Ba“线性”gydF4y2Ba,gydF4y2Ba多项式的gydF4y2Ba
    PolynomialOrdergydF4y2Ba 范围内的整数gydF4y2Ba(2、4)gydF4y2Ba
    标准化gydF4y2Ba “真正的”gydF4y2Ba而且gydF4y2Ba“假”gydF4y2Ba
    “树”gydF4y2Ba MaxNumSplitsgydF4y2Ba 在范围内对数缩放的整数gydF4y2BaNumObservations-1[1,马克斯(2))gydF4y2Ba
    MinLeafSizegydF4y2Ba 在范围内对数缩放的整数gydF4y2Ba[1,马克斯(2楼(NumObservations / 2)))gydF4y2Ba
    NumVariablesToSamplegydF4y2Ba 范围内的整数gydF4y2BaNumPredictors[1,马克斯(2))gydF4y2Ba
    SplitCriteriongydF4y2Ba gdi的gydF4y2Ba,gydF4y2Ba“异常”gydF4y2Ba,gydF4y2Ba“两个”gydF4y2Ba

    另外,使用gydF4y2BahyperparametersgydF4y2Ba和你的选择gydF4y2Ba学习者gydF4y2Ba,如gydF4y2Ba

    负载gydF4y2BafisheririsgydF4y2Ba超参数需要数据和学习器gydF4y2Baparams = hyperparameters (gydF4y2Ba“fitcecoc”gydF4y2Ba量,物种,gydF4y2Ba“支持向量机”gydF4y2Ba);gydF4y2Ba

    要查看符合条件的和默认的超参数,请检查gydF4y2Ba参数个数gydF4y2Ba.gydF4y2Ba

通过传递vector来设置非默认参数gydF4y2BaoptimizableVariablegydF4y2Ba具有非默认值的对象。例如,gydF4y2Ba

负载gydF4y2BafisheririsgydF4y2Baparams = hyperparameters (gydF4y2Ba“fitcecoc”gydF4y2Ba量,物种,gydF4y2Ba“支持向量机”gydF4y2Ba);参数(2)。范围=(1的军医,1 e6);gydF4y2Ba

通过gydF4y2Ba参数个数gydF4y2Ba的价值gydF4y2BaOptimizeHyperparametersgydF4y2Ba.gydF4y2Ba

默认情况下,迭代显示出现在命令行中,并根据优化中的超参数的数量显示图形。对于优化和绘图,目标函数为gydF4y2BaLog(1 +交叉验证损失)gydF4y2Ba回归和分类的误分类率。要控制迭代显示,请设置gydF4y2Ba详细的gydF4y2Ba场的gydF4y2Ba“HyperparameterOptimizationOptions”gydF4y2Ba名称-值对的论点。要控制情节,设置gydF4y2BaShowPlotsgydF4y2Ba场的gydF4y2Ba“HyperparameterOptimizationOptions”gydF4y2Ba名称-值对的论点。gydF4y2Ba

示例请参见gydF4y2Ba优化ECOC分类器gydF4y2Ba.gydF4y2Ba

例子:gydF4y2Ba“汽车”gydF4y2Ba

选项,指定为逗号分隔的对,由gydF4y2Ba“HyperparameterOptimizationOptions”gydF4y2Ba和结构。的效果gydF4y2BaOptimizeHyperparametersgydF4y2Ba名称-值对的论点。结构中的所有字段都是可选的。gydF4y2Ba

字段名gydF4y2Ba 值gydF4y2Ba 默认的gydF4y2Ba
优化器gydF4y2Ba
  • “bayesopt”gydF4y2Ba-使用贝叶斯优化。在内部,这个设置调用gydF4y2BabayesoptgydF4y2Ba.gydF4y2Ba

  • “gridsearch”gydF4y2Ba-使用网格搜索gydF4y2BaNumGridDivisionsgydF4y2Ba每个维度值。gydF4y2Ba

  • “randomsearch”gydF4y2Ba-在其中随机搜索gydF4y2BaMaxObjectiveEvaluationsgydF4y2Ba点。gydF4y2Ba

“gridsearch”gydF4y2Ba以随机顺序进行搜索,使用统一采样而不从网格中替换。优化后,可以使用该命令获得网格顺序的表gydF4y2Basortrows (Mdl.HyperparameterOptimizationResults)gydF4y2Ba.gydF4y2Ba

“bayesopt”gydF4y2Ba
AcquisitionFunctionNamegydF4y2Ba

  • “expected-improvement-per-second-plus”gydF4y2Ba

  • “expected-improvement”gydF4y2Ba

  • “expected-improvement-plus”gydF4y2Ba

  • “expected-improvement-per-second”gydF4y2Ba

  • “lower-confidence-bound”gydF4y2Ba

  • “probability-of-improvement”gydF4y2Ba

获取函数,其名称包括gydF4y2Ba每秒gydF4y2Ba不会产生可重复的结果,因为优化依赖于目标函数的运行时间。获取函数,其名称包括gydF4y2Ba+gydF4y2Ba当他们过度开发某一区域时,修改他们的行为。有关更多细节,请参见gydF4y2Ba获取函数类型gydF4y2Ba.gydF4y2Ba

“expected-improvement-per-second-plus”gydF4y2Ba
MaxObjectiveEvaluationsgydF4y2Ba 目标函数评价的最大次数。gydF4y2Ba 30.gydF4y2Ba为gydF4y2Ba“bayesopt”gydF4y2Ba或gydF4y2Ba“randomsearch”gydF4y2Ba,和整个网格gydF4y2Ba“gridsearch”gydF4y2Ba
MaxTimegydF4y2Ba

时间限制,指定为正实数。时间限制以秒为单位,用gydF4y2Ba抽搐gydF4y2Ba而且gydF4y2BatocgydF4y2Ba.运行时间可能超过gydF4y2BaMaxTimegydF4y2Ba因为gydF4y2BaMaxTimegydF4y2Ba不会中断函数的计算。gydF4y2Ba

正gydF4y2Ba
NumGridDivisionsgydF4y2Ba 为gydF4y2Ba“gridsearch”gydF4y2Ba,表示每个维度的值的个数。该值可以是一个给出每个维度值数量的正整数向量,也可以是一个适用于所有维度的标量。对于类别变量,该字段将被忽略。gydF4y2Ba 10gydF4y2Ba
ShowPlotsgydF4y2Ba 指示是否显示图形的逻辑值。如果gydF4y2Ba真正的gydF4y2Ba,该字段根据迭代次数绘制最佳目标函数值。如果有一个或两个优化参数,如果gydF4y2Ba优化器gydF4y2Ba是gydF4y2Ba“bayesopt”gydF4y2Ba,然后gydF4y2BaShowPlotsgydF4y2Ba并根据参数绘制了目标函数模型。gydF4y2Ba 真正的gydF4y2Ba
SaveIntermediateResultsgydF4y2Ba 指示何时是否保存结果的逻辑值gydF4y2Ba优化器gydF4y2Ba是gydF4y2Ba“bayesopt”gydF4y2Ba.如果gydF4y2Ba真正的gydF4y2Ba,该字段将覆盖名为gydF4y2Ba“BayesoptResults”gydF4y2Ba在每一个迭代。变量是agydF4y2BaBayesianOptimizationgydF4y2Ba对象。gydF4y2Ba 假gydF4y2Ba
详细的gydF4y2Ba

显示到命令行。gydF4y2Ba

  • 0gydF4y2Ba-无迭代显示gydF4y2Ba

  • 1gydF4y2Ba——迭代显示gydF4y2Ba

  • 2gydF4y2Ba-迭代显示额外的信息gydF4y2Ba

详细信息请参见gydF4y2BabayesoptgydF4y2Ba详细的gydF4y2Ba名称-值对的论点。gydF4y2Ba

1gydF4y2Ba
UseParallelgydF4y2Ba 指示是否并行运行贝叶斯优化的逻辑值,这需要“并行计算工具箱”。由于并行时序的不可再现性,并行贝叶斯优化不一定产生可再现的结果。有关详细信息,请参见gydF4y2Ba平行的贝叶斯优化gydF4y2Ba.gydF4y2Ba 假gydF4y2Ba
重新分区gydF4y2Ba

指示是否在每次迭代时重新划分交叉验证的逻辑值。如果gydF4y2Ba假gydF4y2Ba,优化器使用单个分区进行优化。gydF4y2Ba

真正的gydF4y2Ba通常会给出最健壮的结果,因为该设置考虑了分区噪声。然而,为了得到好的结果,gydF4y2Ba真正的gydF4y2Ba需要至少两倍的函数求值。gydF4y2Ba

假gydF4y2Ba
使用以下三个字段名称中的一个。gydF4y2Ba
CVPartitiongydF4y2Ba 一个gydF4y2BacvpartitiongydF4y2Ba对象,如由gydF4y2BacvpartitiongydF4y2Ba.gydF4y2Ba “Kfold”,5gydF4y2Ba如果不指定任何交叉验证字段gydF4y2Ba
坚持gydF4y2Ba 范围内的标量gydF4y2Ba(0,1)gydF4y2Ba表示抵制分数。gydF4y2Ba
KfoldgydF4y2Ba 大于1的整数。gydF4y2Ba

例子:gydF4y2Ba“HyperparameterOptimizationOptions”、结构(MaxObjectiveEvaluations, 60)gydF4y2Ba

数据类型:gydF4y2Ba结构体gydF4y2Ba

输出参数gydF4y2Ba

全部折叠gydF4y2Ba

训练过的ECOC分类器,返回为gydF4y2BaClassificationECOCgydF4y2Ba或gydF4y2BaCompactClassificationECOCgydF4y2Ba模型对象,或gydF4y2BaClassificationPartitionedECOCgydF4y2Ba,gydF4y2BaClassificationPartitionedLinearECOCgydF4y2Ba,或gydF4y2BaClassificationPartitionedKernelECOCgydF4y2Ba旨在模型对象。gydF4y2Ba

的模型对象的类型是如何返回的gydF4y2BafitcecocgydF4y2Ba取决于您指定的二进制学习器类型以及是否执行交叉验证。gydF4y2Ba

线性分类模型学习者gydF4y2Ba 核分类模型学习者gydF4y2Ba 交叉验证gydF4y2Ba 返回模型对象gydF4y2Ba
没有gydF4y2Ba 没有gydF4y2Ba 没有gydF4y2Ba ClassificationECOCgydF4y2Ba
没有gydF4y2Ba 没有gydF4y2Ba 是的gydF4y2Ba ClassificationPartitionedECOCgydF4y2Ba
是的gydF4y2Ba 没有gydF4y2Ba 没有gydF4y2Ba CompactClassificationECOCgydF4y2Ba
是的gydF4y2Ba 没有gydF4y2Ba 是的gydF4y2Ba ClassificationPartitionedLinearECOCgydF4y2Ba
没有gydF4y2Ba 是的gydF4y2Ba 没有gydF4y2Ba CompactClassificationECOCgydF4y2Ba
没有gydF4y2Ba 是的gydF4y2Ba 是的gydF4y2Ba ClassificationPartitionedKernelECOCgydF4y2Ba

描述超参数的交叉验证优化,返回为gydF4y2BaBayesianOptimizationgydF4y2Ba对象或超参数和关联值的表。gydF4y2BaHyperparameterOptimizationResultsgydF4y2Ba非空时gydF4y2BaOptimizeHyperparametersgydF4y2Ba名称-值对参数是非空的gydF4y2Ba学习者gydF4y2Ba名值对参数指定线性或核二进制学习器。的设置gydF4y2BaHyperparameterOptimizationOptionsgydF4y2Ba名称-值对论点:gydF4y2Ba

  • “bayesopt”gydF4y2Ba(默认)-类的对象gydF4y2BaBayesianOptimizationgydF4y2Ba

  • “gridsearch”gydF4y2Ba或gydF4y2Ba“randomsearch”gydF4y2Ba-使用的超参数表,观察到的目标函数值(交叉验证损失),以及从最小(最佳)到最高(最差)的观察级别gydF4y2Ba

数据类型:gydF4y2Ba表格gydF4y2Ba

限制gydF4y2Ba

  • 为了训练线性或核分类模型,gydF4y2BafitcecocgydF4y2Ba不支持表。万博1manbetx也就是说,如果gydF4y2Ba学习者gydF4y2Ba是gydF4y2Ba“线性”gydF4y2Ba或gydF4y2Ba“内核”gydF4y2Ba,包含一个线性分类模型学习者模板(参见gydF4y2BatemplateLineargydF4y2Ba),或者包含一个内核分类模型学习器模板(参见gydF4y2BatemplateKernelgydF4y2Ba),那么你们就不能供应了gydF4y2Ba资源描述gydF4y2Ba,gydF4y2BaResponseVarNamegydF4y2Ba,或gydF4y2Ba公式gydF4y2Ba.提供预测数据矩阵(gydF4y2BaXgydF4y2Ba)及一连串的回应(gydF4y2BaYgydF4y2Ba)。gydF4y2Ba

  • fitcecocgydF4y2Ba万博1manbetx仅支持稀疏矩阵训练线性分类模型。对于所有其他模型,应提供完整的预测数据矩阵。gydF4y2Ba

更多关于gydF4y2Ba

全部折叠gydF4y2Ba

二元损失gydF4y2Ba

一个gydF4y2Ba二元损失gydF4y2Ba是类别和分类分数的函数,它决定了二元学习者将观察结果划分为类别的程度。gydF4y2Ba

假设如下:gydF4y2Ba

  • 米gydF4y2BakjgydF4y2Ba是元素(gydF4y2BakgydF4y2Ba,gydF4y2BajgydF4y2Ba)的编码设计矩阵gydF4y2Ba米gydF4y2Ba(即与类对应的代码gydF4y2BakgydF4y2Ba二进制的学习者gydF4y2BajgydF4y2Ba).gydF4y2Ba

  • 年代gydF4y2BajgydF4y2Ba是二元学习者的分数吗gydF4y2BajgydF4y2Ba对于一个观察。gydF4y2Ba

  • ggydF4y2Ba为二元损失函数。gydF4y2Ba

  • kgydF4y2Ba ^gydF4y2Ba 是观测的预测类。gydF4y2Ba

在gydF4y2Ba通过解码gydF4y2Ba(Escalera等。)gydF4y2Ba,产生二元损耗对二元学习者的最小和的类别决定了观测结果的预测类别,即:gydF4y2Ba

kgydF4y2Ba ^gydF4y2Ba =gydF4y2Ba argmingydF4y2Ba kgydF4y2Ba ∑gydF4y2Ba jgydF4y2Ba =gydF4y2Ba 1gydF4y2Ba lgydF4y2Ba |gydF4y2Ba 米gydF4y2Ba kgydF4y2Ba jgydF4y2Ba |gydF4y2Ba ggydF4y2Ba (gydF4y2Ba 米gydF4y2Ba kgydF4y2Ba jgydF4y2Ba ,gydF4y2Ba 年代gydF4y2Ba jgydF4y2Ba )gydF4y2Ba .gydF4y2Ba

在gydF4y2Baloss-weighted解码gydF4y2Ba(Escalera等。)gydF4y2Ba,产生二元损失对二元学习者的最小平均值的类别决定了观测结果的预测类别,即:gydF4y2Ba

kgydF4y2Ba ^gydF4y2Ba =gydF4y2Ba argmingydF4y2Ba kgydF4y2Ba ∑gydF4y2Ba jgydF4y2Ba =gydF4y2Ba 1gydF4y2Ba lgydF4y2Ba |gydF4y2Ba 米gydF4y2Ba kgydF4y2Ba jgydF4y2Ba |gydF4y2Ba ggydF4y2Ba (gydF4y2Ba 米gydF4y2Ba kgydF4y2Ba jgydF4y2Ba ,gydF4y2Ba 年代gydF4y2Ba jgydF4y2Ba )gydF4y2Ba ∑gydF4y2Ba jgydF4y2Ba =gydF4y2Ba 1gydF4y2Ba lgydF4y2Ba |gydF4y2Ba 米gydF4y2Ba kgydF4y2Ba jgydF4y2Ba |gydF4y2Ba .gydF4y2Ba

Allwein et al。gydF4y2Ba建议损耗加权解码通过保持所有类的损耗值在相同的动态范围内来提高分类精度。gydF4y2Ba

下表总结了支持的损失函数,其中万博1manbetxgydF4y2BaygydF4y2BajgydF4y2Ba是特定二进制学习者(在集合{- 1,1,0}中)的类标签,gydF4y2Ba年代gydF4y2BajgydF4y2Ba分数是用来观察的吗gydF4y2BajgydF4y2Ba,gydF4y2BaggydF4y2Ba(gydF4y2BaygydF4y2BajgydF4y2Ba,gydF4y2Ba年代gydF4y2BajgydF4y2Ba).gydF4y2Ba

价值gydF4y2Ba 描述gydF4y2Ba 分数域gydF4y2Ba ggydF4y2Ba(gydF4y2BaygydF4y2BajgydF4y2Ba,gydF4y2Ba年代gydF4y2BajgydF4y2Ba)gydF4y2Ba
“binodeviance”gydF4y2Ba 二项异常gydF4y2Ba (-∞∞)gydF4y2Ba 日志(1 + exp (2gydF4y2BaygydF4y2BajgydF4y2Ba年代gydF4y2BajgydF4y2Ba日志(2)])]/ [2gydF4y2Ba
“指数”gydF4y2Ba 指数gydF4y2Ba (-∞∞)gydF4y2Ba exp (-gydF4y2BaygydF4y2BajgydF4y2Ba年代gydF4y2BajgydF4y2Ba) / 2gydF4y2Ba
“汉明”gydF4y2Ba 汉明gydF4y2Ba [0, 1]或(-∞,∞)gydF4y2Ba [1 -符号(gydF4y2BaygydF4y2BajgydF4y2Ba年代gydF4y2BajgydF4y2Ba) / 2gydF4y2Ba
“枢纽”gydF4y2Ba 铰链gydF4y2Ba (-∞∞)gydF4y2Ba 马克斯(0,1 -gydF4y2BaygydF4y2BajgydF4y2Ba年代gydF4y2BajgydF4y2Ba) / 2gydF4y2Ba
“线性”gydF4y2Ba 线性gydF4y2Ba (-∞∞)gydF4y2Ba (1 -gydF4y2BaygydF4y2BajgydF4y2Ba年代gydF4y2BajgydF4y2Ba) / 2gydF4y2Ba
分对数的gydF4y2Ba 物流gydF4y2Ba (-∞∞)gydF4y2Ba 日志[1 + exp (-gydF4y2BaygydF4y2BajgydF4y2Ba年代gydF4y2BajgydF4y2Ba日志(2)])]/ [2gydF4y2Ba
“二次”gydF4y2Ba 二次gydF4y2Ba [0, 1]gydF4y2Ba (1 -gydF4y2BaygydF4y2BajgydF4y2Ba(2gydF4y2Ba年代gydF4y2BajgydF4y2Ba- 1))gydF4y2Ba2gydF4y2Ba/ 2gydF4y2Ba

该软件将二进制损耗归一化,使损耗为0.5gydF4y2BaygydF4y2BajgydF4y2Ba= 0,并使用二元学习者的平均值进行聚合gydF4y2Ba(Allwein等。)gydF4y2Ba.gydF4y2Ba

不要将二进制损耗与总体分类损耗(由gydF4y2Ba“LossFun”gydF4y2Ba的名称-值对参数gydF4y2Ba损失gydF4y2Ba而且gydF4y2Ba预测gydF4y2Ba对象函数),它度量ECOC分类器作为一个整体的执行情况。gydF4y2Ba

编码设计gydF4y2Ba

一个gydF4y2Ba编码设计gydF4y2Ba是一个矩阵,其中的元素指导每个二元学习者训练哪些类,也就是说,如何将多类问题简化为一系列二元问题。gydF4y2Ba

编码设计的每一行对应一个不同的类,每一列对应一个二进制学习者。在三元编码设计中,对于特定列(或二元学习器):gydF4y2Ba

  • 包含1的行指示二元学习者将对应类中的所有观察结果归为正类。gydF4y2Ba

  • 包含-1的行指示二元学习者将对应类中的所有观察结果分组为负类。gydF4y2Ba

  • 包含0的行指示二元学习者忽略对应类中的所有观察结果。gydF4y2Ba

编码设计矩阵具有大的,最小的,基于汉明测度的成对行距离是最优的。有关成对行距离的详细信息,请参见gydF4y2Ba随机编码设计矩阵gydF4y2Ba而且gydF4y2Ba[4]gydF4y2Ba.gydF4y2Ba

下表描述了流行的编码设计。gydF4y2Ba

编码设计gydF4y2Ba 描述gydF4y2Ba 许多学习者gydF4y2Ba 最小成对行距离gydF4y2Ba
one-versus-all(卵子)gydF4y2Ba 对于每一个二元学习者,一类是积极的,其余的是消极的。这种设计用尽了所有积极的课堂作业的组合。gydF4y2Ba KgydF4y2Ba 2gydF4y2Ba
one-versus-one(蛋)gydF4y2Ba 对于每一个二元学习者,一类是积极的,另一类是消极的,其余的被忽略。这种设计用尽了类对分配的所有组合。gydF4y2Ba

KgydF4y2Ba(gydF4y2BaKgydF4y2Ba- 1) / 2gydF4y2Ba

1gydF4y2Ba
二进制文件完成gydF4y2Ba

这种设计将类划分为所有的二进制组合,并且不忽略任何类。也就是说,所有的课堂作业都是gydF4y2Ba1gydF4y2Ba而且gydF4y2Ba1gydF4y2Ba每个二元学习者的作业中至少有一个积极类和一个消极类。gydF4y2Ba

2gydF4y2BaKgydF4y2Ba- 1gydF4y2Ba- 1gydF4y2Ba 2gydF4y2BaKgydF4y2Ba- 2gydF4y2Ba
三元完成gydF4y2Ba

这种设计将类划分为所有三元组合。也就是说,所有的课堂作业都是gydF4y2Ba0gydF4y2Ba,gydF4y2Ba1gydF4y2Ba,gydF4y2Ba1gydF4y2Ba每个二元学习者的作业中至少有一个积极类和一个消极类。gydF4y2Ba

(3gydF4y2BaKgydF4y2Ba- 2gydF4y2BaKgydF4y2Ba+ 1gydF4y2Ba+ 1) / 2gydF4y2Ba

3.gydF4y2BaKgydF4y2Ba- 2gydF4y2Ba
序数gydF4y2Ba 对于第一个二元学习者来说,第一节课是消极的,其余的都是积极的。对于第二个二元学习者来说,前两个类别是消极的,其余的是积极的,以此类推。gydF4y2Ba KgydF4y2Ba- 1gydF4y2Ba 1gydF4y2Ba
密集的随机gydF4y2Ba 对于每一个二元学习者,软件随机地将类分为正类和负类,每种类型至少有一个。有关更多细节,请参见gydF4y2Ba随机编码设计矩阵gydF4y2Ba.gydF4y2Ba

随机,但大约10个日志gydF4y2Ba2gydF4y2BaKgydF4y2Ba

变量gydF4y2Ba
稀疏随机gydF4y2Ba 对于每一个二元学习者,软件随机分配正或负的类别,每个类别的概率为0.25,忽略概率为0.5的类别。有关更多细节,请参见gydF4y2Ba随机编码设计矩阵gydF4y2Ba.gydF4y2Ba

随机,但大约15个日志gydF4y2Ba2gydF4y2BaKgydF4y2Ba

变量gydF4y2Ba

该图比较了编码设计中二进制学习者的数量随时间的增加而增加的情况gydF4y2BaKgydF4y2Ba.gydF4y2Ba

纠错输出码模型gydF4y2Ba

一个gydF4y2Ba纠错输出码(ECOC)模型gydF4y2Ba将三个或多个类的分类问题简化为一组二进制分类问题。gydF4y2Ba

ECOC分类需要一个编码设计,它决定了二进制学习者训练的类,以及一个解码方案,它决定了二进制分类器的结果(预测)如何聚合。gydF4y2Ba

假设如下:gydF4y2Ba

  • 分类问题有三类。gydF4y2Ba

  • 编码设计是一对一的。对于三个类,本编码设计为gydF4y2Ba

    学习者1gydF4y2Ba 学习者2gydF4y2Ba 学习者3gydF4y2Ba 类1gydF4y2Ba 1gydF4y2Ba 1gydF4y2Ba 0gydF4y2Ba 二班gydF4y2Ba −gydF4y2Ba 1gydF4y2Ba 0gydF4y2Ba 1gydF4y2Ba 3班gydF4y2Ba 0gydF4y2Ba −gydF4y2Ba 1gydF4y2Ba −gydF4y2Ba 1gydF4y2Ba

  • 解码方案采用了损耗gydF4y2BaggydF4y2Ba.gydF4y2Ba

  • 学习者是支持向量机。gydF4y2Ba

为了建立这个分类模型,ECOC算法遵循以下步骤。gydF4y2Ba

  1. 学习者1在1班或2班进行观察训练,将1班视为积极班,将2班视为消极班。其他的学习者也接受类似的训练。gydF4y2Ba

  2. 让gydF4y2Ba米gydF4y2Ba是带有元素的编码设计矩阵gydF4y2Ba米gydF4y2Ba吉隆坡gydF4y2Ba,gydF4y2Ba年代gydF4y2BalgydF4y2Ba为积极学习者班级的预测分类分数gydF4y2BalgydF4y2Ba.算法将一个新的观察值赋给类(gydF4y2Ba kgydF4y2Ba ^gydF4y2Ba ),将损失的总和减至最低gydF4y2BalgydF4y2Ba二进制的学习者。gydF4y2Ba

    kgydF4y2Ba ^gydF4y2Ba =gydF4y2Ba argmingydF4y2Ba kgydF4y2Ba ∑gydF4y2Ba lgydF4y2Ba =gydF4y2Ba 1gydF4y2Ba lgydF4y2Ba |gydF4y2Ba 米gydF4y2Ba kgydF4y2Ba lgydF4y2Ba |gydF4y2Ba ggydF4y2Ba (gydF4y2Ba 米gydF4y2Ba kgydF4y2Ba lgydF4y2Ba ,gydF4y2Ba 年代gydF4y2Ba lgydF4y2Ba )gydF4y2Ba ∑gydF4y2Ba lgydF4y2Ba =gydF4y2Ba 1gydF4y2Ba lgydF4y2Ba |gydF4y2Ba 米gydF4y2Ba kgydF4y2Ba lgydF4y2Ba |gydF4y2Ba .gydF4y2Ba

与其他多类模型相比,ECOC模型可以提高分类精度gydF4y2Ba[2]gydF4y2Ba.gydF4y2Ba

提示gydF4y2Ba

  • 二元学习者的数量随着课程数量的增加而增加。对于包含许多类的问题,gydF4y2BabinarycompletegydF4y2Ba而且gydF4y2BaternarycompletegydF4y2Ba编码设计效率不高。然而:gydF4y2Ba

    • 如果gydF4y2BaKgydF4y2Ba≤4,则使用gydF4y2BaternarycompletegydF4y2Ba编码设计而不是gydF4y2BasparserandomgydF4y2Ba.gydF4y2Ba

    • 如果gydF4y2BaKgydF4y2Ba≤5,则使用gydF4y2BabinarycompletegydF4y2Ba编码设计而不是gydF4y2BadenserandomgydF4y2Ba.gydF4y2Ba

    您可以通过输入显示经过训练的ECOC分类器的编码设计矩阵gydF4y2BaMdl。CodingMatrix进入命令窗口。gydF4y2Ba

  • 您应该利用对应用程序的深入了解,并考虑到计算约束,形成一个编码矩阵。如果你有足够的计算能力和时间,那么尝试几个编码矩阵,并选择性能最好的一个(例如,检查每个模型的混淆矩阵使用gydF4y2BaconfusionchartgydF4y2Ba).gydF4y2Ba

  • 分析交叉验证(gydF4y2BaLeaveoutgydF4y2Ba)对于有很多观测值的数据集是低效的。相反,使用gydF4y2BakgydF4y2Ba倍交叉验证(gydF4y2BaKFoldgydF4y2Ba).gydF4y2Ba

  • 在训练一个模型之后,您可以生成预测新数据标签的C/ c++代码。生成C/ c++代码需要gydF4y2BaMATLAB编码器™gydF4y2Ba.有关详细信息,请参见gydF4y2Ba代码生成简介gydF4y2Ba.gydF4y2Ba

算法gydF4y2Ba

全部折叠gydF4y2Ba

自定义编码设计矩阵gydF4y2Ba

自定义编码矩阵必须具有一定的形式。软件验证自定义编码矩阵,确保:gydF4y2Ba

  • 每个元素都是-1、0或1。gydF4y2Ba

  • 每列至少包含一个-1和一个1。gydF4y2Ba

  • 对于所有不同的列向量gydF4y2BaugydF4y2Ba而且gydF4y2BavgydF4y2Ba,gydF4y2BaugydF4y2Ba≠gydF4y2BavgydF4y2Ba而且gydF4y2BaugydF4y2Ba≠-gydF4y2BavgydF4y2Ba.gydF4y2Ba

  • 所有行向量都是唯一的。gydF4y2Ba

  • 这个矩阵可以将任何两个类分开。也就是说,你可以按照以下规则从任意行移动到任意行:gydF4y2Ba

    • 你可以从1垂直移动到-1或者-1垂直移动到1。gydF4y2Ba

    • 可以从一个非零元素水平移动到另一个非零元素。gydF4y2Ba

    • 您只能使用矩阵的一列进行一次垂直移动。gydF4y2Ba

    如果不可能从行移动gydF4y2Ba我gydF4y2Ba行gydF4y2BajgydF4y2Ba使用这些规则,然后是类gydF4y2Ba我gydF4y2Ba而且gydF4y2BajgydF4y2Ba不能被设计分开。例如,在编码设计中gydF4y2Ba

    [gydF4y2Ba 1gydF4y2Ba 0gydF4y2Ba −gydF4y2Ba 1gydF4y2Ba 0gydF4y2Ba 0gydF4y2Ba 1gydF4y2Ba 0gydF4y2Ba −gydF4y2Ba 1gydF4y2Ba ]gydF4y2Ba

    类1和类2不能与类3和类4分离(也就是说,您不能从第2行中的-1水平移动到第2列,因为在该位置有一个0)。因此,软件拒绝这种编码设计。gydF4y2Ba

并行计算gydF4y2Ba

如果使用并行计算(参见gydF4y2Ba选项gydF4y2Ba),然后gydF4y2BafitcecocgydF4y2Ba并行训练二元学习者。gydF4y2Ba

先验概率和成本gydF4y2Ba

  • 先验概率-软件将指定类的先验概率规范化(gydF4y2Ba之前gydF4y2Ba)为每个二元学习者。让gydF4y2Ba米gydF4y2Ba是编码设计矩阵和gydF4y2Ba我gydF4y2Ba(gydF4y2Ba一个gydF4y2Ba,gydF4y2BacgydF4y2Ba)是一个指标矩阵。指标矩阵的维数与gydF4y2Ba一个gydF4y2Ba.的对应元素gydF4y2Ba一个gydF4y2Ba是gydF4y2BacgydF4y2Ba,则指示矩阵的元素为1,否则为0。让gydF4y2Ba米gydF4y2Ba+1gydF4y2Ba而且gydF4y2Ba米gydF4y2Ba-1gydF4y2Ba是gydF4y2BaKgydF4y2Ba——- - - - - -gydF4y2BalgydF4y2Ba这样的矩阵:gydF4y2Ba

    • 米gydF4y2Ba+1gydF4y2Ba=gydF4y2Ba米gydF4y2Ba○gydF4y2Ba我gydF4y2Ba(gydF4y2Ba米gydF4y2Ba,1),其中〇为按元素的乘法(即,gydF4y2BaM + = M *(M == 1)gydF4y2Ba).同时,让gydF4y2Ba 米gydF4y2Ba lgydF4y2Ba (gydF4y2Ba +gydF4y2Ba 1gydF4y2Ba )gydF4y2Ba 是列向量gydF4y2BalgydF4y2Ba的gydF4y2Ba米gydF4y2Ba+1gydF4y2Ba.gydF4y2Ba

    • 米gydF4y2Ba-1gydF4y2Ba= -gydF4y2Ba米gydF4y2Ba○gydF4y2Ba我gydF4y2Ba(gydF4y2Ba米gydF4y2Ba1) (gydF4y2BaMminus = - m。* (M = = 1)gydF4y2Ba).同时,让gydF4y2Ba 米gydF4y2Ba lgydF4y2Ba (gydF4y2Ba −gydF4y2Ba 1gydF4y2Ba )gydF4y2Ba 是列向量gydF4y2BalgydF4y2Ba的gydF4y2Ba米gydF4y2Ba-1gydF4y2Ba.gydF4y2Ba

    让gydF4y2Ba πgydF4y2Ba lgydF4y2Ba +gydF4y2Ba 1gydF4y2Ba =gydF4y2Ba 米gydF4y2Ba lgydF4y2Ba (gydF4y2Ba +gydF4y2Ba 1gydF4y2Ba )gydF4y2Ba °gydF4y2Ba πgydF4y2Ba 而且gydF4y2Ba πgydF4y2Ba lgydF4y2Ba −gydF4y2Ba 1gydF4y2Ba =gydF4y2Ba 米gydF4y2Ba lgydF4y2Ba (gydF4y2Ba −gydF4y2Ba 1gydF4y2Ba )gydF4y2Ba °gydF4y2Ba πgydF4y2Ba ,在那里gydF4y2BaπgydF4y2Ba是指定的类先验概率的向量(gydF4y2Ba之前gydF4y2Ba).gydF4y2Ba

    然后,二元学习者的正、负、标量类先验概率gydF4y2BalgydF4y2Ba是gydF4y2Ba

    πgydF4y2Ba ^gydF4y2Ba lgydF4y2Ba (gydF4y2Ba jgydF4y2Ba )gydF4y2Ba =gydF4y2Ba 为gydF4y2Ba πgydF4y2Ba lgydF4y2Ba (gydF4y2Ba jgydF4y2Ba )gydF4y2Ba 为gydF4y2Ba 1gydF4y2Ba 为gydF4y2Ba πgydF4y2Ba lgydF4y2Ba (gydF4y2Ba +gydF4y2Ba 1gydF4y2Ba )gydF4y2Ba 为gydF4y2Ba 1gydF4y2Ba +gydF4y2Ba 为gydF4y2Ba πgydF4y2Ba lgydF4y2Ba (gydF4y2Ba −gydF4y2Ba 1gydF4y2Ba )gydF4y2Ba 为gydF4y2Ba 1gydF4y2Ba ,gydF4y2Ba

    在哪里gydF4y2BajgydF4y2Ba= {1}gydF4y2Ba 为gydF4y2Ba 一个gydF4y2Ba 为gydF4y2Ba 1gydF4y2Ba 这是一个标准吗gydF4y2Ba一个gydF4y2Ba.gydF4y2Ba

  • 成本——软件规范化gydF4y2BaKgydF4y2Ba——- - - - - -gydF4y2BaKgydF4y2Ba成本矩阵gydF4y2BaCgydF4y2Ba(gydF4y2Ba成本gydF4y2Ba)为每个二元学习者。对于二进制学习者gydF4y2BalgydF4y2Ba,将一个负类观测值归为正类观测值的代价为gydF4y2Ba

    cgydF4y2Ba lgydF4y2Ba −gydF4y2Ba +gydF4y2Ba =gydF4y2Ba (gydF4y2Ba πgydF4y2Ba lgydF4y2Ba (gydF4y2Ba −gydF4y2Ba 1gydF4y2Ba )gydF4y2Ba )gydF4y2Ba ⊤gydF4y2Ba CgydF4y2Ba πgydF4y2Ba lgydF4y2Ba (gydF4y2Ba +gydF4y2Ba 1gydF4y2Ba )gydF4y2Ba .gydF4y2Ba

    同样地,将一个阳性类的观察结果分类为阴性类的代价是gydF4y2Ba

    cgydF4y2Ba lgydF4y2Ba +gydF4y2Ba −gydF4y2Ba =gydF4y2Ba (gydF4y2Ba πgydF4y2Ba lgydF4y2Ba (gydF4y2Ba +gydF4y2Ba 1gydF4y2Ba )gydF4y2Ba )gydF4y2Ba ⊤gydF4y2Ba CgydF4y2Ba πgydF4y2Ba lgydF4y2Ba (gydF4y2Ba −gydF4y2Ba 1gydF4y2Ba )gydF4y2Ba .gydF4y2Ba

    二元学习者的代价矩阵gydF4y2BalgydF4y2Ba是gydF4y2Ba

    CgydF4y2Ba lgydF4y2Ba =gydF4y2Ba [gydF4y2Ba 0gydF4y2Ba cgydF4y2Ba lgydF4y2Ba −gydF4y2Ba +gydF4y2Ba cgydF4y2Ba lgydF4y2Ba +gydF4y2Ba −gydF4y2Ba 0gydF4y2Ba ]gydF4y2Ba .gydF4y2Ba

    ECOC模型通过将错误分类成本与类先验概率相结合来适应错误分类成本。如果您指定gydF4y2Ba之前gydF4y2Ba而且gydF4y2Ba成本gydF4y2Ba,则软件对类先验概率进行如下调整:gydF4y2Ba

    πgydF4y2Ba ¯gydF4y2Ba lgydF4y2Ba −gydF4y2Ba 1gydF4y2Ba =gydF4y2Ba cgydF4y2Ba lgydF4y2Ba −gydF4y2Ba +gydF4y2Ba πgydF4y2Ba ^gydF4y2Ba lgydF4y2Ba −gydF4y2Ba 1gydF4y2Ba cgydF4y2Ba lgydF4y2Ba −gydF4y2Ba +gydF4y2Ba πgydF4y2Ba ^gydF4y2Ba lgydF4y2Ba −gydF4y2Ba 1gydF4y2Ba +gydF4y2Ba cgydF4y2Ba +gydF4y2Ba −gydF4y2Ba πgydF4y2Ba ^gydF4y2Ba lgydF4y2Ba +gydF4y2Ba 1gydF4y2Ba πgydF4y2Ba ¯gydF4y2Ba lgydF4y2Ba +gydF4y2Ba 1gydF4y2Ba =gydF4y2Ba cgydF4y2Ba lgydF4y2Ba +gydF4y2Ba −gydF4y2Ba πgydF4y2Ba ^gydF4y2Ba lgydF4y2Ba +gydF4y2Ba 1gydF4y2Ba cgydF4y2Ba lgydF4y2Ba −gydF4y2Ba +gydF4y2Ba πgydF4y2Ba ^gydF4y2Ba lgydF4y2Ba −gydF4y2Ba 1gydF4y2Ba +gydF4y2Ba cgydF4y2Ba +gydF4y2Ba −gydF4y2Ba πgydF4y2Ba ^gydF4y2Ba lgydF4y2Ba +gydF4y2Ba 1gydF4y2Ba .gydF4y2Ba

随机编码设计矩阵gydF4y2Ba

对于给定数量的类gydF4y2BaKgydF4y2Ba,该软件生成如下随机编码设计矩阵。gydF4y2Ba

  1. 该软件生成以下矩阵之一:gydF4y2Ba

    1. 密集随机-软件以相等的概率分配1或- 1给的每个元素gydF4y2BaKgydF4y2Ba——- - - - - -gydF4y2BalgydF4y2BadgydF4y2Ba编码设计矩阵,其中gydF4y2Ba lgydF4y2Ba dgydF4y2Ba ≈gydF4y2Ba ⌈gydF4y2Ba 10gydF4y2Ba 日志gydF4y2Ba 2gydF4y2Ba KgydF4y2Ba ⌉gydF4y2Ba .gydF4y2Ba

    2. 稀疏随机-软件分配1的每个元素gydF4y2BaKgydF4y2Ba——- - - - - -gydF4y2BalgydF4y2Ba年代gydF4y2Ba概率为0.25的编码设计矩阵,概率为0.25的-1,概率为0.5的0gydF4y2Ba lgydF4y2Ba 年代gydF4y2Ba ≈gydF4y2Ba ⌈gydF4y2Ba 15gydF4y2Ba 日志gydF4y2Ba 2gydF4y2Ba KgydF4y2Ba ⌉gydF4y2Ba .gydF4y2Ba

  2. 如果一列不包含至少一个1和至少一个-1,那么软件将删除该列。gydF4y2Ba

  3. 对于不同的列gydF4y2BaugydF4y2Ba而且gydF4y2BavgydF4y2Ba,如果gydF4y2BaugydF4y2Ba=gydF4y2BavgydF4y2Ba或gydF4y2BaugydF4y2Ba= -gydF4y2BavgydF4y2Ba,然后软件就会删除gydF4y2BavgydF4y2Ba从编码设计矩阵。gydF4y2Ba

软件默认随机生成10,000个矩阵,并保留基于Hamming测度的最大最小成对行距离矩阵(gydF4y2Ba[4]gydF4y2Ba)由gydF4y2Ba

ΔgydF4y2Ba (gydF4y2Ba kgydF4y2Ba 1gydF4y2Ba ,gydF4y2Ba kgydF4y2Ba 2gydF4y2Ba )gydF4y2Ba =gydF4y2Ba 0.5gydF4y2Ba ∑gydF4y2Ba lgydF4y2Ba =gydF4y2Ba 1gydF4y2Ba lgydF4y2Ba |gydF4y2Ba 米gydF4y2Ba kgydF4y2Ba 1gydF4y2Ba lgydF4y2Ba |gydF4y2Ba |gydF4y2Ba 米gydF4y2Ba kgydF4y2Ba 2gydF4y2Ba lgydF4y2Ba |gydF4y2Ba |gydF4y2Ba 米gydF4y2Ba kgydF4y2Ba 1gydF4y2Ba lgydF4y2Ba −gydF4y2Ba 米gydF4y2Ba kgydF4y2Ba 2gydF4y2Ba lgydF4y2Ba |gydF4y2Ba ,gydF4y2Ba

在哪里gydF4y2Ba米gydF4y2BakgydF4y2BajgydF4y2BalgydF4y2Ba编码是设计矩阵的一个元素吗gydF4y2BajgydF4y2Ba.gydF4y2Ba

万博1manbetx支持向量存储gydF4y2Ba

默认情况下,为了提高效率,gydF4y2BafitcecocgydF4y2Ba清空了gydF4y2BaαgydF4y2Ba,gydF4y2Ba万博1manbetxSupportVectorLabelsgydF4y2Ba,gydF4y2Ba万博1manbetxSupportVectorsgydF4y2Ba所有线性支持向量机二元学习器的性质。gydF4y2BafitcecocgydF4y2Ba列表gydF4y2BaβgydF4y2Ba,而不是gydF4y2BaαgydF4y2Ba,在模型显示。gydF4y2Ba

来存储gydF4y2BaαgydF4y2Ba,gydF4y2Ba万博1manbetxSupportVectorLabelsgydF4y2Ba,gydF4y2Ba万博1manbetxSupportVectorsgydF4y2Ba,传递一个指定存储支持向量的线性SVM模板万博1manbetxgydF4y2BafitcecocgydF4y2Ba.例如,输入:gydF4y2Ba

t = templateSVM (gydF4y2Ba“Save万博1manbetxSupportVectors”gydF4y2BaMdl = fitcecoc(X,Y,gydF4y2Ba“学习者”gydF4y2Bat);gydF4y2Ba

您可以通过传递结果来删除支持向量和相关万博1manbetx值gydF4y2BaClassificationECOCgydF4y2Ba模型gydF4y2Badiscard万博1manbetxSupportVectorsgydF4y2Ba.gydF4y2Ba

参考文献gydF4y2Ba

[1]奥尔温,E., R.夏皮尔,和Y.辛格。将多类简化为二进制:边距分类器的统一方法。gydF4y2Ba机器学习研究杂志gydF4y2Ba.第1卷,2000,第113-141页。gydF4y2Ba

[2] Fürnkranz,约翰内斯,“轮询分类。”gydF4y2Baj·马赫。学习。Res。gydF4y2Ba2002年,第2卷,第721-747页。gydF4y2Ba

[3] Escalera, S., O. Pujol和P. Radeva。三进制纠错输出码的译码过程。gydF4y2Ba模式分析与机器智能汇刊gydF4y2Ba.2010年第7期第32卷第120-134页。gydF4y2Ba

[4] Escalera, S., O. Pujol和P. Radeva。用于纠错输出码稀疏设计的三元码的可分离性。gydF4y2BaRecog模式。列托人。gydF4y2Ba2009年第3期,第285-297页。gydF4y2Ba

扩展功能gydF4y2Ba

介绍了R2014bgydF4y2Ba