主要内容

ClassificationTree类

超类:CompactClassificationTree

二叉决策树的多类分类

描述

一个ClassificationTree对象表示一个决策树分类的二元分裂。这个类的对象可以预测反应的新数据使用预测方法。对象包含数据用于训练,所以它也可以计算resubstitution预测。

建设

创建一个ClassificationTree对象的使用fitctree

属性

BinEdges

本数值预测边缘,指定的单元阵列p数值向量,p预测的数量。每个向量包括箱子边缘数值预测。单元阵列中的元素分类预测是空的,因为软件不本分类预测。

软件垃圾箱只有指定数值预测“NumBins”名称-值参数作为一个正整数标量当训练学习者模型树。的BinEdges属性是空的,如果“NumBins”值是空的(默认)。

你可以复制被预测数据Xbinned通过使用BinEdges训练模型的属性mdl

X = mdl.X;%预测数据Xbinned = 0(大小(X));边缘= mdl.BinEdges;%找到被预测的指标。idxNumeric =找到(~ cellfun (@isempty边缘));如果iscolumn idxNumeric idxNumeric = idxNumeric ';对j = idxNumeric x = x (:, j);% x转换为数组如果x是一个表。如果istable (x) x = table2array (x);组x %到垃圾箱使用结束离散化函数。xbinned =离散化(x,[无穷;边缘{};正]);Xbinned (:, j) = Xbinned;结束
Xbinned包含本指标,从1到垃圾箱的数量,数值预测。Xbinned分类预测的值是0。如果X包含年代,那么相应的Xbinned值是年代。

CategoricalPredictors

分类预测指标,指定为一个向量的正整数。CategoricalPredictors包含索引值表明相应的预测分类。索引值介于1和p,在那里p预测的数量被用来训练模型。如果所有的预测都直言,那么这个属性是空的([])。

CategoricalSplit

一个n2单元阵列,n是绝对的数量将在吗。在每一行CategoricalSplit给左和右值分类分裂。为每个分支节点与分类j基于分类预测变量z选择,左边的孩子z是在CategoricalSplit (j, 1)和孩子选择z是在CategoricalSplit (j, 2)。分裂在同一个订单的节点树。节点对这些分歧可以通过运行中找到cuttype并选择“分类”从上到下。

孩子们

一个n2数组包含每个节点的子节点的数量,在那里n节点的数量。叶节点有子节点0

ClassCount

一个n——- - - - - -k数组的类数的节点,在那里n节点和数量吗k类的数量。任何节点的数量,类计数ClassCount(我,:)是重要的观察(树)用于拟合的数据从每个类满足条件节点

一会

元素的列表Y删除重复的。一会可以是一个绝对数组,单元阵列的特征向量,字符数组,逻辑向量,或一个数值向量。一会具有相同的数据类型作为数据的论点吗Y(软件对字符串数组作为细胞阵列特征向量)。

ClassProbability

一个n——- - - - - -k数组的类节点的概率,在那里n节点和数量吗k类的数量。任何节点的数量,类概率ClassProbability(我,:)为每个类一个点估计的概率满足的条件节点

成本

方阵,成本(i, j)是一个指向类分类的成本j如果它真正的类(行对应于真正的阶级和列对应于预测类)。的行和列的顺序成本对应于类的顺序一会。行和列的数量成本在响应中是独特的类的数量。这个属性是只读的。

CutCategories

一个n2单元阵列在分支机构使用的类别,在那里n节点的数量。为每个分支节点基于分类预测变量X选择,左边的孩子X在列出的类别吗CutCategories{1},我选择,正确的孩子X中列出的那些吗CutCategories{2},我。这两列的CutCategories是空的基于连续预测分支节点和叶节点。

割点包含切割点“连续”削减,CutCategories包含的集合类。

割点

一个n元向量的值用作切割点,在那里n节点的数量。为每个分支节点基于连续的预测变量X选择,左边的孩子X <割点(我)和孩子选择X > =割点(我)割点基于分类预测的分支节点和叶节点。

割点包含切割点“连续”削减,CutCategories包含的集合类。

CutType

