主要内容

横梁

交叉验证机器学习模型

    描述

    例子

    CVMdl= crossval (MDL.返回交叉验证的(分区)机器学习模型(CVMdl)从训练过的模型(MDL.).默认情况下,横梁对训练数据使用10倍交叉验证。

    CVMdl= crossval (MDL.名称,价值设置额外的交叉验证选项。只能指定一个名称-值参数。例如,您可以指定折叠的数量或坚守样品的比例。

    例子

    全部收缩

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

    加载电离层rng (1);%的再现性

    训练支持向量机分万博1manbetx类器。标准化预测器数据并指定类的顺序。

    svmmodel = fitcsvm(x,y,“标准化”,真的,“类名”,{“b”‘g’});

    SVMModel是一个培训ClassificationSVM分类器。“b”是负类和‘g’是积极的课程。

    使用10倍交叉验证交叉验证分类器。

    CVSVMMODEL = Crossval(SVMModel)
    CVSVMModel = ClassificationPartitionedModel CrossValidatedModel: 'SVM' PredictorNames: {1x34 cell} ResponseName: 'Y' NumObservations: 351 KFold: 10 Partition: [1x1 cvpartition] ClassNames: {'b' ' 'g'} ScoreTransform: 'none'属性,方法

    cvsvmmodel.是一个ClassificationededModel.旨在分类器。在交叉验证期间,软件完成以下步骤:

    1. 将数据随机分成10组大小相等的数据。

    2. 在九个集中训练SVM分类器。

    3. 重复步骤1和2K.= 10次。每次留出一个分区,并在其他九个分区上列车。

    4. 将每个折叠组合的泛化统计数据。

    显示第一个模型CVSVMModel。训练有素的

    FirstModel = CVSVMModel。训练有素的{1}
    FirstModel = CompactClassificationSVM ResponseName: 'Y' CategoricalPredictors: [] ClassNames: {'b' ' 'g'} ScoreTransform: 'none' Alpha: [78x1 double] Bias: -0.2209 KernelParameters: [1x1 struct] Mu: [1x34 double] Sigma: [1x34 double万博1manbetx] SupportVectors: [78x34 double] SupportVectorLabels: [78x1 double]属性,方法

    FirstModel是10个训练有素的分类器中的第一个。它是一个CompactClassificationSVM分类器。

    你可以通过传递来估计泛化误差cvsvmmodel.kfoldLoss

    指定用于交叉验证的坚持样本比例。默认情况下,横梁使用10倍交叉验证来交叉验证朴素贝叶斯分类器。不过,您还有其他几个交叉验证选项。例如,您可以指定不同的折叠数量或坚持层样本比例。

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

    加载电离层

    删除前两个预测稳定性的指标。

    X = X(:, 3:结束);rng (“默认”);%的再现性

    使用预测器训练朴素贝叶斯分类器X和类标签y.推荐的做法是指定类名。“b”是负类和‘g’是积极的课程。fitcnb假设每个预测器是有条件地和通常分布的。

    Mdl = fitcnb (X, Y,“类名”,{“b”‘g’});

    MDL.是一个培训ClassificationNaiveBayes分类器。

    通过指定30%的拒绝样本来交叉验证分类器。

    cvmdl = crossval(mdl,“坚持”,0.3)
    CVMdl = ClassificationPartitionedModel CrossValidatedModel: 'NaiveBayes' PredictorNames: {1x32 cell} ResponseName: 'Y' NumObservations: 351 KFold: 1 Partition: [1x1 cvpartition] ClassNames: {'b' ' 'g'} ScoreTransform: 'none'属性,方法

    CVMdl是一个ClassificationededModel.交叉验证,朴素的贝叶斯分类器。

    显示使用70%的数据培训的分类器的属性。

    TrainedModel = CVMdl。训练有素的{1}
    TrainedModel = CompactClassificationNaiveBayes ResponseName: 'Y' CategoricalPredictors: [] ClassNames: {'b' ' 'g'} ScoreTransform: 'none' DistributionNames: {1x32 cell} DistributionParameters: {2x32 cell}属性,方法

    TrainedModel是一个CompactClassificationNaiveBayes分类器。

    通过传递估计泛化误差CVMdlkfoldloss

    kfoldLoss (CVMdl)
    ans = 0.2095

    样品外错误分类误差约为21%。

    通过选择五个最重要的预测因子来减少泛化误差。

    idx = fscmrmr(x,y);xnew = x(:,idx(1:5));

    为新的预测器训练朴素贝叶斯分类器。

    mdlnew = fitcnb(xnew,y,“类名”,{“b”‘g’});

    通过指定30%的坚持样本,交叉验证新的分类器,并估计泛化误差。

    cvmdlnew = crossval(mdlnew,“坚持”, 0.3);kfoldLoss (CVMdlnew)
    ANS = 0.1429.

    样本外误分类误差从约21%降至约14%。

    使用使用培训回归广义添加剂模型(GAM)Fitrgam.,并创建一个交叉验证的GAM横梁还有“拒绝”选项。然后,用kfoldPredict预测使用培训折叠观察的模型来预测验证折叠观测的响应。

    加载病人数据集。

    加载病人

    创建包含预测器变量的表(年龄舒张压吸烟者重量性别SelfAssessedHealthStatus)和响应变量(收缩压).

    台=表(年龄、舒张压、吸烟、体重、性别、SelfAssessedHealthStatus,收缩期);

    培训包含预测器的线性术语的游戏。

    mdl = fitrgam(tbl,“收缩”);

    MDL.是一个RegressionGAM模型对象。

    通过指定30%坚持样本来交叉验证模型。

    rng (“默认”%的再现性cvmdl = crossval(mdl,“坚持”,0.3)
    cvmdl = regressionpartitionedgam crossvalidatedmodel:'gam'predictornames:{1x6 cell} categoricalpricictors:[3 5 6] racatectename:'systolic'numobservations:100 kfold:1分区:[1x1 cvpartition] numtrainedperfold:[1x1 struct] ranceTransform:'无'属性, 方法

    横梁函数创建一个RegressionPartitionedGAM模型对象CVMdl选择“钉鞋”。在交叉验证期间,软件完成以下步骤:

    1. 随机选择并保留30%的数据作为验证数据,并使用其余数据列出模型。

    2. 存储紧凑型培训的模型训练有素的属性的交叉验证模型对象RegressionPartitionedGAM

    您可以通过使用使用的不同交叉验证设置'横向'“CVPartition”“KFold”,或'忽略'名称-值参数。

    使用kfoldPredict.该函数通过使用在训练折叠观测上训练的模型来预测验证折叠观测的响应。函数分配训练折叠观察。

    YFIT = KFOLDPREDICT(CVMDL);

    找到验证倍数观察索引,并创建一个包含观察索引、观察响应值和预测响应值的表。显示表的前8行。

    idx =找到(~ isnan (yFit));t =表(idx tbl.Systolic (idx) yFit (idx),...“VariableNames”,{'Obseraction Index'的观测值'预测值'});头(t)
    ans =8×3表观测指数观测值预测值_________________ ______________ _______________ 1 124 130.22 6 121 124.38 7 130 125.26 12 115 117.05 20 125 121.82 22 123 116.99 23 114 107 24 128 122.52

    计算验证倍数观测的回归误差(均方误差)。

    L = kfoldLoss (CVMdl)
    L = 43.8715

    输入参数

    全部收缩

    机器学习模型,指定为一个完整的回归或分类模型对象,如下表所示的支持模型。万博1manbetx

    回归模型对象

    模型 全回归模型对象
    广义添加剂模型 RegressionGAM
    神经网络模型 回归翁网络网络

    分类模型对象

    模型 全分类模型对象
    广义添加剂模型 ClassificationGAM
    K.最近的邻居模型 ClassificationKNN
    朴素贝叶斯模型 ClassificationNaiveBayes
    神经网络模型 ClassificationneuralKetwork.
    万博1manbetx支持向量机的一类和二值分类 ClassificationSVM

    名称值对参数

    指定可选的逗号分离对名称,价值参数。的名字是参数名称和价值为对应值。的名字必须出现在引号内。您可以以任何顺序指定多个名称和值对参数Name1, Value1,…,的家

    例子:Crossval(MDL,'Kfold',3)指定在交叉验证模型中使用三次折叠。

    交叉验证分区,指定为CVPartition.分区对象由CVPartition..分区对象指定交叉验证的类型以及训练集和验证集的索引。

    您只能指定这四个名称值参数中的一个:“CVPartition”“坚持”“KFold”,或'忽略'

    例子:假设您使用使用的500个观察中的5倍交叉验证的随机分区CVP = CVPARTING(500,'KFOLD',5).然后,您可以使用“CVPartition”,本量利

    用于抵抗验证的数据的一部分,指定为范围(0,1)中的标量值。如果您指定'持有',p,然后软件完成以下步骤:

    1. 随机选择和保留p * 100%的数据作为验证数据,并使用其余的数据训练模型。

    2. 存储紧凑型培训的模型训练有素的交叉验证模型的性质。如果MDL.没有相应的紧凑对象,那么呢训练有素的包含一个完整的对象。

    您只能指定这四个名称值参数中的一个:“CVPartition”“坚持”“KFold”,或'忽略'

    例子:“坚持”,0.1

    数据类型:|

    在交叉验证模型中使用的折叠数,指定为大于1的正整数。如果您指定'kfold',k,然后软件完成以下步骤:

    1. 将数据随机划分为K.集。

    2. 对于每个设置,保留设置为验证数据,并使用其他培训模型K.- 1集。

    3. 储存K.紧凑,训练模型在K.-by-1细胞载体训练有素的交叉验证模型的性质。如果MDL.没有相应的紧凑对象,那么呢训练有素的包含一个完整的对象。

    您只能指定这四个名称值参数中的一个:“CVPartition”“坚持”“KFold”,或'忽略'

    例子:'kfold',5

    数据类型:|

    省略一交叉验证标志,指定为'在'“关闭”.如果您指定“Leaveout”,“上”,那么对于每一个N观察(N不包括遗漏的观测数据,观测数据的数量是否在numobservations.模型属性),软件完成以下步骤:

    1. 保留一个观测值作为验证数据,使用另一个来训练模型N- 1的观察。

    2. 储存N紧凑,训练模型在一个N-by-1细胞载体训练有素的交叉验证模型的性质。如果MDL.没有相应的紧凑对象,那么呢训练有素的包含一个完整的对象。

    您只能指定这四个名称值参数中的一个:“CVPartition”“坚持”“KFold”,或'忽略'

    例子:“Leaveout”,“上”

    输出参数

    全部收缩

    交叉验证的机器学习模型,返回以下表中的交叉验证(分区)模型对象之一,具体取决于输入模型MDL.

    回归模型对象

    模型 回归模型(MDL. 旨在模型(compactmdl.
    广义添加剂模型 RegressionGAM RegressionPartitionedGAM
    神经网络模型 回归翁网络网络 回归排放性的模型

    分类模型对象

    模型 分类模型(MDL. 旨在模型(compactmdl.
    广义添加剂模型 ClassificationGAM Classificationededgam.
    K.最近的邻居模型 ClassificationKNN ClassificationededModel.
    朴素贝叶斯模型 ClassificationNaiveBayes ClassificationededModel.
    神经网络模型 ClassificationneuralKetwork. ClassificationededModel.
    万博1manbetx支持向量机的一类和二值分类 ClassificationSVM ClassificationededModel.

    提示

    • 评估的预测性能MDL.通过使用交叉验证数据kfold.的函数和性质CVMdl, 如kfoldPredictkfoldLoss

    • 使用名称值参数返回具有分层分区的分区分类器“KFold”“坚持”

    • 创建一个CVPartition.目的本量利使用本量利=CVPartition.(n, KFold, k).通过使用name-value参数返回具有非分层分区的分区分类器“CVPartition”,本量利

    替代功能

    不需要训练一个模型然后交叉验证它,你可以直接创建一个交叉验证的模型,通过使用拟合函数并指定以下名称-值参数之一:'横向'“CVPartition”“坚持”'忽略',或“KFold”

    扩展功能

    在R2012A介绍