主要内容

ClassificationPartitionedModel

包:classreg.learning.partition

交叉验证的分类模型

描述

ClassificationPartitionedModel是一组基于交叉验证折叠训练的分类模型。使用一种或多种“kfold”方法,通过交叉验证来评估分类的质量:kfoldPredictkfoldLosskfoldMarginkfoldEdge,kfoldfun

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

  • 该软件训练第一个模型(存储在CVMdl。训练有素的{1})使用后四组的观察结果,保留第一组的观察结果进行验证。

  • 该软件训练第二个模型(存储在CVMdl。训练有素的{2})使用第一组和后三组的观察结果,保留第二组的观察结果进行验证。

  • 软件以类似的方式处理第三到第五种型号。

如果您通过调用验证kfoldPredict,它用第一个模型计算第1组观测值的预测,用第二个模型计算第2组观测值的预测,依此类推。简而言之,该软件使用未经该观察而训练的模型估计每个观察结果的响应。

建设

CVMdl= crossval (Mdl根据分类模型创建交叉验证的分类模型(Mdl).

另外:

  • CVDiscrMdl = fitcdiscr(X,Y,Name,Value)

  • CVKNNMdl = fitcknn(X,Y,名称,值)

  • CVNetMdl = fitcnet(X,Y,名称,值)

  • CVNBMdl = fitcnb(X,Y,名称,值)

  • CVSVMMdl = fitcsvm(X,Y,名称,值)

  • CVTreeMdl = fitctree(X,Y,名称,值)

创建交叉验证模型时的名字要么是“CrossVal”“KFold”“坚持”“Leaveout”,或“CVPartition”.有关语法的详细信息,请参见fitcdiscrfitcknnfitcnetfitcnbfitcsvm,fitctree

输入参数

Mdl

分类模型:一种分类模型,指定为下列之一:

  • 一个分类树训练使用fitctree

  • 一个判别分析分类器训练使用fitcdiscr

  • 一个神经网络分类器训练使用fitcnet

  • 一个朴素贝叶斯分类器训练使用fitcnb

  • 使用训练的最近邻分类器fitcknn

  • 用支万博1manbetx持向量机训练分类器fitcsvm

属性

BinEdges

数值预测器的Bin边,指定为的单元格数组p数字向量,其中p是预测器的数量。每个向量都包含数值预测器的bin边。类别预测器的单元格数组中的元素为空,因为软件不收纳类别预测器。

的情况下,软件才会收纳数字预测器“NumBins”在用树学习器训练模型时,将名称-值参数作为正整数标量。的BinEdges属性为空“NumBins”值为空(默认)。

您可以重新生成归档的预测器数据Xbinned通过使用BinEdges被训练模型的属性mdl

X = mdl.X;%预测数据Xbinned = 0 (size(X));边= mdl.BinEdges;查找已装箱预测器的索引。idxNumeric = find(~cellfun(@isempty,edges));if iscolumn(idxNumeric) idxNumeric = idxNumeric';end for j = idxNumeric x = x (:,j);如果x是表,则将x转换为数组。If istable(x) x = table2array(x);方法将x分组到箱子中离散化函数。Xbinned =离散(x,[-inf;边缘{};正]);Xbinned(:,j) = Xbinned;结束
Xbinned包含数值预测器的bin索引,范围从1到bin的数量。Xbinned类别预测器的值为0。如果X包含S,那么对应的Xbinned值是年代。

CategoricalPredictors

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

如果Mdl是经过训练的判别分析分类器吗CategoricalPredictors总是空的([]).

一会

用于训练模型的惟一类标签,指定为类别或字符数组、逻辑或数字向量或字符向量的单元格数组。

成本

方阵,其中成本(i, j)将一个点分类到类的成本是多少j如果它真正的阶级是(即,行对应真正的类,列对应预测的类)。的行和列的顺序成本中的类的顺序一会.中的行数和列数成本是响应中惟一类的数量。

如果CVModel是交叉验证的ClassificationDiscriminantClassificationKNN,或ClassificationNaiveBayes模型,然后你可以改变它的成本矩阵,例如,CostMatrix,使用点表示法。

CVModel。成本= CostMatrix;

CrossValidatedModel

交叉验证模型的名称,它是一个字符向量。

KFold

交叉验证模型中使用的折叠数,为正整数。

ModelParameters

的对象保持参数CVModel

NumObservations

存储的训练数据中的观察数X而且Y,指定为数值标量。

分区

类的划分CVPartition用于创建交叉验证模型。

PredictorNames

预测器变量名,指定为字符向量的单元格数组。元素的顺序PredictorNames对应于预测器名称在训练数据中出现的顺序。

之前

每种类别的先验概率的数字向量。元素的顺序之前中的类的顺序一会

如果CVModel是交叉验证的ClassificationDiscriminantClassificationNaiveBayes模型,然后你可以改变它的先验向量,例如,priorVector,使用点表示法。

CVModel。之前= priorVector;

ResponseName

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

ScoreTransform

分数转换,指定为字符向量或函数句柄。ScoreTransform表示用于转换预测分类分数的内置转换函数或函数句柄。

更改分数转换函数为函数例如,使用点表示法。

  • 对于内置函数,请输入字符向量。

    Mdl。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®函数或您定义的函数,请输入其函数句柄。

    Mdl。ScoreTransform = @函数

    函数必须接受一个矩阵(原始分数)并返回一个相同大小的矩阵(转换后的分数)。

训练有素的

训练有素的学习者,这是一个单元阵列的紧凑分类模型。

W

的比例权重,这是一个有长度的向量n的观测次数X

X

预测值的矩阵或表格

Y

类别或字符数组、逻辑或数字向量或字符向量的单元格数组,指定每个观察的类标签。的每一项Y对应观测的响应值是否在X

对象的功能

收集 的集合属性统计和机器学习工具箱图形处理器对象
kfoldEdge 交叉验证分类模型的分类边缘
kfoldLoss 交叉验证分类模型的分类损失
kfoldMargin 交叉验证分类模型的分类裕度
kfoldPredict 用交叉验证的分类模型对观测数据进行分类
kfoldfun 用于分类的交叉验证函数

复制语义

价值。要了解值类如何影响复制操作,请参见复制对象

例子

全部折叠

评估k-fold交叉验证误差的分类树模型。

载入费雪的虹膜数据集。

负载fisheriris

使用默认选项训练分类树。

Mdl = fitctree(meas,种);

交叉验证分类树模型。

CVMdl = crossval(Mdl);

估计10倍交叉验证损失。

L = kfoldLoss(CVMdl)
L = 0.0533

估计支持向量机算法测试集的正类后验概率。

加载电离层数据集。

负载电离层

训练SVM分类器。指定20%的抵制样本。标准化预测器并指定类顺序是一种很好的做法。

rng (1)%用于重现性CVSVMModel = fitcsvm(X,Y,“坚持”, 0.2,“标准化”,真的,...“类名”, {“b”‘g’});

CVSVMModel是经过训练的ClassificationPartitionedModel旨在分类器。

估计将观察评分映射到被分类为的观察的后验概率的最佳评分函数‘g’

ScoreCVSVMModel = fitsvm后部(CVSVMModel);

ScoreSVMModel是经过训练的ClassificationPartitionedModel交叉验证的分类器包含从训练数据估计的最优分数转换函数。

估计样本外正类后验概率。显示前10个样本外观察结果。

[~,OOSPostProbs] = kfoldPredict(ScoreCVSVMModel);indx = ~isnan(OOSPostProbs(:,2));hoObs = find(indx);坚持观察数字OOSPostProbs = [hoObs, OOSPostProbs(indx,2)];表(OOSPostProbs (1:10, 1), OOSPostProbs (1:10), 2),...“VariableNames”, {“ObservationIndex”“PosteriorProbability”})
ans =10×2表ObservationIndex PosteriorProbability ________________ ____________________ 6 0.17379 7 0.89638 8 0.0076606 9 0.91603 16 0.026714 22 4.6086e-06 23 0.9024 24 2.4131e-06 38 0.00042687 41 0.86427

提示

要估计经过训练的、交叉验证的支持向量机分类器的后验概率,请使用fitSVMPosterior

扩展功能

版本历史

全部展开