主要内容

预测

使用分类树预测标签

描述

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

标签=预测(MdlX名称,值使用一个或多个指定的其他选项名称,值对参数。例如,您可以指定修剪Mdl到一个特定的水平,然后预测标签。

标签分数节点cnum) =预测(___使用前面语法中的任何输入参数并额外返回:

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

  • 分类的预测节点数向量(节点).

  • 用于分类的预测类号向量(cnum).

输入参数

全部展开

训练过的分类树,指定为ClassificationTreeCompactClassificationTree模型对象。也就是说,Mdl是否返回经过训练的分类模型fitctree紧凑的

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

每一行的X对应一个观察结果,每一列对应一个变量。

  • 对于数字矩阵:

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

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

  • 一个表:

    • 预测除了字符向量的单元格数组外,不支持多列变量或单元格数组。

    • 如果你训练Mdl使用一个表(例如,资源描述),则所有预测变量均为X必须具有与受训对象相同的变量名和数据类型Mdl(存储在Mdl。PredictorNames).的列顺序X是否需要对应列的顺序资源描述资源描述而且X可以包含额外的变量(响应变量、观察权重等),但是预测忽略了它们。

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

数据类型:表格||

名称-值参数

指定可选参数对为Name1 = Value1,…,以=家,在那里的名字参数名称和价值对应的值。名-值参数必须出现在其他参数之后,但对的顺序并不重要。

在R2021a之前,名称和值之间用逗号隔开,并括起来的名字在报价。

修剪级别,指定为逗号分隔的对,由“子树”和一个由非负整数按升序或“所有”

如果指定了一个向量,那么所有元素必须是至少的0在大多数马克斯(Mdl.PruneList)0指示未修剪的完整树和马克斯(Mdl.PruneList)表示完全修剪的树(即仅根节点)。

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

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

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

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

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

输出参数

全部展开

预测类标签,作为向量或数组返回。每个条目的标签对应的对应行的期望代价最小的类X

假设子树一个数字向量包含什么T元素(“所有”,请参阅子树),XN行。

  • 如果响应数据类型为字符和:

    • 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

例子

全部展开

检查未经过训练的数据集中的几行预测。

载入费雪的虹膜数据集。

负载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 =5 x1细胞{' setosa}{‘setosa}{‘setosa}{‘virginica}{“癣”}
numMisclass =总和(~ strcmp(标签,物种(idxVal)))
numMisclass = 3

该软件对三个样本外的观察结果进行了错误分类。

载入费雪的虹膜数据集。

负载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 (:,:,1) = 1.0000 00 1.0000 00 1.0000 0000 1.0000 0 0.8571 0.1429 Ans (:,:,2) = 0.3733 0.3200 0.3067 0.3067 0.3733 0.3200 0.3067 0.3733 0.3200 0.3067 0.3067 0.3733 0.3200 0.3067 0.3067 0.3733 0.3200 0.3067

的元素为类后验概率:

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

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

  • 页面对应子树。

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

更多关于

全部展开

算法

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

如果预测到达一个预测器缺少值的节点,其行为取决于代理名称-值对的时候fitctree构造Mdl

  • 代理“关闭”(默认)预测返回到达节点的训练样本数量最大的标签。

  • 代理“上”- - - - - -预测在节点上使用最佳代理程序拆分。如果所有代理拆分变量为正联想的预测度量人失踪,预测返回到达节点的训练样本数量最大的标签。有关定义,请参见联想预测法

选择功能

仿真软件块

将分类树模型的预测集成到Simulink中®,你可以使用ClassificationTree预测在统计和机器学习工具箱™库或MATLAB中®函数块中包含预测函数。有关示例,请参见使用分类树预测块预测类标签而且用MATLAB函数块预测类标签

在决定使用哪种方法时,请考虑以下几点:

  • 如果使用“统计和机器学习工具箱”库块,则可以使用定点的工具(定点设计师)将浮点模型转换为定点模型。

  • 控件必须为MATLAB函数块启用对可变大小数组的支持预测函数。

  • 如果使用MATLAB函数块,则可以使用MATLAB函数在同一个MATLAB函数块中进行预测前后的预处理或后处理。

扩展功能

版本历史

介绍了R2011a

Baidu
map