一个n元胞数组表示将在每个节点的类型,在那里n节点的数量。为每个节点,CutType{我}是:

  • “连续”——如果伤口中定义的形式X < v为一个变量X和减少点v

  • “分类”——如果将被定义为一个变量X以一组类别的一个值。

  • ——如果是一个叶子节点。

割点包含切割点“连续”削减,CutCategories包含的集合类。

CutPredictor

一个n元胞数组的变量的名称用于分支在每个节点,在那里n节点的数量。这些变量有时被称为减少变量。叶节点,CutPredictor包含一个空的特征向量。

割点包含切割点“连续”削减,CutCategories包含的集合类。

CutPredictorIndex

一个n使用有效的数字索引数组变量中每个节点的分支,在那里n节点的数量。有关更多信息,请参见CutPredictor

ExpandedPredictorNames

扩展预测名称,存储单元阵列的特征向量。

如果分类变量的模型使用的编码,那么ExpandedPredictorNames包括名称,描述变量扩展。否则,ExpandedPredictorNames是一样的PredictorNames

HyperparameterOptimizationResults

描述hyperparameters交叉验证优化的存储为一个BayesianOptimization对象或一个表hyperparameters和相关联的值。非空的时OptimizeHyperparameters名称-值对非空的创造。价值取决于的设置HyperparameterOptimizationOptions名称-值对在创建:

  • “bayesopt”(默认)——对象的类BayesianOptimization

  • “gridsearch”“randomsearch”——hyperparameters表使用,观察目标函数值(交叉验证损失)和从最低(最好的)最高等级的观察(坏的)

IsBranchNode

一个n元逻辑向量真正的为每个节点和分支为每一个叶子节点

ModelParameters

在培训中使用的参数。显示所有参数值,输入tree.ModelParameters。访问一个特定的参数,使用点符号。

NumObservations

在训练数据的观察,一个数字标量。NumObservations可以小于输入数据的行数X当有缺失值X或响应Y

NodeClass

一个n元胞数组的名字在每个节点的最可能的类,在那里n是在树上的节点数量。这个数组的每个元素是一个特征向量的一个类名一会

NodeError

一个n元向量的节点的错误,在那里n节点的数量。NodeError(我)是节点的误分类概率

NodeProbability

一个n元向量的节点的概率,在那里n节点的数量。一个节点的概率计算的比例从原始观测数据,满足条件的节点。这一比例调整为任何先验概率分配给每个类。

NodeRisk

一个n元向量的风险树中的节点,在哪里n节点的数量。每个节点的风险是杂质的测量(基尼系数或异常)为该节点通过节点概率加权。如果两个种植这棵树,每个节点的风险为零。

NodeSize

一个n元向量的节点的大小,在那里n节点的数量。大小的一个节点被定义为观测的数量从数据用来创建树节点满足条件。

NumNodes

节点的数量

一个n元向量包含每个节点的父节点的数量,在那里n节点的数量。根节点的父节点0

PredictorNames

单元阵列包含预测的特征向量的名字,它们出现的顺序X

之前

每个类的先验概率数值向量。元素的顺序之前对应于类的顺序一会。元素的数量之前在响应中是独特的类的数量。这个属性是只读的。

PruneAlpha

每修剪水平数值向量和一个元素。如果修剪水平范围从0到,然后PruneAlpha+ 1元素按升序排序。PruneAlpha (1)是修剪级别0(没有修剪),PruneAlpha (2)修剪水平1,等等。

PruneList

一个n元数值向量的每个节点修剪水平,在那里n节点的数量。修剪水平范围从0(没有修剪),在那里是最深的叶和根节点之间的距离。

ResponseName

一个特征向量指定响应变量的名称(Y)。

RowsUsed

一个n元逻辑向量表示哪些行最初的预测数据(X)被用于拟合。如果软件使用的所有行X,然后RowsUsed是一个空数组([])。

ScoreTransform

函数处理转换分类预测分数,或字符向量代表一个内置的变换函数。

没有一个意味着没有转换,或@ x (x)

改变分数转换函数,例如,函数,使用点符号。

  • 可用功能(见fitctree),输入

    Mdl。ScoreTransform = '函数”;
  • 你可以设置一个函数处理为一个可用的函数,或一个函数定义你自己进入

    树。ScoreTransform = @函数;

