为支持向量机或其他分类器拟合多类模型金宝appgydF4y2Ba
返回一个完整的,经过训练的,多类,gydF4y2Ba纠错输出码(ECOC)模型gydF4y2Ba使用表中的预测器gydF4y2BaMdlgydF4y2Ba
= fitcecoc (gydF4y2Ba资源描述gydF4y2Ba
,gydF4y2BaResponseVarNamegydF4y2Ba
)gydF4y2Ba资源描述gydF4y2Ba
类标签在里面gydF4y2Ba资源描述。ResponseVarNamegydF4y2Ba
.gydF4y2BafitcecocgydF4y2Ba
使用gydF4y2BaKgydF4y2Ba(gydF4y2BaKgydF4y2Ba- 1)/2二进制支持向量机金宝app(SVM)模型采用一对一gydF4y2Ba编码设计gydF4y2Ba,在那里gydF4y2BaKgydF4y2Ba是唯一类标签(级别)的数量。gydF4y2BaMdlgydF4y2Ba
是一个gydF4y2BaClassificationECOCgydF4y2Ba
模型。gydF4y2Ba
使用表中的预测器返回一个ECOC模型gydF4y2BaMdlgydF4y2Ba
= fitcecoc (gydF4y2Ba资源描述gydF4y2Ba
,gydF4y2Ba公式gydF4y2Ba
)gydF4y2Ba资源描述gydF4y2Ba
还有班级标签。gydF4y2Ba公式gydF4y2Ba
是否有响应的解释模型和预测变量的子集gydF4y2Ba资源描述gydF4y2Ba
用于训练。gydF4y2Ba
使用表中的预测器返回一个ECOC模型gydF4y2BaMdlgydF4y2Ba
= fitcecoc (gydF4y2Ba资源描述gydF4y2Ba
,gydF4y2BaYgydF4y2Ba
)gydF4y2Ba资源描述gydF4y2Ba
类的标签是向量gydF4y2BaYgydF4y2Ba
.gydF4y2Ba
返回使用预测器训练的ECOC模型gydF4y2BaMdlgydF4y2Ba
= fitcecoc (gydF4y2BaXgydF4y2Ba
,gydF4y2BaYgydF4y2Ba
)gydF4y2BaXgydF4y2Ba
还有类别标签gydF4y2BaYgydF4y2Ba
.gydF4y2Ba
返回一个ECOC模型,其中包含一个或多个指定的附加选项gydF4y2BaMdlgydF4y2Ba
= fitcecoc (gydF4y2Ba___gydF4y2Ba,gydF4y2Ba名称,值gydF4y2Ba
)gydF4y2Ba名称,值gydF4y2Ba
对参数,使用前面的任何语法。gydF4y2Ba
例如,指定不同的二进制学习器、不同的编码设计或交叉验证。方法进行交叉验证是一种良好的实践gydF4y2BaKfoldgydF4y2Ba
名称,值gydF4y2Ba
对参数。交叉验证结果决定了模型的泛化程度。gydF4y2Ba
(gydF4y2Ba
属性时,还返回超参数优化详细信息gydF4y2BaMdlgydF4y2Ba
,gydF4y2BaHyperparameterOptimizationResultsgydF4y2Ba
= fitcecocgydF4y2Ba___gydF4y2Ba,gydF4y2Ba名称,值gydF4y2Ba
)gydF4y2BaOptimizeHyperparametersgydF4y2Ba
名值对参数,并使用线性或核二进制学习器。为其他gydF4y2Ba学习者gydF4y2Ba
,gydF4y2BaHyperparameterOptimizationResultsgydF4y2Ba
的属性gydF4y2BaMdlgydF4y2Ba
包含结果。gydF4y2Ba
使用支持向量机(SVM)二元学习器训练多类纠错输出代码(ECOC)模型。金宝appgydF4y2Ba
加载费雪的虹膜数据集。指定预测器数据gydF4y2BaXgydF4y2Ba
以及响应数据gydF4y2BaYgydF4y2Ba
.gydF4y2Ba
负载gydF4y2BafisheririsgydF4y2BaX = meas;Y =物种;gydF4y2Ba
使用默认选项训练一个多类ECOC模型。gydF4y2Ba
Mdl = fitcecoc(X,Y)gydF4y2Ba
Mdl = ClassificationECOC ResponseName: 'Y' CategoricalPredictors: [] ClassNames: {'setosa' 'versicolor' 'virginica'} ScoreTransform: 'none' BinaryLearners: {3x1 cell} CodingName: 'onevsone'属性,方法gydF4y2Ba
MdlgydF4y2Ba
是一个gydF4y2BaClassificationECOCgydF4y2Ba
模型。默认情况下,gydF4y2BafitcecocgydF4y2Ba
使用SVM二元学习器和一对一编码设计。你可以访问gydF4y2BaMdlgydF4y2Ba
使用点表示法的属性。gydF4y2Ba
显示类名和编码设计矩阵。gydF4y2Ba
Mdl。Cl一个年代年代的名字年代gydF4y2Ba
ans =gydF4y2Ba3 x1细胞gydF4y2Ba{'setosa'} {'versicolor'} {'virginica'}gydF4y2Ba
编码垫= Mdl。CodingMatrixgydF4y2Ba
CodingMat =gydF4y2Ba3×3gydF4y2Ba1 1 0 -1 0 0 -1 -1gydF4y2Ba
针对三个类的一对一编码设计产生三个二进制学习器。的列gydF4y2BaCodingMatgydF4y2Ba
对应于学习器,行对应于类。类的顺序与in的顺序相同gydF4y2BaMdl。Cl一个年代年代的名字年代gydF4y2Ba
.例如,gydF4y2BaCodingMat (: 1)gydF4y2Ba
是gydF4y2Ba(1;1;0]gydF4y2Ba
并表明该软件使用分类为的所有观测值来训练第一个支持向量机二元学习器gydF4y2Ba“setosa”gydF4y2Ba
而且gydF4y2Ba“多色的”gydF4y2Ba
.因为gydF4y2Ba“setosa”gydF4y2Ba
对应于gydF4y2Ba1gydF4y2Ba
,是正类;gydF4y2Ba“多色的”gydF4y2Ba
对应于gydF4y2Ba1gydF4y2Ba
,所以它是负类。gydF4y2Ba
您可以使用单元索引和点表示法访问每个二进制学习器。gydF4y2Ba
Mdl。BinaryLearners {1}gydF4y2Ba第一个二元学习者gydF4y2Ba
ans = CompactClassificationSVM ResponseName: 'Y' CategoricalPredictors: [] ClassNames: [-1 1] ScoreTransform: 'none' Beta: [4x1 double]偏差:1.4492 KernelParameters: [1x1 struct]属性,方法gydF4y2Ba
计算再替换分类误差。gydF4y2Ba
error = resubLoss(Mdl)gydF4y2Ba
误差= 0.0067gydF4y2Ba
训练数据的分类误差很小,但分类器可能是一个过拟合模型。可以使用交叉验证分类器gydF4y2BacrossvalgydF4y2Ba
然后计算交叉验证分类误差。gydF4y2Ba
训练一个由多个二元线性分类模型组成的ECOC模型。gydF4y2Ba
加载NLP数据集。gydF4y2Ba
负载gydF4y2BanlpdatagydF4y2Ba
XgydF4y2Ba
是一个稀疏矩阵的预测数据,和gydF4y2BaYgydF4y2Ba
是类标签的分类向量。数据中有两个以上的类。gydF4y2Ba
创建一个默认的线性分类模型模板。gydF4y2Ba
t = templatlinear ();gydF4y2Ba
若要调整默认值,请参见gydF4y2Ba名称-值对参数gydF4y2Ba在gydF4y2BatemplateLineargydF4y2Ba
页面。gydF4y2Ba
训练一个由多个二进制线性分类模型组成的ECOC模型,该模型可以根据文档网页上单词的频率分布来识别产品。为了更快的训练时间,转置预测器数据,并指定观察值对应于列。gydF4y2Ba
X = X';rng (1);gydF4y2Ba%用于再现性gydF4y2BaMdl = fitcecoc(X,Y,gydF4y2Ba“学习者”gydF4y2BatgydF4y2Ba“ObservationsIn”gydF4y2Ba,gydF4y2Ba“列”gydF4y2Ba)gydF4y2Ba
Mdl = CompactClassificationECOC ResponseName: 'Y' ClassNames: [1x13 categorical] ScoreTransform: 'none' BinaryLearners: {78x1 cell} CodingMatrix: [13x78 double]属性,方法gydF4y2Ba
或者,您可以使用以下方法训练由默认线性分类模型组成的ECOC模型gydF4y2Ba“学习者”,“线性”gydF4y2Ba
.gydF4y2Ba
为了保存记忆,gydF4y2BafitcecocgydF4y2Ba
返回由线性分类学习器组成的训练ECOC模型gydF4y2BaCompactClassificationECOCgydF4y2Ba
模型对象。gydF4y2Ba
对ECOC分类器与SVM二元学习器进行交叉验证,并估计广义分类误差。gydF4y2Ba
加载费雪的虹膜数据集。指定预测器数据gydF4y2BaXgydF4y2Ba
以及响应数据gydF4y2BaYgydF4y2Ba
.gydF4y2Ba
负载gydF4y2BafisheririsgydF4y2BaX = meas;Y =物种;rng (1);gydF4y2Ba%用于再现性gydF4y2Ba
创建SVM模板,并标准化预测器。gydF4y2Ba
t = templateSVM(gydF4y2Ba“标准化”gydF4y2Ba,真正的)gydF4y2Ba
t =拟合分类支持向量机模板。Alpha: [0x1 double] BoxConstraint: [] CacheSize: [] CachingMethod: " ClipAlphas: [] DeltaGradientTolerance: [] Epsilon: [] GapTolerance: [] kkttolance: [] IterationLimit: [] KernelFunction: " KernelScale: [] KernelOffset: [] kernelpoliialorder: [] NumPrint: [] Nu: [] OutlierFraction: [] removeduplicate: [] ShrinkagePeriod: [] Solver: " StandardizeData: 1 SaveSupportVe金宝appctors: [] VerbosityLevel: [] Version: 2 Method: 'SVM' Type: 'classification'gydF4y2Ba
tgydF4y2Ba
为支持向量机模板。大多数模板对象属性是空的。在训练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(cvdl)gydF4y2Ba
genError = 0.0400gydF4y2Ba
广义分类误差为4%,说明ECOC分类器泛化效果较好。gydF4y2Ba
使用支持向量机二元学习器训练ECOC分类器。首先预测训练样本标签和类后验概率。然后预测网格中每个点的最大类后验概率。可视化结果。gydF4y2Ba
加载费雪的虹膜数据集。指定花瓣尺寸作为预测器,指定物种名称作为响应。gydF4y2Ba
负载gydF4y2BafisheririsgydF4y2BaX = meas(:,3:4);Y =物种;rng (1);gydF4y2Ba%用于再现性gydF4y2Ba
创建SVM模板。标准化预测器,并指定高斯核。gydF4y2Ba
t = templateSVM(gydF4y2Ba“标准化”gydF4y2Ba,真的,gydF4y2Ba“KernelFunction”gydF4y2Ba,gydF4y2Ba“高斯”gydF4y2Ba);gydF4y2Ba
tgydF4y2Ba
为支持向量机模板。它的大部分属性都是空的。当软件训练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个积极的观察来训练二元学习者1 (SVM)。负类指标:2正类指标:1拟合学习者1的后验概率(SVM)。用50个消极和50个积极的观察来训练二元学习者2 (SVM)。负类指标:3正类指标:1拟合学习者2的后验概率(SVM)。用50个消极和50个积极的观察来训练二元学习者3 (SVM)。负类指标:3正类指标:2拟合学习者3的后验概率(SVM)。gydF4y2Ba
MdlgydF4y2Ba
是一个gydF4y2BaClassificationECOCgydF4y2Ba
模型。相同的SVM模板适用于每个二元学习器,但是您可以通过传入模板的单元格向量来调整每个二元学习器的选项。gydF4y2Ba
预测训练样本标签和类后验概率。方法在计算标签和类后验概率期间显示诊断消息gydF4y2Ba“详细”gydF4y2Ba
名称-值对参数。gydF4y2Ba
[label,~,~,Posterior] = resubPredict(Mdl,gydF4y2Ba“详细”gydF4y2Ba1);gydF4y2Ba
所有学习者的预测都经过计算。已计算了所有观测值的损失。计算后验概率……gydF4y2Ba
Mdl。BinaryLossgydF4y2Ba
Ans = '二次元'gydF4y2Ba
该软件将观测值分配给产生最小平均二进制损失的类。因为所有二元学习器都在计算后验概率,所以二元损失函数为gydF4y2Ba二次gydF4y2Ba
.gydF4y2Ba
显示一组随机结果。gydF4y2Ba
idx = randsample(size(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.0039322 0.003987 0.99208 {'virginica'} 0.017067 0.018263 0.96467 {'virginica'} 0.014948 0.015856 0.9692 {' vericolor '} {' vericolor '} 0.02197e -14 0.87318 0.12682 {' settosa '} {' settosa '} 0.999 0.00025092 0.00074638 {'versicolor'} 2.2195e-14 0.05943 0.94057 {'versicolor'} {'versicolor'} 2.2194e-14 0.97001 0.029985 {' settosa '}} {'setosa' } 0.999 0.00024991 0.0007474 {'versicolor'} {'versicolor'} 0.0085642 0.98259 0.0088487 {'setosa' } {'setosa' } 0.999 0.00025013 0.00074717
的列gydF4y2Ba后gydF4y2Ba
对应的类顺序gydF4y2BaMdl。Cl一个年代年代的名字年代gydF4y2Ba
.gydF4y2Ba
在观察到的预测器空间中定义一个值网格。预测网格中每个实例的后验概率。gydF4y2Ba
xMax = max(X);xMin = min(X);x1Pts = linspace(xMin(1),xMax(1));x2Pts = linspace(xMin(2),xMax(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“花瓣宽度(厘米)”gydF4y2Ba)轴gydF4y2Ba紧gydF4y2Ba传奇(gh,gydF4y2Ba“位置”gydF4y2Ba,gydF4y2Ba“西北”gydF4y2Ba)举行gydF4y2Ba从gydF4y2Ba
训练一个单一对所有的ECOC分类器gydF4y2BaGentleBoostgydF4y2Ba
具有代理分割的决策树集合。为了加快训练速度,将数值预测器放入垃圾箱,并使用并行计算。Binning仅在以下情况有效gydF4y2BafitcecocgydF4y2Ba
使用树学习器。训练结束后,使用10倍交叉验证估计分类误差。注意,并行计算需要并行计算工具箱™。gydF4y2Ba
加载样例数据gydF4y2Ba
装载和检查gydF4y2Ba心律失常gydF4y2Ba
数据集。gydF4y2Ba
负载gydF4y2Ba心律失常gydF4y2Ba[n,p] = size(X)gydF4y2Ba
N = 452gydF4y2Ba
P = 279gydF4y2Ba
isLabels =唯一的(Y);nLabels = number (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
树= templateTree(gydF4y2Ba“代孕”gydF4y2Ba,gydF4y2Ba“上”gydF4y2Ba);tEnsemble =模板集成(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
-使用并行计算工具箱许可证,您可以通过使用并行计算来加快计算速度,它将每个二进制学习器发送给池中的工作器。worker的数量取决于您的系统配置。当你对二叉学习器使用决策树时,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
oolabel = kfoldPredict(cvdl,gydF4y2Ba“选项”gydF4y2Ba、选择);ConfMat =混淆表(Y, oolabel,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));edges = mld . binedges;gydF4y2Ba查找已分类预测符的索引。gydF4y2BaidxNumeric = find(~cellfun(@isempty,edges));gydF4y2Ba如果gydF4y2Baiscolumn(idxNumeric) idxNumeric = idxNumeric';gydF4y2Ba结束gydF4y2Ba为gydF4y2Baj = idxNumeric x = x (:,j);gydF4y2Ba如果x是一个表,则将x转换为数组。gydF4y2Ba如果gydF4y2Bastable(x) x = table2array(x);gydF4y2Ba结束gydF4y2Ba使用离散化函数将x分组到箱子中。gydF4y2BaXbinned =离散化(x,[-inf;边缘{};正]);Xbinned(:,j) = Xbinned;gydF4y2Ba结束gydF4y2Ba
XbinnedgydF4y2Ba
包含数值预测器的容器索引,范围从1到容器数。gydF4y2BaXbinnedgydF4y2Ba
值是gydF4y2Ba0gydF4y2Ba
对于分类预测器。如果gydF4y2BaXgydF4y2Ba
包含gydF4y2Ba南gydF4y2Ba
S,然后是对应的gydF4y2BaXbinnedgydF4y2Ba
值是gydF4y2Ba南gydF4y2Ba
年代。gydF4y2Ba
自动使用超参数优化gydF4y2BafitcecocgydF4y2Ba
.gydF4y2Ba
加载gydF4y2BafisheririsgydF4y2Ba
数据集。gydF4y2Ba
负载gydF4y2BafisheririsgydF4y2BaX = meas;Y =物种;gydF4y2Ba
通过使用自动超参数优化,找到最小化5倍交叉验证损失的超参数。为了重现性,设置随机种子并使用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 | 0.98396 | 0.10667 | 0.10667 | onevsone | 5.6939 | 200.36 | | 2 | | 0.066667 |最好3..6612|0.066667 | 0.068735 | onevsone | 94.849 | 0.0032549 | | 3 | Accept | 0.08 | 0.4554 | 0.066667 | 0.066837 | onevsall | 0.01378 | 0.076021 | | 4 | Accept | 0.08 | 0.24984 | 0.066667 | 0.066676 | onevsall | 889 | 38.798 | | 5 | Best | 0.04 | 0.52661 | 0.04 | 0.040502 | onevsone | 0.021561 | 0.01569 | | 6 | Accept | 0.04 | 0.32599 | 0.04 | 0.039999 | onevsone | 0.48338 | 0.02941 | | 7 | Accept | 0.04 | 0.33704 | 0.04 | 0.039989 | onevsone | 305.45 | 0.18647 | | 8 | Best | 0.026667 | 0.36611 | 0.026667 | 0.026674 | onevsone | 0.0010168 | 0.10757 | | 9 | Accept | 0.086667 | 0.24971 | 0.026667 | 0.026669 | onevsone | 0.001007 | 0.3275 | | 10 | Accept | 0.046667 | 1.3398 | 0.026667 | 0.026673 | onevsone | 736.18 | 0.071026 | | 11 | Accept | 0.04 | 0.35546 | 0.026667 | 0.035679 | onevsone | 35.928 | 0.13079 | | 12 | Accept | 0.033333 | 0.31774 | 0.026667 | 0.030065 | onevsone | 0.0017593 | 0.11245 | | 13 | Accept | 0.026667 | 0.26496 | 0.026667 | 0.026544 | onevsone | 0.0011306 | 0.062222 | | 14 | Accept | 0.026667 | 0.34133 | 0.026667 | 0.026089 | onevsone | 0.0011124 | 0.079161 | | 15 | Accept | 0.026667 | 0.24303 | 0.026667 | 0.026184 | onevsone | 0.0014395 | 0.073096 | | 16 | Best | 0.02 | 0.207 | 0.02 | 0.021144 | onevsone | 0.0010299 | 0.035054 | | 17 | Accept | 0.02 | 0.33381 | 0.02 | 0.020431 | onevsone | 0.0010379 | 0.03138 | | 18 | Accept | 0.033333 | 0.25211 | 0.02 | 0.024292 | onevsone | 0.0011889 | 0.02915 | | 19 | Accept | 0.02 | 0.31439 | 0.02 | 0.022327 | onevsone | 0.0011336 | 0.042445 | | 20 | Best | 0.013333 | 0.32092 | 0.013333 | 0.020178 | onevsone | 0.0010854 | 0.048345 | |====================================================================================================================| | Iter | Eval | Objective | Objective | BestSoFar | BestSoFar | Coding | BoxConstraint| KernelScale | | | result | | runtime | (observed) | (estim.) | | | | |====================================================================================================================| | 21 | Accept | 0.5 | 13.143 | 0.013333 | 0.020718 | onevsall | 689.42 | 0.001007 | | 22 | Accept | 0.33333 | 0.33577 | 0.013333 | 0.018299 | onevsall | 0.0011091 | 1.2155 | | 23 | Accept | 0.33333 | 0.38918 | 0.013333 | 0.017851 | onevsall | 529.11 | 372.18 | | 24 | Accept | 0.04 | 0.20733 | 0.013333 | 0.017879 | onevsone | 853.41 | 22.141 | | 25 | Accept | 0.046667 | 0.21844 | 0.013333 | 0.018114 | onevsone | 744.03 | 6.3339 | | 26 | Accept | 0.10667 | 0.31981 | 0.013333 | 0.018226 | onevsone | 0.0010775 | 999.54 | | 27 | Accept | 0.04 | 0.26125 | 0.013333 | 0.018557 | onevsone | 0.0020893 | 0.001005 | | 28 | Accept | 0.10667 | 0.30651 | 0.013333 | 0.019634 | onevsone | 0.0010666 | 12.404 | | 29 | Accept | 0.32 | 12.703 | 0.013333 | 0.018352 | onevsall | 951.6 | 0.027202 | | 30 | Accept | 0.04 | 0.24213 | 0.013333 | 0.018597 | onevsone | 936.87 | 1.7813 |
__________________________________________________________ 优化完成。最大目标达到30个。总函数评估:30总运行时间:62.709秒总目标函数评估时间:39.5724最佳观测可行点:Coding BoxConstraint KernelScale ________ _____________ ___________ onevsone 0.0010854 0.048345观测目标函数值= 0.013333估计目标函数值= 0.018594函数评估时间= 0.32092最佳估计可行点(根据模型):编码BoxConstraint KernelScale ________ _____________ ___________ onevsone 0.0011336 0.042445估计目标函数值= 0.018597估计函数评估时间= 0.2867gydF4y2Ba
Mdl = ClassificationECOC ResponseName: 'Y' CategoricalPredictors: [] ClassNames: {'setosa' 'versicolor' 'virginica'} ScoreTransform: 'none' BinaryLearners: {3x1 cell} CodingName: 'onevsone' HyperparameterOptimizationResults: [1x1 BayesianOptimization]属性,方法gydF4y2Ba
创建两个高数据训练的多类ECOC模型。其中一个模型使用线性二元学习器,另一个模型使用核二元学习器。比较两种模型的再置换分类误差。gydF4y2Ba
一般情况下,可以通过使用对高数据进行多类分类gydF4y2BafitcecocgydF4y2Ba
线性或核二元学习器。当你使用gydF4y2BafitcecocgydF4y2Ba
要在高数组上训练模型,不能直接使用SVM二元学习器。但是,您可以使用使用支持向量机的线性或核二进制分类模型。gydF4y2Ba
在高数组上执行计算时,MATLAB®使用并行池(如果有并行计算工具箱™,则默认为并行池)或本地MATLAB会话。如果要在具有并行计算工具箱时使用本地MATLAB会话运行示例,可以使用gydF4y2BamapreducegydF4y2Ba
函数。gydF4y2Ba
创建一个引用包含Fisher的虹膜数据集的文件夹的数据存储。指定gydF4y2Ba“NA”gydF4y2Ba
值作为丢失的数据,以便gydF4y2Ba数据存储gydF4y2Ba
将它们替换为gydF4y2Ba南gydF4y2Ba
值。创建高版本的预测器和响应数据。gydF4y2Ba
数据存储(gydF4y2Ba“fisheriris.csv”gydF4y2Ba,gydF4y2Ba“TreatAsMissing”gydF4y2Ba,gydF4y2Ba“NA”gydF4y2Ba);T =高(ds);gydF4y2Ba
使用“本地”配置文件启动并行池(parpool)…连接到并行池(工人数:6)。gydF4y2Ba
X = [t]。年代ep一个llength t.SepalWidth t.PetalLength t.PetalWidth]; Y = t.Species;
标准化预测数据。gydF4y2Ba
Z = zscore(X);gydF4y2Ba
训练一个使用高数据和线性二元学习器的多类ECOC模型。默认情况下,当您将高数组传递给gydF4y2BafitcecocgydF4y2Ba
,该软件训练线性二元学习器使用支持向量机。因为响应数据只包含三个惟一的类,所以将编码方案从“一个对所有”(使用高数据时为默认)更改为“一个对一”(使用内存数据时为默认)。gydF4y2Ba
为了重现性,使用设置随机数生成器的种子gydF4y2BarnggydF4y2Ba
而且gydF4y2BatallrnggydF4y2Ba
.根据工作人员的数量和tall数组的执行环境,结果可能有所不同。详细信息请参见gydF4y2Ba控制代码运行的位置gydF4y2Ba.gydF4y2Ba
rng (gydF4y2Ba“默认”gydF4y2Ba) tallrng (gydF4y2Ba“默认”gydF4y2Ba) mdlLinear = fitcecoc(Z,Y,gydF4y2Ba“编码”gydF4y2Ba,gydF4y2Ba“onevsone”gydF4y2Ba)gydF4y2Ba
训练二进制学习者1(线性)从3。训练二进制学习者2(线性)从3。训练二进制学习者3(线性)中的3。gydF4y2Ba
mdlLinear = CompactClassificationECOC ResponseName: 'Y' ClassNames: {'setosa' 'versicolor' 'virginica'} ScoreTransform: 'none' BinaryLearners: {3×1 cell} CodingMatrix: [3×3 double]属性,方法gydF4y2Ba
mdlLineargydF4y2Ba
是一个gydF4y2BaCompactClassificationECOCgydF4y2Ba
由三个二元学习器组成的模型。gydF4y2Ba
训练一个使用高数据和核心二元学习器的多类ECOC模型。首先,创建一个gydF4y2BatemplateKernelgydF4y2Ba
对象指定内核二进制学习器的属性;特别是,将扩展维度的数量增加到gydF4y2Ba
.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
默认情况下,内核二进制学习器使用svm。gydF4y2Ba
通过gydF4y2BatemplateKernelgydF4y2Ba
对象gydF4y2BafitcecocgydF4y2Ba
并将编码方案改为1对1。gydF4y2Ba
mdlKernel = fitcecoc(Z,Y,gydF4y2Ba“学习者”gydF4y2BatKernel,gydF4y2Ba“编码”gydF4y2Ba,gydF4y2Ba“onevsone”gydF4y2Ba)gydF4y2Ba
训练二进制学习者1(内核)从3。训练二进制学习者2(内核)从3。训练二进制学习器3(内核)从3。gydF4y2Ba
mdlKernel = CompactClassificationECOC ResponseName: 'Y' ClassNames: {'setosa' 'versicolor' 'virginica'} ScoreTransform: 'none' BinaryLearners: {3×1 cell} CodingMatrix: [3×3 double]属性,方法gydF4y2Ba
mdlKernelgydF4y2Ba
也是gydF4y2BaCompactClassificationECOCgydF4y2Ba
由三个二元学习器组成的模型。gydF4y2Ba
比较两种模型的再置换分类误差。gydF4y2Ba
errorLinear =收集(丢失(mdlLinear,Z,Y))gydF4y2Ba
使用并行池“本地”评估tall表达式:-通过1 / 1:在1.4秒内完成评估,在1.6秒内完成gydF4y2Ba
errorLinear = 0.0333gydF4y2Ba
errorKernel =收集(mdlKernel,Z,Y))gydF4y2Ba
使用并行池“本地”评估tall表达式:-通过1 / 1:在15秒内完成评估,在16秒内完成gydF4y2Ba
errorKernel = 0.0067gydF4y2Ba
mdlKernelgydF4y2Ba
错误分类的训练数据百分比小于gydF4y2BamdlLineargydF4y2Ba
.gydF4y2Ba
资源描述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表格gydF4y2Ba
ResponseVarNamegydF4y2Ba
- - - - - -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
- - - - - -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
通过使用gydF4y2BaisvarnamegydF4y2Ba
函数。变量名无效,则可以使用gydF4y2Bamatlab.lang.makeValidNamegydF4y2Ba
函数。gydF4y2Ba
数据类型:gydF4y2Ba字符gydF4y2Ba
|gydF4y2Ba字符串gydF4y2Ba
YgydF4y2Ba
- - - - - -gydF4y2Ba类标签gydF4y2BaECOC模型训练到的类标签,指定为类别、字符或字符串数组、逻辑或数字向量或字符向量的单元格数组。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
XgydF4y2Ba
- - - - - -gydF4y2Ba预测数据gydF4y2Ba预测器数据,指定为完整或稀疏矩阵。gydF4y2Ba
的长度gydF4y2BaYgydF4y2Ba
观察的次数gydF4y2BaXgydF4y2Ba
必须是相等的。gydF4y2Ba
中出现的顺序指定预测符的名称gydF4y2BaXgydF4y2Ba
,使用gydF4y2BaPredictorNamesgydF4y2Ba
名称-值对参数。gydF4y2Ba
请注意gydF4y2Ba
对于线性分类学习器,如果你定向gydF4y2BaXgydF4y2Ba
观察结果对应于列并指定gydF4y2Ba“ObservationsIn”、“列”gydF4y2Ba
,那么您可以体验到优化执行时间的显著减少。gydF4y2Ba
对于所有其他学习者来说,定位gydF4y2BaXgydF4y2Ba
所以观察结果与行相对应。gydF4y2Ba
fitcecocgydF4y2Ba
金宝app仅支持稀疏矩阵训练线性分类模型。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
必须出现在引号内。您可以以任意顺序指定多个名称和值对参数gydF4y2BaName1, Value1,…,的家gydF4y2Ba
.gydF4y2Ba
“学习者”,“树”、“编码”,“onevsone”、“CrossVal”,“上”gydF4y2Ba
指定对所有二进制学习器使用决策树,一对一的编码设计,并实现10倍交叉验证。gydF4y2Ba
请注意gydF4y2Ba
方法时,不能使用任何交叉验证名称-值对参数gydF4y2Ba“OptimizeHyperparameters”gydF4y2Ba
名称-值对参数。您可以修改交叉验证gydF4y2Ba“OptimizeHyperparameters”gydF4y2Ba
只有使用gydF4y2Ba“HyperparameterOptimizationOptions”gydF4y2Ba
名称-值对参数。gydF4y2Ba
“编码”gydF4y2Ba
- - - - - -gydF4y2Ba编码设计gydF4y2Ba“onevsone”gydF4y2Ba
(默认)|gydF4y2Ba“allpairs”gydF4y2Ba
|gydF4y2Ba“binarycomplete”gydF4y2Ba
|gydF4y2Ba“denserandom”gydF4y2Ba
|gydF4y2Ba“onevsall”gydF4y2Ba
|gydF4y2Ba“顺序”gydF4y2Ba
|gydF4y2Ba“sparserandom”gydF4y2Ba
|gydF4y2Ba“ternarycomplete”gydF4y2Ba
|gydF4y2Ba数字矩阵gydF4y2Ba编码设计名称,指定为逗号分隔的对,由gydF4y2Ba“编码”gydF4y2Ba
一个数字矩阵或者这个表中的一个值。gydF4y2Ba
价值gydF4y2Ba | 二元学习器数量gydF4y2Ba | 描述gydF4y2Ba |
---|---|---|
“allpairs”gydF4y2Ba 而且gydF4y2Ba“onevsone”gydF4y2Ba |
KgydF4y2Ba(gydF4y2BaKgydF4y2Ba- 1) / 2gydF4y2Ba | 对于每个二元学习器,一个类是正的,另一个是负的,软件忽略其余的。这种设计耗尽了类对赋值的所有组合。gydF4y2Ba |
“binarycomplete”gydF4y2Ba |
这种设计将类划分为所有的二进制组合,并且不忽略任何类。对于每个二元学习者,所有的课堂作业都是gydF4y2Ba-1gydF4y2Ba 而且gydF4y2Ba1gydF4y2Ba 作业中至少有一个正负两类。gydF4y2Ba |
|
“denserandom”gydF4y2Ba |
随机的,但大约是10loggydF4y2Ba2gydF4y2BaKgydF4y2Ba | 对于每个二元学习者,软件随机将班级分为正类或负类,每种类型至少有一个。详情请参见gydF4y2Ba随机编码设计矩阵gydF4y2Ba.gydF4y2Ba |
“onevsall”gydF4y2Ba |
KgydF4y2Ba | 对于每个二元学习者,一个类是正的,其余的是负的。这种设计用尽了所有积极的课堂作业组合。gydF4y2Ba |
“顺序”gydF4y2Ba |
KgydF4y2Ba- 1gydF4y2Ba | 对于第一个二元学习者,第一堂课是负的,其余的都是正的。对于第二个二元学习者,前两类为负,其余为正,依此类推。gydF4y2Ba |
“sparserandom”gydF4y2Ba |
随机的,但大约是15loggydF4y2Ba2gydF4y2BaKgydF4y2Ba | 对于每个二元学习器,软件随机地将类别分配为正或负,每个类别的概率为0.25,并忽略概率为0.5的类别。详情请参见gydF4y2Ba随机编码设计矩阵gydF4y2Ba.gydF4y2Ba |
“ternarycomplete”gydF4y2Ba |
这种设计将类划分为所有三元组合。所有的课堂作业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
“FitPosterior”gydF4y2Ba
- - - - - -gydF4y2Ba标志,指示是否将分数转换为后验概率gydF4y2Ba假gydF4y2Ba
或gydF4y2Ba0gydF4y2Ba
(默认)|gydF4y2Ba真正的gydF4y2Ba
或gydF4y2Ba1gydF4y2Ba
标志,指示是否将分数转换为后验概率,指定为逗号分隔的对,由gydF4y2Ba“FitPosterior”gydF4y2Ba
和一个gydF4y2Ba真正的gydF4y2Ba
(gydF4y2Ba1gydF4y2Ba
)或gydF4y2Ba假gydF4y2Ba
(gydF4y2Ba0gydF4y2Ba
).gydF4y2Ba
如果gydF4y2BaFitPosteriorgydF4y2Ba
是gydF4y2Ba真正的gydF4y2Ba
,然后该软件将二元学习者分类分数转换为后验概率。你可以通过使用得到后验概率gydF4y2BakfoldPredictgydF4y2Ba
,gydF4y2Ba预测gydF4y2Ba
,或gydF4y2BaresubPredictgydF4y2Ba
.gydF4y2Ba
fitcecocgydF4y2Ba
不支持拟合后验概率金宝app,如果:gydF4y2Ba
集成方法是gydF4y2BaAdaBoostM2gydF4y2Ba
,gydF4y2BaLPBoostgydF4y2Ba
,gydF4y2BaRUSBoostgydF4y2Ba
,gydF4y2BaRobustBoostgydF4y2Ba
,或gydF4y2BaTotalBoostgydF4y2Ba
.gydF4y2Ba
二元学习器(gydF4y2Ba学习者gydF4y2Ba
)是实现支持向量机的线性或核分类模型。为了获得线性或核分类模型的后验概率,可以实现逻辑回归。gydF4y2Ba
例子:gydF4y2Ba“FitPosterior”,真的gydF4y2Ba
数据类型:gydF4y2Ba逻辑gydF4y2Ba
“学习者”gydF4y2Ba
- - - - - -gydF4y2Ba二元学习器模板gydF4y2Ba“支持向量机”gydF4y2Ba
(默认)|gydF4y2Ba“判别”gydF4y2Ba
|gydF4y2Ba“内核”gydF4y2Ba
|gydF4y2Ba“资讯”gydF4y2Ba
|gydF4y2Ba“线性”gydF4y2Ba
|gydF4y2Ba“naivebayes”gydF4y2Ba
|gydF4y2Ba“树”gydF4y2Ba
|gydF4y2Ba模板对象gydF4y2Ba|gydF4y2Ba模板对象的单元格向量gydF4y2Ba二进制学习器模板,指定为逗号分隔的对,由gydF4y2Ba“学习者”gydF4y2Ba
和模板对象的字符向量、字符串标量、模板对象或单元格向量。具体来说,您可以指定二进制分类器(如SVM)以及使用的集成gydF4y2BaGentleBoostgydF4y2Ba
,gydF4y2BaLogitBoostgydF4y2Ba
,gydF4y2BaRobustBoostgydF4y2Ba
,以解决多阶层问题。然而,gydF4y2BafitcecocgydF4y2Ba
还支持多类金宝app模型作为二进制分类器。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
templateDiscriminantgydF4y2Ba
,进行判别分析。gydF4y2Ba
templateEnsemblegydF4y2Ba
,用于整体学习。您必须至少指定学习方法(gydF4y2Ba方法gydF4y2Ba
),学习者数量(gydF4y2BaNLearngydF4y2Ba
),以及学习者的类型(gydF4y2Ba学习者gydF4y2Ba
).您不能使用gydF4y2BaAdaBoostM2gydF4y2Ba
二值学习的集成方法。gydF4y2Ba
templateKernelgydF4y2Ba
,用于内核分类。gydF4y2Ba
templateKNNgydF4y2Ba
,因为gydF4y2BakgydF4y2Ba最近的邻居。gydF4y2Ba
templateLineargydF4y2Ba
,用于线性分类。gydF4y2Ba
templateNaiveBayesgydF4y2Ba
,表示朴素贝叶斯。gydF4y2Ba
templateSVMgydF4y2Ba
,表示支持向量机。gydF4y2Ba
templateTreegydF4y2Ba
,用于分类树。gydF4y2Ba
如果gydF4y2Ba学习者gydF4y2Ba
是模板对象的单元格向量,则:gydF4y2Ba
细胞gydF4y2BajgydF4y2Ba对应二元学习器gydF4y2BajgydF4y2Ba(换句话说,就是专栏gydF4y2BajgydF4y2Ba的编码设计矩阵),并且单元格向量必须有长度gydF4y2BalgydF4y2Ba.gydF4y2BalgydF4y2Ba编码设计矩阵中的列数。详细信息请参见gydF4y2Ba编码gydF4y2Ba
.gydF4y2Ba
要使用内置的损失函数之一进行预测,则所有二元学习器必须返回相同范围内的分数。例如,您不能将默认的SVM二元学习器与默认的朴素贝叶斯二元学习器包括在一起。前者返回(-∞,∞)范围内的分数,后者返回作为分数的后验概率。否则,必须将自定义loss作为函数句柄提供给gydF4y2Ba预测gydF4y2Ba
而且gydF4y2Ba损失gydF4y2Ba
.gydF4y2Ba
不能使用任何其他模板指定线性分类模型学习器模板。gydF4y2Ba
类似地,您不能使用任何其他模板指定内核分类模型学习器模板。gydF4y2Ba
默认情况下,该软件使用默认的SVM模板训练学习者。gydF4y2Ba
例子:gydF4y2Ba“学习者”,“树”gydF4y2Ba
“NumBins”gydF4y2Ba
- - - - - -gydF4y2Ba数值预测器的箱数gydF4y2Ba[]gydF4y2Ba
(空的)gydF4y2Ba(默认)|gydF4y2Ba正整数标量gydF4y2Ba数值预测器的箱数,指定为逗号分隔的对,由gydF4y2Ba“NumBins”gydF4y2Ba
一个正整数标量。此论点仅当gydF4y2BafitcecocgydF4y2Ba
使用树学习器,也就是说,gydF4y2Ba“学习者”gydF4y2Ba
要么是gydF4y2Ba“树”gydF4y2Ba
或使用创建的模板对象gydF4y2BatemplateTreegydF4y2Ba
创建的模板对象gydF4y2BatemplateEnsemblegydF4y2Ba
与树弱学习者。gydF4y2Ba
如果gydF4y2Ba“NumBins”gydF4y2Ba
Value为空(默认值)gydF4y2BafitcecocgydF4y2Ba
不丢弃任何预测器。gydF4y2Ba
如果您指定gydF4y2Ba“NumBins”gydF4y2Ba
值作为正整数标量(gydF4y2BanumBinsgydF4y2Ba
),然后gydF4y2BafitcecocgydF4y2Ba
将每个数字预测器放入最多gydF4y2BanumBinsgydF4y2Ba
等概率容器,然后在容器索引上生长树,而不是原始数据。gydF4y2Ba
箱子的数量可以小于gydF4y2BanumBinsgydF4y2Ba
如果一个预测器的值小于gydF4y2BanumBinsgydF4y2Ba
独特的价值观。gydF4y2Ba
fitcecocgydF4y2Ba
不包含分类预测符。gydF4y2Ba
当您使用大型训练数据集时,此分箱选项可以加快训练速度,但可能会导致潜在的准确性下降。你可以试试gydF4y2Ba“NumBins”,50岁gydF4y2Ba
首先,然后根据精度和训练速度改变值。gydF4y2Ba
经过训练的模型将料仓边存储在gydF4y2BaBinEdgesgydF4y2Ba
财产。gydF4y2Ba
例子:gydF4y2Ba“NumBins”,50岁gydF4y2Ba
数据类型:gydF4y2Ba单gydF4y2Ba
|gydF4y2Ba双gydF4y2Ba
“NumConcurrent”gydF4y2Ba
- - - - - -gydF4y2Ba同时训练的二进制学习者的数量gydF4y2Ba1gydF4y2Ba
(默认)|gydF4y2Ba正整数标量gydF4y2Ba同时训练的二进制学习者的数目,指定为逗号分隔的对,由gydF4y2Ba“NumConcurrent”gydF4y2Ba
一个正整数标量。默认值为gydF4y2Ba1gydF4y2Ba
,这意味着gydF4y2BafitcecocgydF4y2Ba
按顺序训练二元学习器。gydF4y2Ba
请注意gydF4y2Ba
此选项仅在使用gydF4y2BafitcecocgydF4y2Ba
在高数组上。看到gydF4y2Ba高大的数组gydF4y2Ba获取更多信息。gydF4y2Ba
数据类型:gydF4y2Ba单gydF4y2Ba
|gydF4y2Ba双gydF4y2Ba
“ObservationsIn”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
而且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
“CrossVal”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
“CVPartition”gydF4y2Ba
- - - - - -gydF4y2Ba交叉验证分区gydF4y2Ba[]gydF4y2Ba
(默认)|gydF4y2BacvpartitiongydF4y2Ba
分区对象gydF4y2Ba交叉验证分区,指定为gydF4y2BacvpartitiongydF4y2Ba
创建的分区对象gydF4y2BacvpartitiongydF4y2Ba
.分区对象指定交叉验证的类型以及训练集和验证集的索引。gydF4y2Ba
要创建交叉验证的模型,您只能指定以下四个名称-值参数中的一个:gydF4y2BaCVPartitiongydF4y2Ba
,gydF4y2Ba坚持gydF4y2Ba
,gydF4y2BaKFoldgydF4y2Ba
,或gydF4y2BaLeaveoutgydF4y2Ba
.gydF4y2Ba
例子:gydF4y2Ba假设您创建一个随机分区,对500个观察结果进行5次交叉验证,使用gydF4y2Bacvp = cvpartition(500,'KFold',5)gydF4y2Ba
.然后,您可以通过使用指定交叉验证的模型gydF4y2Ba“CVPartition”,本量利gydF4y2Ba
.gydF4y2Ba
“坚持”gydF4y2Ba
- - - - - -gydF4y2Ba顽固性验证的数据比例gydF4y2Ba用于拒绝验证的数据的百分比,指定为范围(0,1)中的标量值。如果你指定gydF4y2Ba‘坚持’,pgydF4y2Ba
,然后软件完成以下步骤:gydF4y2Ba
随机选择并保留gydF4y2Bap * 100gydF4y2Ba
%的数据作为验证数据,并使用其余数据训练模型。gydF4y2Ba
将紧凑的、训练过的模型存储在gydF4y2Ba训练有素的gydF4y2Ba
交叉验证模型的属性。gydF4y2Ba
要创建交叉验证的模型,您只能指定以下四个名称-值参数中的一个:gydF4y2BaCVPartitiongydF4y2Ba
,gydF4y2Ba坚持gydF4y2Ba
,gydF4y2BaKFoldgydF4y2Ba
,或gydF4y2BaLeaveoutgydF4y2Ba
.gydF4y2Ba
例子:gydF4y2Ba“坚持”,0.1gydF4y2Ba
数据类型:gydF4y2Ba双gydF4y2Ba
|gydF4y2Ba单gydF4y2Ba
“KFold”gydF4y2Ba
- - - - - -gydF4y2Ba折叠数gydF4y2Ba10gydF4y2Ba
(默认)|gydF4y2Ba大于1的正整数值gydF4y2Ba交叉验证模型中使用的折叠数,指定为大于1的正整数值。如果你指定gydF4y2BaKFold, kgydF4y2Ba
,然后软件完成以下步骤:gydF4y2Ba
将数据随机划分为gydF4y2BakgydF4y2Ba
集。gydF4y2Ba
对于每个集合,保留该集合作为验证数据,并使用另一个集合训练模型gydF4y2BakgydF4y2Ba
- 1gydF4y2Ba集。gydF4y2Ba
存储gydF4y2BakgydF4y2Ba
紧凑,训练有素的模型gydF4y2BakgydF4y2Ba
的-by-1单元格向量gydF4y2Ba训练有素的gydF4y2Ba
交叉验证模型的属性。gydF4y2Ba
要创建交叉验证的模型,您只能指定以下四个名称-值参数中的一个:gydF4y2BaCVPartitiongydF4y2Ba
,gydF4y2Ba坚持gydF4y2Ba
,gydF4y2BaKFoldgydF4y2Ba
,或gydF4y2BaLeaveoutgydF4y2Ba
.gydF4y2Ba
例子:gydF4y2Ba“KFold”,5gydF4y2Ba
数据类型:gydF4y2Ba单gydF4y2Ba
|gydF4y2Ba双gydF4y2Ba
“Leaveout”gydF4y2Ba
- - - - - -gydF4y2Ba省略一个交叉验证标志gydF4y2Ba“关闭”gydF4y2Ba
(默认)|gydF4y2Ba“上”gydF4y2Ba
省略一个交叉验证标志,指定为逗号分隔的对,由gydF4y2Ba“Leaveout”gydF4y2Ba
而且gydF4y2Ba“上”gydF4y2Ba
或gydF4y2Ba“关闭”gydF4y2Ba
.如果你指定gydF4y2Ba“Leaveout”,“上”gydF4y2Ba
,那么,对于每一个gydF4y2BangydF4y2Ba的观察,gydF4y2BangydF4y2Ba是gydF4y2Ba尺寸(Mdl.X, 1)gydF4y2Ba
,软件:gydF4y2Ba
保留观测数据作为验证数据,并使用其他数据训练模型gydF4y2BangydF4y2Ba- 1项观察gydF4y2Ba
存储gydF4y2BangydF4y2Ba紧凑,训练模型的细胞gydF4y2BangydF4y2Ba的-by-1单元格向量gydF4y2Ba训练有素的gydF4y2Ba
交叉验证模型的属性。gydF4y2Ba
要创建交叉验证的模型,您只能使用以下四个选项之一:gydF4y2BaCVPartitiongydF4y2Ba
,gydF4y2Ba坚持gydF4y2Ba
,gydF4y2BaKFoldgydF4y2Ba
,或gydF4y2BaLeaveoutgydF4y2Ba
.gydF4y2Ba
请注意gydF4y2Ba
不建议对由线性或核分类模型学习器组成的ECOC模型进行交叉验证。gydF4y2Ba
例子:gydF4y2Ba“Leaveout”,“上”gydF4y2Ba
“CategoricalPredictors”gydF4y2Ba
- - - - - -gydF4y2Ba分类预测器列表gydF4y2Ba“所有”gydF4y2Ba
类别预测符列表,指定为此表中的值之一。gydF4y2Ba
价值gydF4y2Ba | 描述gydF4y2Ba |
---|---|
正整数向量gydF4y2Ba | 向量中的每个条目都是一个索引值,对应于包含分类变量的预测器数据的列。索引值在1和之间gydF4y2Ba 如果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
的gydF4y2BafitckernelgydF4y2Ba
对于内核学习者,gydF4y2Ba“CategoricalPredictors”gydF4y2Ba
的gydF4y2BafitcknngydF4y2Ba
为gydF4y2BakgydF4y2Ba最近的学习者,gydF4y2Ba“CategoricalPredictors”gydF4y2Ba
的gydF4y2BafitclineargydF4y2Ba
对于线性学习者,gydF4y2Ba“CategoricalPredictors”gydF4y2Ba
的gydF4y2BafitcnbgydF4y2Ba
对于朴素的贝叶斯学习者,gydF4y2Ba“CategoricalPredictors”gydF4y2Ba
的gydF4y2BafitcsvmgydF4y2Ba
对于SVM学习器,和gydF4y2Ba“CategoricalPredictors”gydF4y2Ba
的gydF4y2BafitctreegydF4y2Ba
对于树型学习者。gydF4y2Ba
例子:gydF4y2Ba“CategoricalPredictors”、“所有”gydF4y2Ba
数据类型:gydF4y2Ba单gydF4y2Ba
|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
响应变量中所有不同类名的集合在吗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
方阵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(gydF4y2Ba
,在那里gydF4y2BaKgydF4y2Ba
) -眼睛(gydF4y2BaKgydF4y2Ba
)gydF4y2BaKgydF4y2Ba
是不同类的数量。gydF4y2Ba
例子:gydF4y2Ba'Cost',[0 12 2;1 0 2;2 2 0]gydF4y2Ba
数据类型:gydF4y2Ba双gydF4y2Ba
|gydF4y2Ba单gydF4y2Ba
|gydF4y2Ba结构体gydF4y2Ba
“选项”gydF4y2Ba
- - - - - -gydF4y2Ba并行计算选项gydF4y2Ba[]gydF4y2Ba
(默认)|gydF4y2Ba返回的结构数组gydF4y2BastatsetgydF4y2Ba
并行计算选项,指定为逗号分隔的对,由gydF4y2Ba“选项”gydF4y2Ba
和返回的结构数组gydF4y2BastatsetgydF4y2Ba
.这些选项需要并行计算工具箱™。gydF4y2BafitcecocgydF4y2Ba
使用gydF4y2Ba“流”gydF4y2Ba
,gydF4y2Ba“UseParallel”gydF4y2Ba
,gydF4y2Ba“UseSubtreams”gydF4y2Ba
字段。gydF4y2Ba
下表总结了可用的选项。gydF4y2Ba
选项gydF4y2Ba | 描述gydF4y2Ba |
---|---|
“流”gydF4y2Ba |
一个gydF4y2Ba
在这种情况下,使用与并行池大小相同的单元格数组。如果并行池未打开,则软件将尝试打开一个并行池(取决于您的首选项),然后gydF4y2Ba |
“UseParallel”gydF4y2Ba |
如果您有并行计算工具箱,那么您可以通过设置调用工作池gydF4y2Ba 当你对二叉学习器使用决策树时,gydF4y2Ba |
“UseSubstreams”gydF4y2Ba |
设置为gydF4y2Ba真正的gydF4y2Ba 属性指定的流进行并行计算gydF4y2Ba“流”gydF4y2Ba .默认是gydF4y2Ba假gydF4y2Ba .例如,setgydF4y2Ba流gydF4y2Ba 到允许子流的类型,例如gydF4y2Ba“mlfg6331_64”gydF4y2Ba 或gydF4y2Ba“mrg32k3a”gydF4y2Ba .gydF4y2Ba |
确保更可预测的结果的最佳实践是使用gydF4y2BaparpoolgydF4y2Ba
(并行计算工具箱)gydF4y2Ba并在调用并行计算之前显式地创建并行池gydF4y2BafitcecocgydF4y2Ba
.gydF4y2Ba
例子:gydF4y2Ba“选项”,statset (UseParallel,真的)gydF4y2Ba
数据类型:gydF4y2Ba结构体gydF4y2Ba
“PredictorNames”gydF4y2Ba
- - - - - -gydF4y2Ba预测变量名称gydF4y2Ba预测器变量名,指定为唯一名称的字符串数组或唯一字符向量的单元格数组。的功能gydF4y2BaPredictorNamesgydF4y2Ba
这取决于你提供训练数据的方式。gydF4y2Ba
如果你提供gydF4y2BaXgydF4y2Ba
而且gydF4y2BaYgydF4y2Ba
,那么你就可以使用了gydF4y2BaPredictorNamesgydF4y2Ba
中预测变量的名称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
,那么你就可以使用了gydF4y2BaPredictorNamesgydF4y2Ba
选择在训练中使用哪些预测变量。也就是说,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
|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.gydF4y2Ba
例子:gydF4y2Ba结构(“类名”,{{setosa,杂色的,‘virginica}}, ClassProbs, 1:3)gydF4y2Ba
数据类型:gydF4y2Ba单gydF4y2Ba
|gydF4y2Ba双gydF4y2Ba
|gydF4y2Ba字符gydF4y2Ba
|gydF4y2Ba字符串gydF4y2Ba
|gydF4y2Ba结构体gydF4y2Ba
“ResponseName”gydF4y2Ba
- - - - - -gydF4y2Ba响应变量名gydF4y2Ba“Y”gydF4y2Ba
(默认)|gydF4y2Ba特征向量gydF4y2Ba|gydF4y2Ba字符串标量gydF4y2Ba响应变量名,指定为字符向量或字符串标量。gydF4y2Ba
如果你提供gydF4y2BaYgydF4y2Ba
,那么你就可以使用了gydF4y2Ba“ResponseName”gydF4y2Ba
为响应变量指定名称。gydF4y2Ba
如果你提供gydF4y2BaResponseVarNamegydF4y2Ba
或gydF4y2Ba公式gydF4y2Ba
,那么你就不能用了gydF4y2Ba“ResponseName”gydF4y2Ba
.gydF4y2Ba
例子:gydF4y2Ba“ResponseName”、“响应”gydF4y2Ba
数据类型:gydF4y2Ba字符gydF4y2Ba
|gydF4y2Ba字符串gydF4y2Ba
“ScoreTransform”gydF4y2Ba
- - - - - -gydF4y2Ba分数转换gydF4y2Ba“没有”gydF4y2Ba
(默认)|gydF4y2Ba“doublelogit”gydF4y2Ba
|gydF4y2Ba“invlogit”gydF4y2Ba
|gydF4y2Ba“ismax”gydF4y2Ba
|gydF4y2Ba分对数的gydF4y2Ba
|gydF4y2Ba函数处理gydF4y2Ba|……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
观察权重,由逗号分隔的对组成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(gydF4y2Ba
,在那里gydF4y2BangydF4y2Ba
, 1)gydF4y2BangydF4y2Ba
观察的数量在吗gydF4y2BaXgydF4y2Ba
或gydF4y2Ba资源描述gydF4y2Ba
.gydF4y2Ba
数据类型:gydF4y2Ba双gydF4y2Ba
|gydF4y2Ba单gydF4y2Ba
|gydF4y2Ba字符gydF4y2Ba
|gydF4y2Ba字符串gydF4y2Ba
“OptimizeHyperparameters”gydF4y2Ba
- - - - - -gydF4y2Ba需要优化的参数gydF4y2Ba“没有”gydF4y2Ba
(默认)|gydF4y2Ba“汽车”gydF4y2Ba
|gydF4y2Ba“所有”gydF4y2Ba
|gydF4y2Ba符合条件的参数名的字符串数组或单元格数组gydF4y2Ba|gydF4y2Ba向量的gydF4y2BaoptimizableVariablegydF4y2Ba
对象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 =超参数(gydF4y2Ba“fitcecoc”gydF4y2Ba量,物种,gydF4y2Ba“支持向量机”gydF4y2Ba);gydF4y2Ba
要查看合格超参数和默认超参数,请检查gydF4y2Ba参数个数gydF4y2Ba
.gydF4y2Ba
通过传递的向量来设置非默认参数gydF4y2BaoptimizableVariablegydF4y2Ba
具有非默认值的对象。例如,gydF4y2Ba
负载gydF4y2BafisheririsgydF4y2BaParams =超参数(gydF4y2Ba“fitcecoc”gydF4y2Ba量,物种,gydF4y2Ba“支持向量机”gydF4y2Ba);参数(2)。Range = [1e-4,1e6];gydF4y2Ba
通过gydF4y2Ba参数个数gydF4y2Ba
作为价值gydF4y2BaOptimizeHyperparametersgydF4y2Ba
.gydF4y2Ba
默认情况下,在命令行上出现迭代显示,并根据优化中的超参数数量显示图形。对于优化和绘图,目标函数为gydF4y2BaLog(1 +交叉验证损失)gydF4y2Ba用于回归和分类的误分类率。要控制迭代显示,请设置gydF4y2Ba详细的gydF4y2Ba
字段gydF4y2Ba“HyperparameterOptimizationOptions”gydF4y2Ba
名称-值对参数。为了控制情节,设置gydF4y2BaShowPlotsgydF4y2Ba
字段gydF4y2Ba“HyperparameterOptimizationOptions”gydF4y2Ba
名称-值对参数。gydF4y2Ba
有关示例,请参见gydF4y2Ba优化ECOC分类器gydF4y2Ba.gydF4y2Ba
例子:gydF4y2Ba“汽车”gydF4y2Ba
“HyperparameterOptimizationOptions”gydF4y2Ba
- - - - - -gydF4y2Ba优化选项gydF4y2Ba用于优化的选项,指定为逗号分隔的对,由gydF4y2Ba“HyperparameterOptimizationOptions”gydF4y2Ba
还有一个结构。的效果gydF4y2BaOptimizeHyperparametersgydF4y2Ba
名称-值对参数。结构中的所有字段都是可选的。gydF4y2Ba
字段名gydF4y2Ba | 值gydF4y2Ba | 默认的gydF4y2Ba |
---|---|---|
优化器gydF4y2Ba |
|
“bayesopt”gydF4y2Ba |
AcquisitionFunctionNamegydF4y2Ba |
名称包括的获取函数gydF4y2Ba |
“expected-improvement-per-second-plus”gydF4y2Ba |
MaxObjectiveEvaluationsgydF4y2Ba |
目标函数求值的最大个数。gydF4y2Ba | 30.gydF4y2Ba 为gydF4y2Ba“bayesopt”gydF4y2Ba 或gydF4y2Ba“randomsearch”gydF4y2Ba ,而整个电网为gydF4y2Ba“gridsearch”gydF4y2Ba |
MaxTimegydF4y2Ba |
时间限制,指定为正实数。时间限制以秒为单位,由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
详细信息请参见gydF4y2Ba |
1gydF4y2Ba |
UseParallelgydF4y2Ba |
指示是否并行运行贝叶斯优化的逻辑值,这需要“并行计算工具箱”。由于并行计时的不可再现性,并行贝叶斯优化不一定产生可再现的结果。详细信息请参见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
MdlgydF4y2Ba
-训练ECOC模型gydF4y2BaClassificationECOCgydF4y2Ba
模型对象|gydF4y2BaCompactClassificationECOCgydF4y2Ba
模型对象|gydF4y2BaClassificationPartitionedECOCgydF4y2Ba
交叉验证模型对象|gydF4y2BaClassificationPartitionedLinearECOCgydF4y2Ba
交叉验证模型对象|gydF4y2BaClassificationPartitionedKernelECOCgydF4y2Ba
交叉验证的模型对象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 |
HyperparameterOptimizationResultsgydF4y2Ba
-超参数交叉验证优化描述gydF4y2BaBayesianOptimizationgydF4y2Ba
对象|表包含超参数和相关值gydF4y2Ba描述超参数的交叉验证优化,返回为gydF4y2BaBayesianOptimizationgydF4y2Ba
对象或超参数及相关值的表。gydF4y2BaHyperparameterOptimizationResultsgydF4y2Ba
当gydF4y2BaOptimizeHyperparametersgydF4y2Ba
名称-值对参数为非空,并且gydF4y2Ba学习者gydF4y2Ba
名称-值对参数指定线性或核二进制学习器。属性的设置gydF4y2BaHyperparameterOptimizationOptionsgydF4y2Ba
名称-值对参数:gydF4y2Ba
“bayesopt”gydF4y2Ba
(默认)-类的对象gydF4y2BaBayesianOptimizationgydF4y2Ba
“gridsearch”gydF4y2Ba
或gydF4y2Ba“randomsearch”gydF4y2Ba
-使用的超参数表,观察到的目标函数值(交叉验证损失),以及从最小(最好)到最高(最差)的观察等级gydF4y2Ba
数据类型:gydF4y2Ba表格gydF4y2Ba
fitcecocgydF4y2Ba
金宝app仅支持稀疏矩阵训练线性分类模型。对于所有其他模型,请提供完整的预测数据矩阵。gydF4y2Ba
一个gydF4y2Ba二元损失gydF4y2Ba是类和分类分数的函数,它决定二元学习者如何将观察结果分类到类中。gydF4y2Ba
假设如下:gydF4y2Ba
米gydF4y2BakjgydF4y2Ba是元素(gydF4y2BakgydF4y2Ba,gydF4y2BajgydF4y2Ba)的编码设计矩阵gydF4y2Ba米gydF4y2Ba(即类对应的代码gydF4y2BakgydF4y2Ba二元学习者gydF4y2BajgydF4y2Ba).gydF4y2Ba
年代gydF4y2BajgydF4y2Ba二元学习者的分数是多少gydF4y2BajgydF4y2Ba观察一下。gydF4y2Ba
ggydF4y2Ba是二值损失函数。gydF4y2Ba
是观测的预测类别。gydF4y2Ba
在gydF4y2Ba通过解码gydF4y2Ba[Escalera et al.]gydF4y2Ba时,在二元学习器上产生最小二值损失和的类别决定观测值的预测类别,即:gydF4y2Ba
在gydF4y2Baloss-weighted解码gydF4y2Ba[Escalera et al.]gydF4y2Ba时,在二元学习器上产生最小二元损失平均值的类别决定了观测结果的预测类别,即:gydF4y2Ba
Allwein等人。gydF4y2Ba建议损耗加权解码通过将所有类的损耗值保持在相同的动态范围内来提高分类精度。gydF4y2Ba
下表总结了支持的损失函数,其中金宝appgydF4y2BaygydF4y2BajgydF4y2Ba是特定二元学习器的类标签(在集合{- 1,1,0}中),gydF4y2Ba年代gydF4y2BajgydF4y2Ba这是观察分数吗gydF4y2BajgydF4y2Ba,gydF4y2BaggydF4y2Ba(gydF4y2BaygydF4y2BajgydF4y2Ba,gydF4y2Ba年代gydF4y2BajgydF4y2Ba).gydF4y2Ba
价值gydF4y2Ba | 描述gydF4y2Ba | 分数域gydF4y2Ba | ggydF4y2Ba(gydF4y2BaygydF4y2BajgydF4y2Ba,gydF4y2Ba年代gydF4y2BajgydF4y2Ba)gydF4y2Ba |
---|---|---|---|
“binodeviance”gydF4y2Ba |
二项异常gydF4y2Ba | (-∞∞)gydF4y2Ba | Log [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 | Log [1 + exp(-gydF4y2BaygydF4y2BajgydF4y2Ba年代gydF4y2BajgydF4y2Ba日志(2)])]/ [2gydF4y2Ba |
“二次”gydF4y2Ba |
二次gydF4y2Ba | [0, 1]gydF4y2Ba | (1 -gydF4y2BaygydF4y2BajgydF4y2Ba(2gydF4y2Ba年代gydF4y2BajgydF4y2Ba- 1))gydF4y2Ba2gydF4y2Ba/ 2gydF4y2Ba |
该软件规范化二进制损耗,使损耗为0.5时gydF4y2BaygydF4y2BajgydF4y2Ba= 0,并使用二元学习器的平均值进行聚合gydF4y2Ba[Allwein等人]gydF4y2Ba.gydF4y2Ba
不要将二进制损失与总体分类损失(由gydF4y2Ba“LossFun”gydF4y2Ba
的名称-值对参数gydF4y2Ba损失gydF4y2Ba
而且gydF4y2Ba预测gydF4y2Ba
对象函数),它衡量ECOC分类器作为一个整体执行的好坏。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 | 这种设计将类划分为所有的二进制组合,并且不忽略任何类。也就是说,所有的课堂作业都是gydF4y2Ba |
2gydF4y2BaKgydF4y2Ba- 1gydF4y2Ba- 1gydF4y2Ba | 2gydF4y2BaKgydF4y2Ba- 2gydF4y2Ba |
三元完成gydF4y2Ba | 这种设计将类划分为所有三元组合。也就是说,所有的课堂作业都是gydF4y2Ba |
(3gydF4y2BaKgydF4y2Ba- 2gydF4y2BaKgydF4y2Ba+ 1gydF4y2Ba+ 1) / 2gydF4y2Ba |
3.gydF4y2BaKgydF4y2Ba- 2gydF4y2Ba |
序数gydF4y2Ba | 对于第一个二元学习者,第一堂课是负的,其余的都是正的。对于第二个二元学习者,前两类为负,其余为正,依此类推。gydF4y2Ba | KgydF4y2Ba- 1gydF4y2Ba | 1gydF4y2Ba |
密集的随机gydF4y2Ba | 对于每个二元学习者,软件随机将班级分为正类或负类,每种类型至少有一个。详情请参见gydF4y2Ba随机编码设计矩阵gydF4y2Ba.gydF4y2Ba | 随机的,但大约是10loggydF4y2Ba2gydF4y2BaKgydF4y2Ba |
变量gydF4y2Ba |
稀疏随机gydF4y2Ba | 对于每个二元学习器,软件随机地将类别分配为正或负,每个类别的概率为0.25,并忽略概率为0.5的类别。详情请参见gydF4y2Ba随机编码设计矩阵gydF4y2Ba.gydF4y2Ba | 随机的,但大约是15loggydF4y2Ba2gydF4y2BaKgydF4y2Ba |
变量gydF4y2Ba |
该图比较了编码设计的二进制学习器的数量与增加gydF4y2BaKgydF4y2Ba.gydF4y2Ba
一个gydF4y2Ba纠错输出码(ECOC)模型gydF4y2Ba将三个或更多类的分类问题简化为一组二元分类问题。gydF4y2Ba
ECOC分类需要一个编码设计,它决定了二进制学习者训练的类,以及一个解码方案,它决定了二进制分类器的结果(预测)如何聚合。gydF4y2Ba
假设:gydF4y2Ba
分类问题有三类。gydF4y2Ba
编码设计是一对一的。对于三个类,此编码设计为gydF4y2Ba
解码方案使用损耗gydF4y2BaggydF4y2Ba.gydF4y2Ba
学习者是支持向量机。gydF4y2Ba
为了建立这个分类模型,ECOC算法遵循以下步骤。gydF4y2Ba
学习者1根据第1班或第2班的观察结果进行训练,并将第1班视为积极的班级,将第2班视为消极的班级。其他学习者也接受类似的训练。gydF4y2Ba
让gydF4y2Ba米gydF4y2Ba以元素为编码设计矩阵gydF4y2Ba米gydF4y2Ba吉隆坡gydF4y2Ba,gydF4y2Ba年代gydF4y2BalgydF4y2Ba为积极类学习者的预测分类分数gydF4y2BalgydF4y2Ba.算法将一个新的观测值赋给类(gydF4y2Ba ),以尽量减少损失的总和gydF4y2BalgydF4y2Ba二进制的学习者。gydF4y2Ba
与其他多类模型相比,ECOC模型可以提高分类精度gydF4y2Ba[2]gydF4y2Ba.gydF4y2Ba
二元学习器的数量随着类的数量而增长。对于包含许多类的问题,使用gydF4y2BabinarycompletegydF4y2Ba
而且gydF4y2BaternarycompletegydF4y2Ba
编码设计效率不高。然而:gydF4y2Ba
如果gydF4y2BaKgydF4y2Ba≤4,则使用gydF4y2BaternarycompletegydF4y2Ba
编码设计而不是gydF4y2BasparserandomgydF4y2Ba
.gydF4y2Ba
如果gydF4y2BaKgydF4y2Ba≤5,则使用gydF4y2BabinarycompletegydF4y2Ba
编码设计而不是gydF4y2BadenserandomgydF4y2Ba
.gydF4y2Ba
您可以通过输入显示训练后ECOC分类器的编码设计矩阵gydF4y2BaMdl。CodingMatrix
进入命令窗口。gydF4y2Ba
您应该利用对应用程序的深入了解,并考虑到计算限制,形成一个编码矩阵。如果你有足够的计算能力和时间,那么尝试几个编码矩阵,并选择一个具有最佳性能的(例如,检查每个模型使用的混淆矩阵gydF4y2BaconfusionchartgydF4y2Ba
).gydF4y2Ba
省略一项交叉验证(gydF4y2BaLeaveoutgydF4y2Ba
)对于具有许多观测值的数据集是低效的。相反,使用gydF4y2BakgydF4y2Ba-fold交叉验证(gydF4y2BaKFoldgydF4y2Ba
).gydF4y2Ba
在训练模型之后,您可以生成C/ c++代码来预测新数据的标签。生成C/ c++代码需要gydF4y2BaMATLAB编码器™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
类1和类2不能与类3和类4分开(也就是说,您不能从第2行中的-1水平移动到第2列,因为该位置有一个0)。因此,软件拒绝这种编码设计。gydF4y2Ba
如果您使用并行计算(请参阅gydF4y2Ba选项gydF4y2Ba
),然后gydF4y2BafitcecocgydF4y2Ba
并行训练二元学习器。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
是列向量gydF4y2BalgydF4y2Ba的gydF4y2Ba米gydF4y2Ba+1gydF4y2Ba.gydF4y2Ba
米gydF4y2Ba-1gydF4y2Ba= -gydF4y2Ba米gydF4y2Ba○gydF4y2Ba我gydF4y2Ba(gydF4y2Ba米gydF4y2Ba,-1)(即,gydF4y2Bam减= -M。*(m == -1)gydF4y2Ba
).同时,让gydF4y2Ba
是列向量gydF4y2BalgydF4y2Ba的gydF4y2Ba米gydF4y2Ba-1gydF4y2Ba.gydF4y2Ba
让gydF4y2Ba
而且gydF4y2Ba
,在那里gydF4y2BaπgydF4y2Ba是指定的类先验概率(gydF4y2Ba之前gydF4y2Ba
).gydF4y2Ba
然后,给出二元学习器的正、负标量类先验概率gydF4y2BalgydF4y2Ba是gydF4y2Ba
在哪里gydF4y2BajgydF4y2Ba={-1,1}和gydF4y2Ba 这是一个标准吗gydF4y2Ba一个gydF4y2Ba.gydF4y2Ba
成本-软件规范化gydF4y2BaKgydF4y2Ba——- - - - - -gydF4y2BaKgydF4y2Ba成本矩阵gydF4y2BaCgydF4y2Ba(gydF4y2Ba成本gydF4y2Ba
)。对于二元学习者gydF4y2BalgydF4y2Ba,将一个负类观测值分类为正类观测值的代价为gydF4y2Ba
同样地,将一个正类观测值划分为负类观测值的代价是gydF4y2Ba
二元学习器的代价矩阵gydF4y2BalgydF4y2Ba是gydF4y2Ba
ECOC模型通过将错误分类成本与类别先验概率相结合来适应错误分类成本。如果你指定gydF4y2Ba之前gydF4y2Ba
而且gydF4y2Ba成本gydF4y2Ba
,则软件调整类先验概率如下:gydF4y2Ba
对于给定数量的类gydF4y2BaKgydF4y2Ba,软件生成随机编码设计矩阵如下所示。gydF4y2Ba
软件生成以下矩阵之一:gydF4y2Ba
密集随机-软件以相等的概率为每个元素分配1或- 1gydF4y2BaKgydF4y2Ba——- - - - - -gydF4y2BalgydF4y2BadgydF4y2Ba编码设计矩阵,其中gydF4y2Ba .gydF4y2Ba
稀疏随机-软件为元素的每个元素赋值1gydF4y2BaKgydF4y2Ba——- - - - - -gydF4y2BalgydF4y2Ba年代gydF4y2Ba编码设计矩阵的概率为0.25,-1的概率为0.25,0的概率为0.5,其中gydF4y2Ba .gydF4y2Ba
如果一列不包含至少一个1和至少一个-1,那么软件将删除该列。gydF4y2Ba
对于不同的列gydF4y2BaugydF4y2Ba而且gydF4y2BavgydF4y2Ba,如果gydF4y2BaugydF4y2Ba=gydF4y2BavgydF4y2Ba或gydF4y2BaugydF4y2Ba= -gydF4y2BavgydF4y2Ba,然后软件删除gydF4y2BavgydF4y2Ba从编码设计矩阵。gydF4y2Ba
软件默认随机生成10,000个矩阵,并根据汉明测度(gydF4y2Ba[4]gydF4y2Ba)由gydF4y2Ba
在哪里gydF4y2Ba米gydF4y2BakgydF4y2BajgydF4y2BalgydF4y2Ba编码是设计矩阵的一个元素吗gydF4y2BajgydF4y2Ba.gydF4y2Ba
默认情况下,为了提高效率,gydF4y2BafitcecocgydF4y2Ba
清空了gydF4y2BaαgydF4y2Ba
,gydF4y2Ba金宝appSupportVectorLabelsgydF4y2Ba
,gydF4y2Ba金宝appSupportVectorsgydF4y2Ba
所有线性支持向量机二元学习器的特性。gydF4y2BafitcecocgydF4y2Ba
列表gydF4y2BaβgydF4y2Ba
,而不是gydF4y2BaαgydF4y2Ba
,在模型中显示。gydF4y2Ba
来存储gydF4y2BaαgydF4y2Ba
,gydF4y2Ba金宝appSupportVectorLabelsgydF4y2Ba
,gydF4y2Ba金宝appSupportVectorsgydF4y2Ba
,将指定存储支持向量的线性SVM模板传递给金宝appgydF4y2BafitcecocgydF4y2Ba
.例如,输入:gydF4y2Ba
t = templateSVM(gydF4y2Ba“Save金宝appSupportVectors”gydF4y2Ba,true) Mdl = fitcecoc(X,Y,gydF4y2Ba“学习者”gydF4y2Bat);gydF4y2Ba
您可以通过传递结果来删除支持向量和相关金宝app值gydF4y2BaClassificationECOCgydF4y2Ba
模型gydF4y2Badiscard金宝appSupportVectorsgydF4y2Ba
.gydF4y2Ba
[1]奥尔温,E., R. Schapire, Y. Singer。将多类简化为二进制:边距分类器的统一方法。gydF4y2Ba机器学习研究杂志gydF4y2Ba.Vol. 1, 2000, pp. 113-141。gydF4y2Ba
[2] Fürnkranz, Johannes,“循环式分类”。gydF4y2Baj·马赫。学习。Res。gydF4y2Ba, Vol. 2, 2002, pp. 721-747。gydF4y2Ba
[3] Escalera, S., O. Pujol, P. Radeva。三进制纠错输出码的解码过程。gydF4y2Ba模式分析与机器智能汇刊gydF4y2Ba.Vol. 32, Issue 7, 2010, pp. 120-134。gydF4y2Ba
[4] Escalera, S., O. Pujol, P. Radeva。纠错输出码的稀疏设计的三进制码的可分性。gydF4y2BaRecog模式。列托人。gydF4y2Ba, 2009年第3期,第30卷,页285-297。gydF4y2Ba
使用注意事项和限制:gydF4y2Ba
金宝app支持的语法是:gydF4y2Ba
Mdl = fitcecoc(X,Y)gydF4y2Ba
Mdl = fitcecoc(X,Y,名称,值)gydF4y2Ba
[Mdl,FitInfo,HyperparameterOptimizationResults] = fitcecoc(X,Y,Name,Value)gydF4y2Ba
- - - - - -gydF4y2BafitcecocgydF4y2Ba
返回额外的输出参数gydF4y2BaFitInfogydF4y2Ba
而且gydF4y2BaHyperparameterOptimizationResultsgydF4y2Ba
当您指定gydF4y2Ba“OptimizeHyperparameters”gydF4y2Ba
名称-值对参数。gydF4y2Ba
的gydF4y2BaFitInfogydF4y2Ba
参数Output是一个空的结构数组,当前为将来可能使用而保留。gydF4y2Ba
不支持与交叉验证相关的选项。金宝app支持的名金宝app值对参数是:gydF4y2Ba
“类名”gydF4y2Ba
“成本”gydF4y2Ba
“编码”gydF4y2Ba
—默认值为gydF4y2Ba“onevsall”gydF4y2Ba
.gydF4y2Ba
“HyperparameterOptimizationOptions”gydF4y2Ba
-对于交叉验证,只支持高优化金宝appgydF4y2Ba“坚持”gydF4y2Ba
验证。默认情况下,软件选择并保留20%的数据作为拒绝验证数据,并使用其余数据训练模型。可以使用此参数为拒绝分数指定不同的值。例如,指定gydF4y2Ba“HyperparameterOptimizationOptions”、结构(“抵抗”,0.3)gydF4y2Ba
保留30%的数据作为验证数据。gydF4y2Ba
“学习者”gydF4y2Ba
—默认值为gydF4y2Ba“线性”gydF4y2Ba
.你可以指定gydF4y2Ba“线性”gydF4y2Ba
,gydF4y2Ba“内核”gydF4y2Ba
,一个gydF4y2BatemplateLineargydF4y2Ba
或gydF4y2BatemplateKernelgydF4y2Ba
对象或此类对象的单元格数组。gydF4y2Ba
“OptimizeHyperparameters”gydF4y2Ba
-当使用线性二元学习器时,的值gydF4y2Ba“正规化”gydF4y2Ba
超参数必须为gydF4y2Ba“岭”gydF4y2Ba
.gydF4y2Ba
“之前”gydF4y2Ba
“详细”gydF4y2Ba
—默认值为gydF4y2Ba1gydF4y2Ba
.gydF4y2Ba
“重量”gydF4y2Ba
这个附加的名值对参数是特定于高数组的:gydF4y2Ba
“NumConcurrent”gydF4y2Ba
—一个正整数标量,指定通过组合文件I/O操作并发训练的二进制学习器的数量。的默认值gydF4y2Ba“NumConcurrent”gydF4y2Ba
是gydF4y2Ba1gydF4y2Ba
,这意味着gydF4y2BafitcecocgydF4y2Ba
按顺序训练二元学习器。gydF4y2Ba“NumConcurrent”gydF4y2Ba
当输入数组无法装入分布式集群内存时,使用该方法最为有益。否则,可以缓存输入数组,加速可以忽略不计。gydF4y2Ba
如果您在Apache Spark™上运行代码,gydF4y2BaNumConcurrentgydF4y2Ba
是可用于通信的内存的上限。检查gydF4y2Ba“spark.executor.memory”gydF4y2Ba
而且gydF4y2Ba“spark.driver.memory”gydF4y2Ba
属性在您的Apache Spark配置。看到gydF4y2Baparallel.cluster.HadoopgydF4y2Ba
(并行计算工具箱)gydF4y2Ba欲知详情。有关Apache Spark和其他控制代码运行位置的执行环境的更多信息,请参见gydF4y2Ba用其他产品扩展Tall数组下载188bet金宝搏gydF4y2Ba.gydF4y2Ba
有关更多信息,请参见gydF4y2Ba高大的数组gydF4y2Ba.gydF4y2Ba
要并行运行,请设置gydF4y2Ba“UseParallel”gydF4y2Ba
选项gydF4y2Ba真正的gydF4y2Ba
以以下方式之一:gydF4y2Ba
设置gydF4y2Ba“UseParallel”gydF4y2Ba
字段的选项结构为gydF4y2Ba真正的gydF4y2Ba
使用gydF4y2BastatsetgydF4y2Ba
并指定gydF4y2Ba“选项”gydF4y2Ba
调用中的名称-值对参数gydF4y2BafitceocgydF4y2Ba
.gydF4y2Ba
例如:gydF4y2Ba“选项”,statset (UseParallel,真的)gydF4y2Ba
有关更多信息,请参见gydF4y2Ba“选项”gydF4y2Ba
名称-值对参数。gydF4y2Ba
方法执行并行超参数优化gydF4y2Ba“HyperparameterOptions”、结构(UseParallel,真的)gydF4y2Ba
调用中的名称-值对参数gydF4y2BafitceocgydF4y2Ba
.gydF4y2Ba
有关并行超参数优化的更多信息,请参见gydF4y2Ba并行贝叶斯优化gydF4y2Ba.gydF4y2Ba
ClassificationECOCgydF4y2Ba
|gydF4y2BaClassificationPartitionedECOCgydF4y2Ba
|gydF4y2BaClassificationPartitionedKernelECOCgydF4y2Ba
|gydF4y2BaClassificationPartitionedLinearECOCgydF4y2Ba
|gydF4y2BaCompactClassificationECOCgydF4y2Ba
|gydF4y2BadesignecocgydF4y2Ba
|gydF4y2Ba损失gydF4y2Ba
|gydF4y2Ba预测gydF4y2Ba
|gydF4y2BastatsetgydF4y2Ba
Sie haben eine abgeänderte版本dieses Beispiels。Möchten Sie dieses Beispiel mit Ihren Änderungen öffnen?gydF4y2Ba
你的身体和身体之间的联系MATLAB-BefehlgydF4y2Ba
Führen Sie den Befehl durch Eingabe in das MATLAB-Befehlsfenster aus。web浏览器unterstützen keine MATLAB-Befehle。gydF4y2Ba
选择一个网站,在可用的地方获得翻译的内容,并查看当地的活动和优惠。根据您所在的位置,我们建议您选择:gydF4y2Ba.gydF4y2Ba
选择gydF4y2Ba网站gydF4y2Ba您也可以从以下列表中选择一个网站:gydF4y2Ba
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。gydF4y2Ba