预测
预测使用分类树标签
描述
输入参数
Mdl
- - - - - -训练有素的分类树
ClassificationTree
模型对象|CompactClassificationTree
模型对象
训练有素的分类树,指定为一个ClassificationTree
或CompactClassificationTree
模型对象。也就是说,Mdl
返回的是一个训练分类模型fitctree
或紧凑的
。
X
- - - - - -预测分类数据
数字矩阵|表
预测数据分类,指定为一个数字矩阵或表。
每一行的X
对应于一个观察,每一列对应一个变量。
一个数字矩阵:
变量的列
X
必须有相同的订单预测变量,训练吗Mdl
。如果你训练
Mdl
使用一个表(例如,资源描述
),然后X
可以是一个数字矩阵如果资源描述
包含所有数值预测变量。将数值预测资源描述
分类在训练、识别分类预测使用CategoricalPredictors
名称-值对的观点fitctree
。如果资源描述
包含了异构预测变量(例如,数字和分类数据类型)X
是一个数字矩阵,然后呢预测
抛出一个错误。
一个表:
预测
不支持多列变量和细金宝app胞数组以外的细胞阵列的特征向量。如果你训练
Mdl
使用一个表(例如,资源描述
),那么所有的预测变量X
必须有相同的变量名和数据类型的培训Mdl
(存储在Mdl.PredictorNames
)。然而,列的顺序X
不需要对应的列顺序资源描述
。资源描述
和X
可以包含额外的变量(响应变量,观察体重、等等),但预测
忽略了它们。如果你训练
Mdl
使用一个数字矩阵,然后预测名称Mdl.PredictorNames
和相应的预测变量名称X
必须相同。指定预测名称在训练,看到PredictorNames
名称-值对的观点fitctree
。所有的预测变量X
必须是数值向量。X
可以包含额外的变量(响应变量,观察体重、等等),但预测
忽略了它们。
数据类型:表
|双
|单
名称-值对的观点
指定可选的逗号分隔条名称,值
参数。的名字
参数名称和吗价值
相应的价值。的名字
必须出现在引号。您可以指定几个名称和值对参数在任何顺序Name1, Value1,…,的家
。
“子树”
- - - - - -修剪水平
0(默认)|向量的非负整数|“所有”
修剪水平,指定为逗号分隔组成的“子树”
和一个向量的非负整数按升序或“所有”
。
如果您指定一个矢量,然后所有的元素都必须至少0
在大多数马克斯(Mdl.PruneList)
。0
显示完整的,unpruned树马克斯(Mdl.PruneList)
表示完全修剪树(即。,只有根节点)。
如果您指定“所有”
,然后预测
运行在所有子树(即。,ent我re pruning sequence). This specification is equivalent to using0:马克斯(Mdl.PruneList)
。
预测
李子Mdl
每个级别表示子树
,然后估计相应的输出参数。的大小子树
确定一些输出参数的大小。
调用子树
,属性PruneList
和PruneAlpha
的Mdl
必须非空的。换句话说,成长Mdl
通过设置“删除”,“上”
,或者通过修剪Mdl
使用修剪
。
例子:“子树”,“所有”
数据类型:单
|双
|字符
|字符串
输出参数
例子
预测使用分类树标签
检查预测几行数据集的训练。
加载费雪的虹膜数据集。
负载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}{“癣”}{' virginica '}
后(randsample(大小(后,1),5),:,:),…%显示几个后验概率
ans = ans (:: 1) = 1.0000 0 0 0 0 0 0 0 0 1.0000 1.0000 1.0000 0.8571 - 0.1429 ans (:,: 2) = 0.3733 0.3200 0.3067 0.3733 0.3200 0.3067 0.3733 0.3200 0.3067 0.3733 0.3200 0.3067 0.3733 0.3200 0.3067
的元素后
类的后验概率:
行对应于观测的验证集。
列对应中列出的类
Mdl.ClassNames
。页面对应的子树。
1级的子树修剪是肯定的预测比三级(即子树修剪。根节点)。
更多关于
预测类标签
预测
将通过最小化预期分类成本:
在哪里
是预测分类。
K类的数量。
是类的后验概率j为观察x。
分类的成本是一个观察是吗y当它真正的类j。
分数(树)
对于树木,分数分类的一个叶节点的后验概率分类节点。的后验概率分类节点训练序列的数量,导致节点的分类,除以训练序列的数量,导致该节点。
例如,考虑分类预测X
作为真正的
当X
<0.15
或X
>0.95
,X
是假的。
生成100个随机点和分类:
rng (0,“旋风”)%的再现性X =兰德(100 1);Y = (abs (X - 55) >。4);树= fitctree (X, Y);视图(树,“模式”,“图”)
修剪树:
tree1 =修剪(树,“水平”1);视图(tree1,“模式”,“图”)
修剪树正确分类观察小于0.15真正的
。它还从.15总收入为正确分类的观察假
。然而,它大于总收入为错误分类的观察假
。因此,观察的得分大于酒精含量应该是0。/ .85 =。06年的真正的
,大约8 / .85 =。94年假
。
计算预测得分前10行X
:
[~,分数]=预测(tree1 X (1:10));(分数X (1:10)):
ans =10×30.9059 0.0941 0.8147 0.9059 0.0941 0.9058 1.0000 0.1270 0.9059 0.0941 0.9134 0.9059 0.0941 0.6324 0 1.0000 0.0975 0.9059 0.0941 0.2785 0.9059 0.0941 0.5469 0.9059 0.0941 0.9575 0.9059 0.0941 0.9649
事实上,每一个的价值X
(最右边的列)小于0.15相关分数(左列)和中心0
和1
,而其他的值X
有关联的0.91
和0.09
。(得分的区别0.09
而不是预期的06
)是由于统计波动:有8
观察X
范围内(1).95
而不是预期的5
观察。
真正的误分类代价
有两个成本分类:真正的误分类成本类,和预期的误分类代价的观察。
你可以设置真实的误分类成本类的成本
当你创建一个分类器使用名称-值对fitctree
方法。成本(i, j)
分类的成本是一个观察到班呢j
如果它真正的类我
。默认情况下,成本(i, j) = 1
如果我~ = j
,成本(i, j) = 0
如果我=我
。换句话说,是成本0
正确的分类,1
不正确的分类。
预期成本
有两个成本分类:真正的误分类成本类,和预期的误分类代价的观察。
假设你有脑袋
观察你想要训练的分类器进行分类。假设你有K
类。你把观测到一个矩阵Xnew
有一个观察每一行。
预期成本矩阵CE
有大小脑袋
——- - - - - -K
。每一行的CE
包含预期的(平均)的观察到每个分类的成本K
类。CE (n, k)
是
在哪里
K类的数量。
是类的后验概率我为观察Xnew(n)。
是真正的错误分类的成本分类的观察k当它真正的类我。
预测的协会
的预测的协会是一个值,表明决策规则之间的相似性分割观测。在所有可能的分裂,而决定最优分割(发现树的种植),最好的代理决定分手产量最大的预测指标。第二代孕将拥有第二大的预测指标。
假设xj和xk预测变量j和k分别为,j≠k。在节点t预测的协会之间的最优分割xj<u和代理xk<v是
Pl节点观测的比例t,这样xj<u。下标l代表的左子节点t。
PR节点观测的比例t,这样xj≥u。下标R代表的右子节点t。
观察节点的比例吗t,这样xj<u和xk<v。
观察节点的比例吗t,这样xj≥u和xk≥v。
观察缺失值xj或xk不会导致比例计算。
λjk是一个值(-∞,1]。如果λjk> 0,然后xk<v是一个有价值的代理分裂xj<u。
算法
预测
遵循的分支生成预测Mdl
直到它到达一个叶子节点或缺失值。如果预测
到达一个叶子节点,则返回该节点的分类。
如果预测
到达一个节点与一个缺失值预测,其行为取决于的设置代理
名称-值对的时候fitctree
构造Mdl
。
代理
=“关闭”
(默认)预测
返回标签的训练样本数量达到最大的节点。代理
=“上”
- - - - - -预测
使用最好的代理分节点。如果所有的代理变量与积极的分裂预测的协会人失踪,预测
返回标签的训练样本数量达到最大的节点。一个定义,请参阅预测的协会。
扩展功能
高大的数组
计算和数组的行比装入内存。
这个函数完全支持高数组。金宝app您可以使用模型训练与这个函数在内存中或高数据。
有关更多信息,请参见高大的数组。
C / c++代码生成
生成C和c++代码使用MATLAB®编码器™。
使用笔记和限制:
您可以生成C / c++代码
预测
和更新
通过使用一个编码器配置。或者,只生成代码预测
通过使用saveLearnerForCoder
,loadLearnerForCoder
,codegen
。代码生成的
预测
和更新
——创建一个编码器配置使用learnerCoderConfigurer
然后通过使用生成代码generateCode
。然后你可以更新模型参数生成的代码,而不必重新生成代码。代码生成的
预测
——保存一个训练有素的模型通过使用saveLearnerForCoder
。定义一个入口点函数,通过使用加载保存模型loadLearnerForCoder
并调用预测
函数。然后使用codegen
(MATLAB编码器)入口点函数来生成代码。
你也可以生成单精度的C / c++代码
预测
。对于单精度代码生成、指定名称-值对的论点“数据类型”、“单”
作为一个额外的输入loadLearnerForCoder
函数。你也可以产生定点C / c++代码
预测
。定点代码生成需要一个额外的步骤,定义了定点预测所需的变量的数据类型。通过创建一个定点数据类型结构数据类型的函数生成的generateLearnerDataTypeFcn
,使用的结构作为输入参数loadLearnerForCoder
在一个入口点函数。需要生成定点C / c++代码MATLAB®编码器™和定点设计师™。此表包含的参数
预测
。参数不包括在这个表是完全支持。金宝app论点 笔记和局限性 Mdl
使用笔记和限制的模型对象,明白了代码生成的
CompactClassificationTree
对象。X
对于一般的代码生成
X
必须是一个单精度和双精度矩阵或表包含单
或双
预测变量。如果你想指定
X
作为一个表,那么您的模型必须被训练使用一个表,你必须确保你的入口点函数预测:接受数据数组
创建一个表的数据输入参数并指定表中的变量名
通过表
预测
这个表的一个示例工作流,请参阅生成代码对数值型数据表进行分类。在代码生成中使用表格的更多信息,见代码生成表(MATLAB编码器)和表限制代码生成(MATLAB编码器)。
在编码器配置工作流,
X
必须是一个单
或双
矩阵。对于定点代码生成,
X
必须是一个定点矩阵。的行数,或观察
X
可以一个变量的大小,但列的数量X
必须是固定的。
标签
如果响应数据类型 字符
和codegen
不能确定的价值子树
是一个标量,然后呢标签
是一个单元阵列的特征向量。“子树”
名字必须编译时常量参数名称-值对。例如,允许用户定义的修剪水平在生成的代码中,包括
{coder.Constant(子树),coder.typeof (0, (1, n), [0,1])}
在arg游戏
的价值codegen
(MATLAB编码器),在那里n
是马克斯(Mdl.PruneList)
。的
“子树”
名称-值对的观点是不支持的编码器配置工作流。金宝app对于定点代码生成,
“子树”
值必须是coder.Constant(所有的)
或者有一个整数数据类型。
有关更多信息,请参见介绍代码生成。
MATLAB命令
你点击一个链接对应MATLAB命令:
运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。金宝app
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。