SurrogateCutCategories

一个n元胞数组的类别用于替代分裂,在那里n节点的数量在吗。为每个节点k,SurrogateCutCategories {k}是一个单元阵列。的长度SurrogateCutCategories {k}等于代理预测在这个节点的数量。每个元素的SurrogateCutCategories {k}要么是一个空的特征向量连续代理预测,或者是一个双元素单元阵列与类别分类代理预测。双元素单元阵列列表的第一个元素类别分配给这个代理分裂,左子和双元素单元阵列的第二个元素列表类别分配到正确的孩子通过这个代理。代孕的顺序分离变量在每个节点匹配变量的顺序SurrogateCutPredictor。在这个节点没有出现optimal-split变量。nonbranch(叶)节点,SurrogateCutCategories包含一个空单元。

SurrogateCutFlip

一个n元胞数组的数值减少作业用来替代分裂,在那里n节点的数量在吗。为每个节点k,SurrogateCutFlip {k}是一个数值向量。的长度SurrogateCutFlip {k}等于代理预测在这个节点的数量。每个元素的SurrogateCutFlip {k}零分类代理预测,或一个数字削减分配连续代理预测。数字减少作业可以是- 1或+ 1。对于每一个代理和一个数字C基于连续的预测变量Z选择,左边的孩子Z<C和削减分配代理分+ 1,或者ZC和这个代理的切割作业是1。同样,选择正确的孩子ZC和削减分配代理分+ 1,或者Z<C和这个代理的切割作业是1。代孕的顺序分离变量在每个节点匹配变量的顺序SurrogateCutPredictor。在这个节点没有出现optimal-split变量。nonbranch(叶)节点,SurrogateCutFlip包含一个空数组。

SurrogateCutPoint

一个n元胞数组的数值用于替代分裂,在那里n节点的数量在吗。为每个节点k,SurrogateCutPoint {k}是一个数值向量。的长度SurrogateCutPoint {k}等于代理预测在这个节点的数量。每个元素的SurrogateCutPoint {k}要么是分类代理预测,或连续的数字减少代理预测。对于每一个代理和一个数字C基于连续的预测变量Z选择,左边的孩子Z<CSurrogateCutFlip这个代理分+ 1,或者ZCSurrogateCutFlip这个代理分裂是1。同样,选择正确的孩子ZCSurrogateCutFlip这个代理分+ 1,或者Z<CSurrogateCutFlip这个代理分裂是1。代孕的顺序分离变量在每个节点相匹配的顺序返回的变量SurrogateCutPredictor。在这个节点没有出现optimal-split变量。nonbranch(叶)节点,SurrogateCutPoint包含一个空单元。

SurrogateCutType

一个n元胞数组表示类型的代理将在每个节点,在那里n节点的数量在吗。为每个节点k,SurrogateCutType {k}是单元阵列类型的代理变量分裂在这个节点。预测的变量排序测量和最优预测降序排列,并仅包含了变量与积极的预测指标。代孕的顺序分离变量在每个节点匹配变量的顺序SurrogateCutPredictor。在这个节点没有出现optimal-split变量。nonbranch(叶)节点,SurrogateCutType包含一个空单元。代孕可以分裂类型“连续”如果削减中定义的形式Z<V为一个变量Z和减少点V“分类”如果削减由是否定义Z以一组类别的一个值。

SurrogateCutPredictor

一个n元胞数组的变量的名称用于代理在每个节点分裂,在那里n节点的数量在吗。每个元素的SurrogateCutPredictor是一个单元阵列的名字在这个节点代理变量分裂。预测的变量排序测量和最优预测降序排列,并仅包含了变量与积极的预测指标。在这个节点没有出现optimal-split变量。nonbranch(叶)节点,SurrogateCutPredictor包含一个空单元。

SurrogatePredictorAssociation

一个n元胞数组的代理将协会的预测措施,在那里n节点的数量在吗。为每个节点k,SurrogatePredictorAssociation {k}是一个数值向量。的长度SurrogatePredictorAssociation {k}等于代理预测在这个节点的数量。每个元素的SurrogatePredictorAssociation {k}给出了预测的最优分割这代理分裂之间的联系。代孕的顺序分离变量在每个节点变量的顺序SurrogateCutPredictor。在这个节点没有出现optimal-split变量。nonbranch(叶)节点,SurrogatePredictorAssociation包含一个空单元。

