主要内容

classificationededkernelecoc.

多类分类的交叉验证核纠错输出码模型

描述

classificationededkernelecoc.是由内核分类模型组成的纠错输出代码(ECOC)模型,培训交叉验证折叠。使用一个或多个“kfold”功能通过交叉验证估计分类的质量:KfoldpredictKfoldloss.Kfoldmargin., 和kfoldEdge

每个“Kfold”方法使用培训的模型培训(折叠)观察,以预测验证折叠(折叠)观察的响应。例如,假设您使用五个折叠交叉验证。在这种情况下,软件随机将每个观察分配成五组相等大小(大致)。这培训褶皱包含四组(即大约4/5的数据)和验证折叠包含其他组(即,大约1/5的数据)。在这种情况下,交叉验证进行如下:

  1. 该软件列举了第一个模型(存储在cvmdl.tromed {1}),并保留第一组的观测值作验证。

  2. 该软件列举了第二种模型(存储在CVMdl。Trained{2})使用第一组和最后三组的观察。该软件储备在第二组中的观察结果进行验证。

  3. 该软件以类似的方式进行第三,第四和第五型号。

如果使用使用Kfoldpredict,该软件计算对组中的观察的预测通过使用模型。简而言之,软件通过使用没有该观察的模型训练来估计每个观察的响应。

请注意

classificationededkernelecoc.模型对象不存储预测数据集。

创建

你可以创建一个classificationededkernelecoc.通过培训ECOC模型使用fitcecoc.并指定这些名称值对参数:

  • “学习者”—设置为'核心',返回的模板对象templateKernel或这种模板对象的单元阵列。

  • 其中一个论点是“CrossVal”'cvpartition''坚持''kfold', 或者“Leaveout”

有关更多详细信息,请参阅fitcecoc.

特性

展开全部

交叉验证的属性

此属性是只读的。

交叉验证的模型名称,指定为字符向量。

例如,'kernelecoc'指定交叉验证的内核ECOC模型。

数据类型:char

此属性是只读的。

交叉验证折叠的数量,指定为正整数标量。

数据类型:双倍的

此属性是只读的。

交叉验证参数值,指定为对象。参数值对应于用于交叉验证ECOC分类器的名称值对参数值。ModelParameters不包含估计参数。

您可以访问属性ModelParameters使用点表示法。

此属性是只读的。

训练数据中的观测数,指定为正数值标量。

数据类型:双倍的

此属性是只读的。

数据分区,指示软件如何将数据拆分为交叉验证折叠,指定为acvpartition模型。

此属性是只读的。

在交叉验证折叠上训练的紧凑分类器,指定为单元格数组CompactClassificationECOC楷模。训练有素的k细胞,k是折叠的数量。

数据类型:细胞

此属性是只读的。

用于交叉验证模型的观察权重,指定为数字向量。WNumObservations元素。

该软件将用于训练的重量标准化为此sum (W, omitnan)1

数据类型:单身的|双倍的

此属性是只读的。

观察到的类标签用于交叉验证模型、指定为类别或字符数组、逻辑或数字向量或字符向量的单元格数组。YNumObservations元素并具有与输入参数相同的数据类型Y你传递给他们的fitcecoc.交叉验证模型。(该软件将字符串数组视为字符向量的单元格数组。)

每一排Y表示观察到预测器数据的相应行的分类。

数据类型:分类|char|逻辑|单身的|双倍的|细胞

ECOC属性

此属性是只读的。

二进制学习者丢失函数,指定为表示丢失函数名称的字符矢量。

默认情况下,如果所有二进制学习器都是使用SVM的核分类模型,则BinaryLoss'合页'.如果所有二进制学习者都是使用Logistic回归的内核分类模型,那么BinaryLoss'二次'.为了潜在地提高准确性,通过使用使用的预测或损耗计算期间,指定除默认之外的二进制损耗功能'二元乐'名称 - 值对参数Kfoldpredict或者Kfoldloss.

数据类型:char

此属性是只读的。

二进制学习者类标签,指定为数字矩阵或[]

  • 如果编码矩阵在所有折叠上都相同,则BinaryY是A.NumObservations-经过-l矩阵,其中l是二进制学习者的数量(大小(CodingMatrix, 2)).

    元素BinaryY-10, 或者1,值对应于二分法类分配。这张表描述了学习者的方式j分配的观察k对对应于价值的二分法类BinaryY (k, j)

    价值 两个类的任务
    -1 学习者j分配的观察k到一个负面的课程。
    0 在培训之前,学习者j去除观察k从数据集。
    1 学习者j分配的观察k积极的课程。

  • 如果编码矩阵随着折叠而变化,那么BinaryY是空的([]).

数据类型:双倍的

此属性是只读的。

