主要内容

crossval

旨在机器学习模型

    描述

    例子

    CVMdl= crossval (Mdl)返回一个旨在(分区)机器学习模型(CVMdl)从一个训练有素的模型(Mdl)。默认情况下,crossval在训练数据使用10倍交叉验证。

    CVMdl= crossval (Mdl,名称,值)设置一个额外的交叉验证选择。您可以指定只有一个名称-值参数。例如,您可以指定折叠或抵抗样本的数量比例。

    例子

    全部折叠

    加载电离层数据集。这个数据集有34个预测因子和351二进制响应雷达回报,要么坏(“b”)或好(‘g’)。

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

    训练支持向量机(金宝appSVM)分类器。规范预测数据和指定类的顺序。

    SVMModel = fitcsvm (X, Y,“标准化”,真的,“类名”,{“b”,‘g’});

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

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

    CVSVMModel = crossval (SVMModel)
    CVSVMModel = ClassificationPartitionedModel CrossValidatedModel:“支持向量机”PredictorNames: {“x1”“x2”“x3”“x4”的x5的x6“x7”“×8”“x9”“x10”的x11“x12”“* 13”“x14英寸”“x15”“x16”“x17”“x18”“x19”“x20”“x21”“将”“x23”“x24”“25”“x26”“x27”“x28”“x29”“x30”“x31”“x32”“x33”“x34”} ResponseName:“Y”NumObservations: 351 KFold: 10个分区:[1 x1 cvpartition]类名:{b ' g '} ScoreTransform:“没有一个”属性,方法

    CVSVMModel是一个ClassificationPartitionedModel旨在分类器。在交叉验证,软件完成以下步骤:

    1. 随机数据分割成10套大小相等。

    2. 火车的SVM分类器在九集。

    3. 重复步骤1和2k= 10倍。软件每次遗漏一个分区和火车9个分区。

    4. 为每个折叠结合归纳统计。

    显示第一个模型CVSVMModel.Trained

    FirstModel = CVSVMModel.Trained {1}
    FirstModel = CompactClassificationSVM ResponseName:‘Y’CategoricalPredictors:[]类名:{b ' g '} ScoreTransform:‘没有’α:[78 x1双]偏见:-0.2209 KernelParameters: [1 x1 struct]μ:[0.8888 0 0.6320 0.0406 0.5931 0.1205 0.5361 0.1286 0.5083 0.1879 0.4779 0.1567 0.3924 0.0875 0.3360 0.0789 0.3839 9.6066 e-05 0.3562 -0.0308 0.3398 -0.0073 0.3590 -0.0628 0.4064 -0.0664 0.5535 -0.0749 0.3835 -0.0295……σ:[0.3149 0 0.5033 0.4441 0.5255 0.4663 0.4987 0.5205 0.5040 0.4780 0.5649 0.4896 0.6293 0.4924 0.6606 0.4535 0.6133 0.4878 0.6250 0.5140 0.6075 0.5150 0.6068 0.5222 0.5729 0.5103 0.5061 0.5478 0.5712 0.5032 0.5639 0.5062……]S金宝appupportVectors: [78 x34双]SupportVectorLabels: [78 x1双]属性,方法

    FirstModel是第一个的10个训练分类器。这是一个CompactClassificationSVM分类器。

    你可以估计泛化误差通过CVSVMModelkfoldLoss

    指定一个维持样本比例为交叉验证。默认情况下,crossval使用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: {“x1”“x2”“x3”“x4”的x5的x6“x7”“×8”“x9”“x10”的x11“x12”“* 13”“x14英寸”“x15”“x16”“x17”“x18”“x19”“x20”“x21”“将”“x23”“x24”“25”“x26”“x27”“x28”“x29”“x30”“x31”“x32”} ResponseName:“Y”NumObservations: 351 KFold: 1分区:[1 x1 cvpartition]类名:{b ' g '} ScoreTransform:“没有一个”属性,方法

    CVMdl是一个ClassificationPartitionedModel旨在,朴素贝叶斯分类器。

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

    TrainedModel = CVMdl.Trained {1}
    TrainedModel = CompactClassificationNaiveBayes ResponseName:‘Y’CategoricalPredictors:[]类名:{b ' g '} ScoreTransform:“没有一个”DistributionNames: {1} x32细胞DistributionParameters: {2} x32细胞属性,方法

    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使用,并创建一个旨在GAMcrossval和坚持的选择。然后,用kfoldPredict为validation-fold观察使用一个模型来预测反应训练training-fold观测。

    加载病人数据集。

    负载病人

    创建一个表,其中包含预测变量(年龄,舒张压,吸烟者,重量,性别,SelfAssessedHealthStatus)和响应变量(收缩压)。

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

    火车一个包含线性项GAM预测。

    Mdl = fitrgam(资源描述,“收缩”);

    Mdl是一个RegressionGAM模型对象。

    模型旨在通过指定一个抵抗样本的30%。

    rng (“默认”)%的再现性CVMdl = crossval (Mdl,“坚持”,0.3)
    CVMdl = RegressionPartitionedGAM CrossValidatedModel:“联欢”PredictorNames:{“年龄”“舒张期”“烟民”“重量”“性别”的SelfAssessedHealthStatus} CategoricalPredictors: [3 5 6] ResponseName:“收缩”NumObservations: 100 KFold: 1分区:[1 x1 cvpartition] NumTrainedPerFold: [1 x1 struct] ResponseTransform:“没有一个”IsStandardDeviationFit: 0属性,方法

    crossval函数创建一个RegressionPartitionedGAM模型对象CVMdl坚持选择。在交叉验证,软件完成以下步骤:

    1. 随机选择和储备30%的数据作为验证数据,并培训使用其余的数据模型。

    2. 在存储紧凑,训练模型训练有素的旨在模型对象的属性RegressionPartitionedGAM

    你可以选择一个不同的交叉验证设置使用“CrossVal”,“CVPartition”,“KFold”,或“Leaveout”名称-值参数。

    validation-fold观察利用预测的反应kfoldPredict。validation-fold观测使用的预测响应函数模型训练training-fold观察。函数分配training-fold观测。

    yFit = kfoldPredict (CVMdl);

    找到validation-fold观察指标,创建一个表包含观察指数,观察到的响应值,预测响应值。显示表的前八行。

    idx =找到(~ isnan (yFit));t =表(idx tbl.Systolic (idx) yFit (idx),“VariableNames”,{“Obseraction指数”,的观测值,的预测价值});头(t)
    Obseraction指数观测值预测价值售予_________________ * * * 1 124 130.22 121 124.38 130 125.26 123 116.99 115 117.05 125 121.82 22 23 114 107 24 128 122.52

    计算回归误差(均方误差)validation-fold观察。

    L = kfoldLoss (CVMdl)
    L = 43.8715

    输入参数

    全部折叠

    机器学习模型,指定为一个完整的回归或分类模型对象,如下表中给出支持的模型。金宝app

    回归模型对象

    模型 完整的回归模型对象
    高斯过程回归(GPR)模型 RegressionGP(如果你提供一个定制的“ActiveSet”在调用fitrgp,然后你不能旨在探地雷达模型。)
    广义可加模型(GAM) RegressionGAM
    神经网络模型 RegressionNeuralNetwork

    分类模型对象

    模型 完整的分类模型对象
    广义加性模型 ClassificationGAM
    k最近的邻居模型 ClassificationKNN
    朴素贝叶斯模型 ClassificationNaiveBayes
    神经网络模型 ClassificationNeuralNetwork
    金宝app看到下面成了一和二分类支持向量机 ClassificationSVM

    名称-值参数

    指定可选的双参数作为Name1 = Value1,…,以=家,在那里的名字参数名称和吗价值相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。

    R2021a之前,用逗号来分隔每一个名称和值,并附上的名字在报价。

    例子:crossval (Mdl KFold, 3)指定使用三折叠旨在模型。

    交叉验证分区,指定为一个cvpartition分区创建的对象cvpartition。分区对象指定了类型的交叉验证,训练集和验证集的索引。

    您可以指定唯一的这四个名称-值参数:“CVPartition”,“坚持”,“KFold”,或“Leaveout”

    例子:假设您创建一个随机的分区为5倍交叉验证500观察使用本量利= cvpartition(500年,“KFold”, 5)。然后,您可以指定模型旨在通过使用“CVPartition”,本量利

    分数的数据用于抵抗验证、指定为一个标量值的范围(0,1)。如果您指定‘坚持’,p,那么软件完成以下步骤:

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

    2. 在存储紧凑,训练模型训练有素的旨在模型的属性。如果Mdl没有对应的紧凑的对象呢训练有素的包含一个完整的对象。

    您可以指定唯一的这四个名称-值参数:“CVPartition”,“坚持”,“KFold”,或“Leaveout”

    例子:“坚持”,0.1

    数据类型:|

    折叠使用旨在模型,指定为一个正整数的值大于1。如果您指定KFold, k,那么软件完成以下步骤:

    1. 随机数据分割成k集。

    2. 对于每一个集合,储备作为验证数据集,使用其他和训练模型k- 1集。

    3. 存储k在一个紧凑,训练模型k1细胞向量训练有素的旨在模型的属性。如果Mdl没有对应的紧凑的对象呢训练有素的包含一个完整的对象。

    您可以指定唯一的这四个名称-值参数:“CVPartition”,“坚持”,“KFold”,或“Leaveout”

    例子:“KFold”, 5

    数据类型:|

    分析交叉验证标志,指定为“上”“关闭”。如果您指定“Leaveout”,“上”,然后为每个n观察(n是观测的数量,不包括失踪的观察,指定的吗NumObservations模型的属性),软件完成以下步骤:

    1. 保留一个观察验证数据,并使用其他火车模型n- 1的观察。

    2. 存储n在一个紧凑,训练模型n1细胞向量训练有素的旨在模型的属性。如果Mdl没有对应的紧凑的对象呢训练有素的包含一个完整的对象。

    您可以指定唯一的这四个名称-值参数:“CVPartition”,“坚持”,“KFold”,或“Leaveout”

    例子:“Leaveout”,“上”

    输出参数

    全部折叠

    旨在机器学习模型,作为一个旨在返回对象在以下表(分区)模型,根据输入模型Mdl

    回归模型对象

    模型 回归模型(Mdl) 旨在模型(CVMdl)
    高斯过程回归模型 RegressionGP RegressionPartitionedGP
    广义加性模型 RegressionGAM RegressionPartitionedGAM
    神经网络模型 RegressionNeuralNetwork RegressionPartitionedModel

    分类模型对象

    模型 分类模型(Mdl) 旨在模型(CVMdl)
    广义加性模型 ClassificationGAM ClassificationPartitionedGAM
    k最近的邻居模型 ClassificationKNN ClassificationPartitionedModel
    朴素贝叶斯模型 ClassificationNaiveBayes ClassificationPartitionedModel
    神经网络模型 ClassificationNeuralNetwork ClassificationPartitionedModel
    金宝app看到下面成了一和二分类支持向量机 ClassificationSVM ClassificationPartitionedModel

    提示

    • 评估的预测性能Mdl在旨在通过使用数据kfold功能和属性CVMdl,如kfoldPredict,kfoldLoss,kfoldMargin,kfoldEdge对分类和kfoldPredictkfoldLoss回归。

    • 返回一个分层分区,分区分类器通过使用名称-值参数“KFold”“坚持”

    • 创建一个cvpartition对象本量利使用本量利=cvpartition(n, KFold, k)。返回一个nonstratified分区,分区分类器通过使用名称-值参数“CVPartition”,本量利

    选择功能

    而不是训练模型,然后交叉验证图谱,可以直接创建一个旨在模型通过使用拟合函数并指定一个名称-值参数:“CrossVal”,“CVPartition”,“坚持”,“Leaveout”,或“KFold”

    扩展功能

    版本历史

    介绍了R2012a

    全部展开

    另请参阅