W

的比例权重,一个向量的长度n的行数X

X

一个矩阵或表的预测价值。每一列的X代表一个变量,每一行代表一个观察。

Y

绝对数组,单元阵列的特征向量,字符数组,逻辑向量,或一个数值向量。每一行的Y代表的分类对应的行X

对象的功能

紧凑的 紧凑的树
compareHoldout 比较两种分类模型使用新数据的精度
crossval 旨在决策树
cvloss 通过交叉验证分类错误
边缘 分类的优势
收集 收集的属性统计和机器学习工具对象从GPU
石灰 本地可model-agnostic解释(石灰)
损失 分类错误
保证金 分类的利润率
nodeVariableRange 检索变量决策树节点的范围
partialDependence 计算部分依赖
plotPartialDependence 创建部分依赖图(PDP)和个人条件期望(ICE)情节
预测 预测使用分类树标签
predictorImportance 估计预测重要的分类树
修剪 生产序列分类树的修剪
resubEdge 分类边缘resubstitution
resubLoss 由resubstitution分类错误
resubMargin 分类利润resubstitution
resubPredict 预测resubstitution标签的分类树
沙普利 沙普利值
surrogateAssociation 意味着预测衡量代理协会分类树的分裂
testckfold 比较两种分类模型的精度重复交叉验证
视图 视图分类树

复制语义

价值。学习如何价值类影响复制操作,明白了复制对象

例子

全部折叠

使用分类树生长电离层数据集。

负载电离层tc = fitctree (X, Y)
tc = ClassificationTree ResponseName:‘Y’CategoricalPredictors:[]类名:{b ' g '} ScoreTransform:“没有一个”NumObservations: 351属性,方法

你可以控制树的深度使用MaxNumSplits,MinLeafSize,或MinParentSize名称-值对参数。fitctree默认情况下生长深决策树。你可以长浅树上降低模型复杂度和计算时间。

加载电离层数据集。

负载电离层

默认值树的深度控制器的分类树:

  • n - 1MaxNumSplitsn是训练样本大小。

  • 1MinLeafSize

  • 10MinParentSize

这些默认值往往深对大训练样本大小的树木生长。

训练一个分类树树深度控制使用默认值。旨在通过使用10倍交叉验证模型。

rng (1);%的再现性MdlDefault = fitctree (X, Y,“CrossVal”,“上”);

画一个直方图的数量对树分裂。同时,视图的一个树。

numBranches = @ (x)和(x.IsBranch);mdlDefaultNumSplits = cellfun (numBranches MdlDefault.Trained);图;直方图(mdlDefaultNumSplits)

图包含一个坐标轴对象。坐标轴对象包含一个直方图类型的对象。

视图(MdlDefault.Trained {1},“模式”,“图”)

图分类树查看器包含一个坐标轴对象和其他对象类型uimenu uicontrol。坐标轴对象包含51行类型的对象,文本。

分裂的平均数量大约是15。

假设你想要一个并不复杂的分类树(深)的训练使用默认数量的分裂。训练另一个分类树,但分裂的最大数量为7,这是大约一半的意思是默认分类树的分裂。旨在通过使用10倍交叉验证模型。

Mdl7 = fitctree (X, Y,“MaxNumSplits”7“CrossVal”,“上”);视图(Mdl7.Trained {1},“模式”,“图”)

图分类树查看器包含一个坐标轴对象和其他对象类型uimenu uicontrol。坐标轴对象包含21线类型的对象,文本。

比较模型的交叉验证分类错误。

classErrorDefault = kfoldLoss (MdlDefault)
classErrorDefault = 0.1168
classError7 = kfoldLoss (Mdl7)
classError7 = 0.1311

Mdl7是更复杂的和执行仅略逊于吗MdlDefault

更多关于

全部展开

引用

[1]Breiman, L。,J. Friedman, R. Olshen, and C. Stone.分类和回归树。波卡拉顿,FL: CRC出版社,1984年。

扩展功能

版本历史

介绍了R2011a