为二进制学习者指定课堂作业的代码,指定为数字矩阵或[]

  • 如果编码矩阵在所有折叠上都相同,则CodingMatrix是A.K-经过-l矩阵,其中K班级的数量是多少l是二元学习者的数量。

    元素CodingMatrix-10, 或者1,值对应于二分法类分配。这张表描述了学习者的方式j在课堂上分配观察对对应于价值的二分法类CodingMatrix (i, j)

    价值 两个类的任务
    -1 学习者j在课堂上分配观察到一个负面的课程。
    0 在培训之前,学习者j在课堂上删除观察从数据集。
    1 学习者j在课堂上分配观察积极的课程。

  • 如果编码矩阵随着折叠而变化,那么CodingMatrix是空的([]).您可以通过使用使用的每个折叠获得编码矩阵训练有素的财产。例如,cvmdl.tromed {1} .codingmatrix是交叉验证的ECOC模型的第一折叠中的编码矩阵cvmdl.

数据类型:双倍的|单身的|INT8.|int16|INT32.|INT64.

其他分类属性

此属性是只读的。

分类预测索引指定为正整数的向量。分类预测器包含与包含分类预测器的预测器数据列对应的索引值。如果没有预测器都是分类的,则此属性是空的([]).

数据类型:单身的|双倍的

此属性是只读的。

在培训中使用的唯一类标签,指定为分类或字符阵列,逻辑或数字矢量或字符向量的单元格数组。一会具有与所观察的类标签属性相同的数据类型Y并确定类顺序。

数据类型:分类|char|逻辑|单身的|双倍的|细胞

此属性是只读的。

错误分类成本,指定为方形数字矩阵。成本K行和列,在哪里K为类数。

成本(i, j)是将一个点分类为课程的成本j如果它的真实课程是.行和列的顺序成本中类的顺序一会

数据类型:双倍的

此属性是只读的。

预测器名称按照它们在预测器数据中的出现顺序,指定为字符向量的单元格数组。长度预测等于培训数据中用作预测器变量的列数X或者TBL.

数据类型:细胞

此属性是只读的。

先验类概率,指定为数字向量。事先的元素的数量和类的数量一样多一会,元素的顺序对应于元素一会

数据类型:双倍的

此属性是只读的。

响应变量名称,指定为字符向量。

数据类型:char

用于预测分数的分数转换函数,指定为函数名或函数句柄。

对于内核分类模型MDL.在分数转换之前,预测的分类分数用于观察x(行向量)是 f x T x β + b

  • T · 是一种对特征扩展的观察的变换。

  • β为估计的系数列向量。

  • b为估计的标量偏差。

改变cvmdl.积分变换函数为功能例如,使用点表示法。

  • 对于内置功能,请输入此代码并替换功能使用表中的值。

    cvmdl.scoretransform ='功能';

    价值 描述
    'doublelogit' 1 /(1 +e-2x
    'invlogit' 日志(x/(1 -x))
    'ismax' 将具有最大分数的类设置为1的分数,并将所有其他类的分数设置为0
    分对数的 1 /(1 +e- - - - - -x
    “没有”或者'身份' x(转换)
    '标志' -1 for.x< 0
    0x= 0
    1x> 0
    '对称' 2x- 1
    'ymmetricismax' 将具有最大分数为1的类设置分数,并将所有其他类的分数设置为-1
    'symmetriclogit' 2 / (1 +e- - - - - -x) - 1

  • 对于一个MATLAB®函数或您定义的函数,输入其函数句柄。

    cvmdl.scoretransform = @功能

    功能必须接受每个类的原始分数的矩阵,然后返回相同大小的矩阵,表示每个类的转换分数。

数据类型:char|function_handle

对象的功能

kfoldEdge 交叉验证内核模型的分类边
Kfoldloss. 交叉验证核ECOC模型的分类损失
Kfoldmargin. 交叉验证内核模型的分类边距
Kfoldpredict 在交叉验证的内核ECOC模型中分类观察

例子

全部折叠

使用。创建一个交叉验证的、多类的内核ECOC分类模型fitcecoc.

装载Fisher的Iris数据集。X包含花测量,和Y包含花卉物种的名称。

负载fisheririsx = meas;y =物种;

交叉验证多种多组内核分类模型,可以根据花的测量识别花的种类。

RNG(1);重复性的%cvmdl = fitcecoc(x,y,“学习者”'核心'“CrossVal”“上”
cvmdl = classificationedkernelecoc crossvalidatedmodel:'kernelecoc'racancoreName:'y'numobservations:150 kfold:10分区:[1x1 cvpartition] classnames:{'setosa''versicolor''virginica'} scoreTransform:'无'属性,方法

cvmdl.是A.classificationededkernelecoc.交叉验证模型。fitcecoc.默认情况下实现10倍的交叉验证。所以,CVMdl。Trained包含十个10×1的细胞阵列CompactClassificationECOC模型,每个折叠一个。每个紧凑ECOC模型由二进制核分类模型组成。

通过传递估计分类错误cvmdl.Kfoldloss.

错误= kfoldLoss (CVMdl)
错误= 0.0333

估计的分类误差约为3%错误分类观察。

要改变训练由内核分类模型组成的ECOC模型时的默认选项,使用templateKernel,然后将模板传递给fitcecoc.

介绍了R2018b