主要内容

ClassificationPartitionedKernel

交叉验证的二元核分类模型

描述

ClassificationPartitionedKernel是一个基于交叉验证褶皱训练的二元核分类模型。你可以使用一个或多个“kfold”函数来估计分类的质量,或者核分类模型的泛化程度:kfoldPredictkfoldLosskfoldMargin,kfoldEdge

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

  1. 软件训练第一个模型(存储在CVMdl。Trained{1}),并保留第一组的观测值作验证。

  2. 软件训练第二个模型(存储在CVMdl。Trained{2}),根据第一组和最后三组的观察结果。该软件保留第二组的观察结果以供验证。

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

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

请注意

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

创建

您可以创建ClassificationPartitionedKernel模型通过训练一个分类核模型使用fitckernel并指定其中一个名称-值对参数:“Crossval”“CVPartition”“坚持”“KFold”,或“Leaveout”

属性

全部展开

交叉验证的属性

此属性是只读的。

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

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

数据类型:字符

此属性是只读的。

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

数据类型:

此属性是只读的。

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

的属性ModelParameters使用点符号。

此属性是只读的。

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

数据类型:

此属性是只读的。

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

此属性是只读的。

在交叉验证折叠上训练的核分类器,指定为单元格数组ClassificationKernel模型。训练有素的k细胞,k为折叠次数。

数据类型:细胞

此属性是只读的。

观测权值用于交叉验证模型,指定为数值向量。WNumObservations元素。

软件将用于训练的权重标准化,这样sum (W, omitnan)1

数据类型:|

此属性是只读的。

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

每一行的Y的对应行所观察到的分类X

数据类型:分类|字符|逻辑|||细胞

其他分类属性

此属性是只读的。

分类预测指标,指定为一个正整数向量。CategoricalPredictors包含指示对应的预测器是分类的索引值。索引值在1到之间p,在那里p为用于训练模型的预测器数量。如果没有任何预测器是绝对的,则此属性为空([]).

数据类型:|

此属性是只读的。

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

数据类型:分类|字符|逻辑|||细胞

此属性是只读的。

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

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

数据类型:

此属性是只读的。

预测器名称按其在预测器数据中的出现顺序排列,指定为字符向量的单元格数组。的长度PredictorNames是否等于训练数据中用作预测变量的列数X资源描述

数据类型:细胞

此属性是只读的。

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

数据类型:

此属性是只读的。

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

数据类型:字符

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

用于内核分类模型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 +e- - - - - -x
    “没有”“身份” x(转换)
    “标志” 1x< 0
    为0x= 0
    1x> 0
    “对称” 2x- 1
    “symmetricismax” 将分数最大的班级的分数设置为1,并将所有其他班级的分数设置为-1
    “symmetriclogit” 2 / (1 +e- - - - - -x) - 1

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

    CVMdl。ScoreTransform = @函数

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

数据类型:字符|function_handle

对象的功能

kfoldEdge 交叉验证核分类模型的分类边缘
kfoldLoss 交叉验证核分类模型的分类损失
kfoldMargin 交叉验证核分类模型的分类裕度
kfoldPredict 在交叉验证核分类模型中对观测数据进行分类

例子

全部折叠

加载电离层数据集。该数据集有34个预测器和351个雷达返回的二进制响应,或坏(“b”)或好(‘g’).

负载电离层rng (“默认”%的再现性

交叉验证二进制内核分类模型。默认情况下,该软件使用10倍交叉验证。

CVMdl = fitckernel (X, Y,“CrossVal”“上”
CVMdl = ClassificationPartitionedKernel CrossValidatedModel: 'Kernel' ResponseName: 'Y' NumObservations: 351 KFold: 10 Partition: [1x1 cvpartition] ClassNames: {'b' ' 'g'} ScoreTransform: 'none'属性,方法
元素个数(CVMdl.Trained)
ans = 10

CVMdl是一个ClassificationPartitionedKernel模型。因为fitckernel实现了10倍交叉验证,CVMdl包含10ClassificationKernel模型,软件训练训练折叠(折叠)观察。

估计交叉验证的分类误差。

kfoldLoss (CVMdl)
ans = 0.0940

分类错误率约为9%。

介绍了R2018b