主要内容

classificationededkernelecoc.

用于多类分类的交叉验证核纠错输出码(ECOC)模型

描述

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

每一种“kfold”方法都使用在训练折叠(内折叠)观测上训练的模型来预测验证折叠(外折叠)观测的响应。例如,假设您使用5倍交叉验证。在这种情况下,软件将每个观察结果随机分配到大小相同(大致)的五组。的训练营包含四个组(即大约4/5的数据)和验证褶皱包含另一组(即大约1/5的数据)。在这种情况下,交叉验证的过程如下:

  1. 软件训练第一个模型(存储在受过训练的{1})通过使用最后四组中的观察结果,并保留第一组中的观察结果以供验证。

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

  3. 对于第三、第四和第五种模型,软件以类似的方式进行。

如果使用使用kfoldPredict,该软件计算出对小组观测结果的预测通过使用模型。简而言之,该软件通过使用未经该观察而训练的模型来估计每个观察的响应。

笔记

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

创建

您可以创建classificationededkernelecoc.通过使用fitcecoc并指定这些名称值对参数:

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

  • 其中一个论点“克罗斯瓦尔”,'cvpartition',“坚持”,“KFold”,或“发酵剂”

有关详细信息,请参见fitcecoc

属性

全部展开

交叉验证属性

此属性是只读的。

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

例如,“KernelECOC”指定一个交叉验证的内核ECOC模型。

数据类型:char

此属性是只读的。

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

数据类型:

此属性是只读的。

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

的属性模型参数使用点表示法。

此属性是只读的。

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

数据类型:

此属性是只读的。

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

此属性是只读的。

在交叉验证折叠上训练的紧凑分类器,指定为紧凑分类模型。训练有素的K牢房,在哪里K为折叠次数。

数据类型:单间牢房

此属性是只读的。

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

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

数据类型:|

此属性是只读的。

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

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

数据类型:分类|char|必然的|||单间牢房

ECOC属性

此属性是只读的。

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

默认情况下,如果所有二进制学习器都是使用SVM的核分类模型,则双星“枢纽”.如果所有二进制学习者都是使用Logistic回归的内核分类模型,那么双星'二次'.为了潜在地提高精度,在预测或损失计算期间指定一个二进制损失函数而不是默认值'二元乐'的名称-值对参数kfoldPredictkfoldLoss

数据类型:char

此属性是只读的。

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

  • 如果编码矩阵在所有折叠上都相同,则二元是一个NumObservations-经过-L矩阵,其中L为二元学习者的人数(尺寸(编码矩阵,2)).

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

    价值 二分类作业
    1 学习者J分配观察值K给负类。
    0 培训前,学员J删除的观察K从数据集。
    1. 学习者J分配观察值K一个积极的班级。

  • 如果编码矩阵随褶皱变化,则二元是空的([]).

数据类型:

此属性是只读的。

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

  • 如果编码矩阵在所有折叠上都相同,则编码矩阵是一个K-经过-L矩阵,其中K是类和类的数量L是二元学习者的数量。

    的元素编码矩阵1,0,或1.,值对应于二分法类分配。这张表描述了学习者的方式J在课堂上分配观察对对应于价值的二分法类编码矩阵(i,j)

    价值 二分类作业
    1 学习者J在课堂上分配观察给负类。
    0 培训前,学员J删除类中的观察值从数据集。
    1. 学习者J在课堂上分配观察一个积极的班级。

  • 如果编码矩阵随褶皱变化,则编码矩阵是空的([]).的方法可以得到每个折叠的编码矩阵训练有素的所有物例如CVMdl.Trained {1} .CodingMatrix是交叉验证的ECOC模型的第一折叠中的编码矩阵cvmdl.

数据类型:||int8|int16|INT32.|int64

其他分类属性

此属性是只读的。

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

数据类型:|

此属性是只读的。

训练中使用的唯一类标签,指定为类别或字符数组、逻辑或数字向量或字符向量的单元数组。类名与观察到的类标签属性具有相同的数据类型Y并决定类的顺序。

数据类型:分类|char|必然的|||单间牢房

此属性是只读的。

误分类代价,指定为方阵数值矩阵。成本K行和列,其中K是班级的数量。

成本(i,j)将一个点分类的成本是多少J如果它真正的阶级是.行和列的顺序成本对应于中类的顺序类名

数据类型:

此属性是只读的。

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

数据类型:单间牢房

此属性是只读的。

先验类概率,指定为数值向量。之前具有与中的类一样多的元素类名,元素的顺序对应于元素类名

数据类型:

此属性是只读的。

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

数据类型:char

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

用于内核分类模型Mdl,在分数变换前,将预测的分类分数进行观测x(行向量)是 F ( x ) = T ( x ) β + B

  • T ( · ) 是观察值的变换,用于特征扩展。

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

  • B是估计的标量偏差。

改变现状cvmdl.分数转换函数函数,例如,使用点符号。

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

    CVMdl。ScoreTransform = '函数';

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

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

    CVMdl。ScoreTransform = @函数;

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

数据类型:char|功能手柄

目标函数

kfoldEdge 交叉验证核ECOC模型的分类边缘
kfoldLoss 交叉验证核ECOC模型的分类损失
Kfoldmargin. 交叉验证核ECOC模型的分类边缘
kfoldPredict 在交叉验证的内核ECOC模型中分类观察

例子

全部崩溃

使用创建交叉验证的多类内核ECOC分类模型fitcecoc

装载Fisher的Iris数据集。X包含花的尺寸Y包含花卉物种的名称。

负载鱼腥草x = meas;y =物种;

交叉验证一个多类核心ECOC分类模型,该模型可以根据花的测量值来识别花的种类。

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

cvmdl.是一个classificationededkernelecoc.旨在模型。fitcecoc默认情况下实现10倍交叉验证。因此,受过训练的包含10 × 1的单元格数组紧凑分类模型,每个折叠一个。每个紧凑的ECOC模型由二元核分类模型组成。

通过传递估计分类误差cvmdl.kfoldLoss

错误=kfoldLoss(CVMdl)
误差=0.0333

估计的分类误差约为3%的误分类观测值。

要在培训由内核分类模型组成的ECOC模型时更改默认选项,请使用创建内核分类模型模板模板核,然后将模板传递给fitcecoc

在R2018b中引入