预测

使用分类树预测标签

描述

标签=预测(MdlX为表或矩阵中的预测器数据返回预测类标签的向量X,基于培训,完整或紧凑的分类树Mdl

标签=预测(MdlX名称,值使用由一个或多个指定的附加选项名称,值对参数。例如,您可以指定修剪Mdl在预测标签之前达到一个特定的水平。

[标签分数节点CNUM] =预测(___使用上一个语法中的任何输入参数,另外还返回:

  • 分类分数的矩阵(分数)表示标签来自特定类的可能性。对于分类树,分数是后验概率。对于每次观察X, 这预测类标签对应于最小值预期的误分类代价在所有类。

  • 分类的预测节点编号的矢量(节点).

  • 预测类编号的矢量分类(CNUM).

输入参数

全部展开

经过训练的分类树,指定为ClassificationTree.CompactClassificationTree模型对象。也就是说,Mdl是否返回经过训练的分类模型fitctree袖珍的

预测数据被分类,指定为数字矩阵或表。

每一排X对应于一个观察,并且每列对应于一个变量。

  • 对于数字矩阵:

    • 构成列的变量X必须有与训练的预测变量相同的顺序吗Mdl

    • 如果你训练Mdl使用表格(例如,TBL.),然后X可以是一个数字矩阵TBL.包含所有数值预测变量。中处理数字预测器TBL.作为培训期间的分类,使用该识别分类预测因子分类预测器的名称-值对参数fitctree.如果TBL.包含异构预测变量(例如,数字和分类数据类型)和X是一个数字矩阵吗预测抛出一个错误。

  • 对于表:

    • 预测除字符向量的单元数万博1manbetx组外,不支持多列变量和单元数组。

    • 如果你训练Mdl使用表格(例如,TBL.),然后所有预测器变量都在X必须具有与培训的变量名称和数据类型相同Mdl(存储在Mdl。P.redictorNames).但是,列顺序X不需要对应于列顺序TBL.TBL.X可以包含额外的变量(响应变量,观察权重等),但是预测忽略它们。

    • 如果你训练Mdl使用一个数字矩阵,然后预测器名称Mdl。P.redictorNames和相应的预测变量名称X必须是一样的。要在培训期间指定预测器名称,请参阅PredictorNames的名称-值对参数fitctree.所有预测变量X必须是数字向量。X可以包含额外的变量(响应变量,观察权重等),但是预测忽略它们。

数据类型:表格||

名称-值对的观点

指定可选的逗号分离对名称,值论点。的名字是参数名称和价值是对应的值。的名字必须出现在引号内。您可以按如下顺序指定几个名称和值对参数name1,value1,...,namen,valuen

修剪水平,指定为逗号分隔对组成'子树'一个非负整数的向量按升序或“所有”

如果指定vector,则所有元素必须至少为0.在大多数马克斯(Mdl.PruneList)0.表示完整的、未修剪的树和马克斯(Mdl.PruneList)表示完全修剪的树(即,只是根节点)。

如果您指定“所有”, 然后预测在所有子树上操作(即整个修剪序列)。本规范相当于使用0:马克斯(Mdl.PruneList)

预测牧师Mdl每个级别所示子树,然后估计相应的输出参数。的大小子树确定一些输出参数的大小。

调用子树,属性梅尔格莱斯PruneAlphaMdl必须非空的。换句话说,就是成长Mdl通过设置“删除”,“上”,或通过修剪Mdl使用修剪

例子:“子树”,“所有”

数据类型:||char|字符串

输出参数

全部展开

预测类标签,以vector或数组形式返回。每个条目的标签对应于具有最小期望成本的类的相应行X

假设子树是一个包含的数字矢量T.元素(for..“所有”, 看子树),XN行。

  • 如果响应数据类型是char和:

    • T.= 1,然后标签是一个包含的字符矩阵N行。每行包含子树生成的预测标签子树

    • T.> 1,那么标签是一个N-经过-T.单元格阵列。

  • 否则,标签是一个N-经过-T.具有与响应相同数据类型的数组。(该软件将字符串数组视为字符向量的单元格阵列。)

在后两种情况下,列j标签包含子树产生的预测标签向量子树(j

后验概率,以大小的数字矩阵返回N-经过-K.,在那里N是否有观察数(行)X,K.是多少类(在Mdl。ClassNames).评分(i, j)是行的后验概率一世X的类j

如果子树T.元素,和XN然后是行分数是一个N-经过-K.-经过-T.数组,并节点CNUMN-经过-T.矩阵。

预测类的节点号,作为数字向量返回。每个条目对应于预测节点Mdl对于相应的行X

与预测相对应的类号标签,作为数字向量返回。每个条目的CNUM对应于对应行的预测类号X

例子

全部展开

在培训之外的数据集中检查几行的预测。

装载Fisher的Iris数据集。

加载fisheriris

将数据划分为训练集(50%)和验证集(50%)。

1) n =大小(量;rng (1)重复性的%idxTrn = false (n, 1);idxTrn (randsample (n,圆(0.5 * n))) = true;%训练集合逻辑索引idxVal = idxTrn == false;%验证集合逻辑指数

使用训练集生成分类树。

Mdl = fitctree(量(idxTrn:),物种(idxTrn));

预测验证数据的标签。计算错误分类的观测数据。

标签=预测(Mdl量(idxVal:));标签(randsample(元素个数(标签),5))%显示几个预测标签
ans =.5x1细胞{'setosa'} {'setosa'} {'setosa'} {'virginica'} {'versicolor'}
nummisclass = sum(〜strcmp(标签,物种(Idxval)))))
numMisclass = 3

该软件错误分配了三种样本的观察。

装载Fisher的Iris数据集。

加载fisheriris

将数据划分为训练集(50%)和验证集(50%)。

1) n =大小(量;rng (1)重复性的%idxTrn = false (n, 1);idxTrn (randsample (n,圆(0.5 * n))) = true;%训练集合逻辑索引idxVal = idxTrn == false;%验证集合逻辑指数

使用训练集生成一个分类树,然后查看它。

Mdl = fitctree(量(idxTrn:),物种(idxTrn));视图(Mdl,'模式'“图”

生成的树有四个级别。

使用将子树修剪到1和3级的子树估计测试集的后验概率。

[~,后]=预测(Mdl量(idxVal:)“子树”3 [1]);Mdl。ClassNames
ans =.3 x1细胞{'setosa'} {'versicolor'} {'virginica'}
后(randsample(大小(后,1),5),:,:),...%显示几个后部概率
ANS = ANS(:,:,

的元素后面是课后概率:

  • 行对应于验证集中的观察。

  • 中列出的类对应列Mdl。ClassNames

  • 页面对应于子树。

被修剪到级别1的子树比被修剪到级别3的子树(即根节点)更确定其预测。

更多关于

全部展开

算法

预测的分支生成预测Mdl直到到达一个叶节点或缺失的值。如果预测到达一个叶节点,它返回该节点的分类。

如果预测到达具有预测器缺失值的节点,其行为取决于设置的代理名称 - 值对时fitctree结构体Mdl

  • 代理='离开'(默认)预测返回到达该节点的训练样本数量最大的标签。

  • 代理='上'-预测在节点上使用最佳代理分割。如果所有代理分割变量为正关联的预测测量人失踪,预测返回到达该节点的训练样本数量最大的标签。有关定义,请参阅预测措施

扩展功能

介绍了R2011a