TreeBagger
袋装决策树的合奏
描述
一个TreeBagger
对象是袋装的整体决策树分类或回归。个人决策树overfit。装袋代表引导聚合,它是一个方法,减少过度拟合的影响,提高了泛化。
创建
的TreeBagger
函数的每棵树生长TreeBagger
使用引导整体模型的样本输入数据。观察不包含在样本被认为是“out-of-bag”那棵树。函数的随机选择一个子集预测每个决定分割利用随机森林算法[1]。
语法
描述
提示
默认情况下,TreeBagger
功能分类决策树生长。增长回归决策树,指定名称的论点方法
作为“回归”
。
返回一个对象(Mdl
= TreeBagger (NumTrees
,资源描述
,ResponseVarName
)Mdl
)NumTrees
袋装分类树,训练有素的预测表资源描述
在变量和类标签Tbl.ResponseVarName
。
输入参数
NumTrees
- - - - - -决策树的数量
正整数
决策树在袋装合奏,指定为一个正整数。
数据类型:单
|双
资源描述
- - - - - -样本数据
表
样本数据用于训练模型,指定为一个表。每一行的资源描述
对应于一个观察,每一列对应一个预测变量。可选地,资源描述
响应变量可以包含一个额外的列。多列变量和细胞数组以外的细胞阵列的特征向量是不允许的。
如果
资源描述
包含响应变量,你想使用所有剩余的变量资源描述
作为预测因子,然后通过使用指定的响应变量ResponseVarName
。如果
资源描述
包含响应变量,和你想使用剩余的变量的一个子集资源描述
作为预测因子,然后通过指定一个公式公式
。如果
资源描述
不包含响应变量,然后指定一个响应变量通过使用Y
。响应变量的长度的行数资源描述
必须是相等的。
ResponseVarName
- - - - - -响应变量名
变量的名字资源描述
响应变量名称,指定为一个变量的名字资源描述
。
您必须指定ResponseVarName
作为一个特征向量或字符串标量。例如,如果响应变量Y
存储为Tbl.Y
,然后指定它“Y”
。否则,软件将所有列资源描述
,包括Y
训练时,预测模型。
响应变量必须分类,字符,或字符串数组;一个逻辑或数值向量;或一个单元阵列的特征向量。如果Y
是一个字符数组,每个元素的响应变量必须对应一行的数组。
一个良好的实践是指定类的顺序使用一会
名称-值参数。
数据类型:字符
|字符串
公式
- - - - - -说明模型的响应变量和预测变量的子集
特征向量|字符串标量
响应变量的解释模型和预测变量的一个子集,指定为一个特征向量或字符串标量形式“Y ~ x1 + x2 + x3”
。在这种形式,Y
代表的响应变量,x1
,x2
,x3
代表了预测变量。
指定变量的子集资源描述
作为培训的预测模型,使用一个公式。如果你指定一个公式,那么软件中不使用任何变量资源描述
不出现在公式
。
公式中的变量名必须两变量名资源描述
(Tbl.Properties.VariableNames
MATLAB)和有效®标识符。您可以验证变量名资源描述
通过使用isvarname
函数。如果变量名是无效的,那么您可以将其转换使用matlab.lang.makeValidName
函数。
数据类型:字符
|字符串
Y
- - - - - -类标签或响应变量
分类数组|字符数组|字符串数组|逻辑向量|数值向量|单元阵列的特征向量
类标签或响应变量的合奏袋装决策树训练,分类,指定字符,或字符串数组;一个逻辑或数值向量;或一个单元阵列的特征向量。
如果您指定
方法
作为“分类”
,以下申请类标签Y
:的每个元素
Y
定义的类成员相应的行X
。如果
Y
是一个字符数组,那么每一行必须对应一个类标签。的
TreeBagger
函数转换类标签单元阵列的特征向量。
如果您指定
方法
作为“回归”
,响应变量Y
是一个n1数字向量,n是观测的数量。中的每个条目Y
的响应相应的行吗X
。
的长度Y
的行数X
必须是相等的。
数据类型:分类
|字符
|字符串
|逻辑
|单
|双
|细胞
X
- - - - - -预测数据
数字矩阵
预测数据,指定为一个数字矩阵。
每一行的X
对应于一个观察(也称为一个实例或例子),和每一列对应一个变量(也称为一个特性)。
的长度Y
的行数X
必须是相等的。
数据类型:双
指定可选的双参数作为Name1 = Value1,…,以=家
,在那里的名字
参数名称和吗价值
相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。
例子:TreeBagger(100年,X, Y,方法=“回归”,代理=“on”OOBPredictorImportance =“上”)
100年创建一个袋装合奏回归树,并指定使用代理分裂和存储out-of-bag信息预测评估的重要性。
ChunkSize
- - - - - -每个块的观测数据
50000年(默认)|正整数
成本
- - - - - -误分类代价
方阵|结构
误分类代价,指定为一个方阵或结构。
如果你指定方阵
成本
而真正的类的观察我
,然后成本(i, j)
是一个指向类分类的成本j
。即行对应于真实的类和列对应于预测类。指定的类订单相应的行和列成本
,可以使用一会
名称-值参数。如果你指定的结构
年代
,那么它必须有两个字段:S.ClassNames
,其中包含类名相同的数据类型的一个变量Y
S.ClassificationCosts
,其中包含成本矩阵行和列命令一样S.ClassNames
默认值是成本(i, j) = 1
如果我~ = j
,成本(i, j) = 0
如果我=我
。
更多信息在一个高度倾斜的影响成本
,请参阅算法。
例子:成本= (0,1,2,0)
数据类型:单
|双
|结构体
CategoricalPredictors
- - - - - -分类预测列表
向量的正整数|逻辑向量|字符矩阵|字符串数组|单元阵列的特征向量|“所有”
分类预测表,在这个表指定为一个值。
价值 | 描述 |
---|---|
向量的正整数 | 向量中的每个条目是一个索引值表明相应的预测分类。索引值介于1和 如果 |
逻辑向量 | 一个 |
字符矩阵 | 矩阵的每一行是一个预测变量的名字。名称必须匹配的条目PredictorNames 。垫的名字与额外的空格字符矩阵的每一行有相同的长度。 |
字符串数组或单元阵列的特征向量 | 数组中的每个元素是一个预测变量的名字。名称必须匹配的条目PredictorNames 。 |
“所有” |
所有预测都直言。 |
默认情况下,如果预测数据表(资源描述
),TreeBagger
假设变量是直言如果它是一个逻辑向量,分类向量,字符数组,字符串数组或单元阵列特征向量。如果预测数据是一个矩阵(X
),TreeBagger
假设所有的预测都是连续的。识别任何其他预测分类预测,通过使用指定它们CategoricalPredictors
名称-值参数。
确定分类预测,TreeBagger
使用两种不同的方案,创建虚变量取决于分类变量是无序或命令。一个无序分类变量,TreeBagger
创建一个哑变量为每个级别的分类变量。对于有序分类变量,TreeBagger
创建一个哑变量小于类别的数量。有关详细信息,请参见自动创建虚拟变量。
例子:CategoricalPredictors = "所有"
数据类型:单
|双
|逻辑
|字符
|字符串
|细胞
方法
- - - - - -类型的决策树
“分类”
(默认)|“回归”
指定为类型的决策树“分类”
或“回归”
。回归树,Y
必须是数值。
例子:方法= "回归"
MinLeafSize
- - - - - -最小数量的叶子节点观测
正整数
最小数量的叶子节点观测,指定为一个正整数。每片叶子都至少有MinLeafSize
观察树叶。默认情况下,MinLeafSize
是1
分类树和5
回归树。
例子:MinLeafSize = 4
数据类型:单
|双
NumPredictorsToSample
- - - - - -的数量为每个预测变量决定分裂
正整数|“所有”
数量的预测变量(随机选择)分裂为每一个决定,一个正整数或指定“所有”
。默认情况下,NumPredictorsToSample
的平方根是变量的数量对分类树,和一个第三个变量回归树的数量。如果默认数不是整数,该软件轮数量到最近的整数的方向正无穷。如果你设置NumPredictorsToSample
任何价值除了“所有”
,软件使用Breiman随机森林算法[1]。
例子:NumPredictorsToSample = 5
数据类型:单
|双
|字符
|字符串
NumPrint
- - - - - -种植树木数量后,软件显示消息
0(默认)|正整数
种植树木的数量(培训周期)后,软件显示一个消息关于培训进展在命令窗口中,指定为一个非负整数。默认情况下,软件显示诊断消息。
例子:NumPrint = 10
数据类型:单
|双
InBagFraction
- - - - - -分数的输入数据样本
1(默认)|积极的标量
分数的输入数据与替代样本从输入数据增长每个新树,指定为一个积极的标量范围(0,1)。
例子:InBagFraction = 0.5
数据类型:单
|双
OOBPrediction
- - - - - -存储out-of-bag信息指标
“关闭”
(默认)|“上”
指示器out-of-bag信息存储在合奏,指定为“上”
或“关闭”
。指定OOBPrediction
作为“上”
存储信息观测out-of-bag每棵树。TreeBagger
可以使用这些信息来计算预测类概率每棵树的合奏。
例子:OOBPrediction =“关闭”
OOBPredictorImportance
- - - - - -指标来存储out-of-bag功能重要性的估计
“关闭”
(默认)|“上”
指示存储out-of-bag估计特征重要性的合奏,指定为“上”
或“关闭”
。如果您指定OOBPredictorImportance
作为“上”
,TreeBagger
函数集OOBPrediction
来“上”
。如果你想预测的重要性,分析指定PredictorSelection
作为“弯曲”
或“interaction-curvature”
。
例子:OOBPredictorImportance = " "
选项
- - - - - -选择运行并行计算和设置随机流
结构
选择运行并行计算和设置随机流,指定为一个结构。创建选项
结构使用statset
。此表列出了选项
字段及其值。
字段名 | 价值 | 默认的 |
---|---|---|
UseParallel |
将这个值设置为真正的 运行并行计算。 |
假 |
UseSubstreams |
将这个值设置为 计算重复性良好 |
假 |
流 |
这个值指定为一个RandStream 对象或一个单元阵列组成的一个这样的对象。 |
如果你不指定流 ,然后TreeBagger 使用默认的流。 |
请注意
你需要并行计算工具箱™运行并行计算。
例子:选项= statset (UseParallel = true)
数据类型:结构体
PredictorNames
- - - - - -预测变量的名字
字符串数组独特的名字|单元阵列独特的特征向量
预测变量名称,指定的唯一名称的字符串数组或单元阵列独特的特征向量。的功能PredictorNames
取决于你如何提供训练数据。
如果你提供
X
和Y
,那么你可以使用PredictorNames
指定名称的预测变量X
。名字的顺序
PredictorNames
必须对应的列顺序X
。也就是说,PredictorNames {1}
的名字是X (: 1)
,PredictorNames {2}
的名字是X (:, 2)
,等等。同时,大小(X, 2)
和元素个数(PredictorNames)
必须是相等的。默认情况下,
PredictorNames
是{x1, x2,…}
。
如果你提供
资源描述
,那么你可以使用PredictorNames
选择使用哪个预测变量在训练。也就是说,TreeBagger
只使用的预测变量PredictorNames
和响应变量在训练。PredictorNames
必须是一个子集的Tbl.Properties.VariableNames
,不能包括响应变量的名称。默认情况下,
PredictorNames
包含所有预测变量的名字。一个良好的实践是指定培训使用的预测因子
PredictorNames
或公式
,但不能两者兼得。
例子:PredictorNames = [“SepalLength”、“SepalWidth”,“PetalLength”、“PetalWidth”)
数据类型:字符串
|细胞
SampleWithReplacement
- - - - - -放回抽样指标
“上”
(默认)|“关闭”
放回抽样指标,指定为“上”
或“关闭”
。指定SampleWithReplacement
作为“上”
与更换样品,或“关闭”
样品没有更换。如果你设置SampleWithReplacement
来“关闭”
,您必须设置名称参数InBagFraction
值小于1。
例子:SampleWithReplacement = " "
之前
- - - - - -先验概率为每个类两级学习
“经验”
(默认)|“统一”
|数值向量|结构数组
先验概率为每个类两级学习,在这个表指定为一个值。
价值 | 描述 |
---|---|
“经验” |
类先验概率类相对频率Y 。 |
“统一” |
所有类先验概率等于1 /K,在那里K类的数量。 |
数值向量 | 向量中每个元素是一个类先验概率。根据元素的顺序Mdl.ClassNames 或指定的顺序使用一会 名称-值参数。该软件可实现元素之和1 。 |
结构 | 一个结构
|
如果你指定一个成本矩阵,之前
财产的TreeBagger
模型存储错误分类的先验概率调整成本。更多细节,请参阅算法。
这个论点是有效的只有两级学习。
例子:之前=结构(类名= [“setosa”“癣”“virginica”], ClassProbs = 1:3)
数据类型:字符
|字符串
|单
|双
|结构体
请注意
除了名称参数TreeBagger
函数接受的名称参数fitctree
和fitrtree
中列出的额外的名称TreeBagger函数的参数。
输出参数
Mdl
——整体的决策树
TreeBagger
对象
袋装决策树的合奏,作为一个返回TreeBagger
对象。
属性
装袋属性
ComputeOOBPrediction
- - - - - -观测指标来计算out-of-bag预测培训
假
或0(默认)|真正的
或1
这个属性是只读的。
指标计算out-of-bag预测训练观察,指定为一个数字或逻辑1 (真正的
)或0 (假
)。如果此属性真正的
:
的
TreeBagger
对象的属性OOBIndices
和OOBInstanceWeight
。您可以使用对象的功能
oobError
,oobMargin
,oobMeanMargin
。
ComputeOOBPredictorImportance
- - - - - -指标计算out-of-bag变量的重要性
假
或0(默认)|真正的
或1
这个属性是只读的。
指标计算out-of-bag变量重要性,指定为一个数字或逻辑1 (真正的
)或0 (假
)。如果此属性真正的
:
的
TreeBagger
对象的属性OOBPermutedPredictorDeltaError
,OOBPermutedPredictorDeltaMeanMargin
,OOBPermutedPredictorCountRaiseMargin
。房地产
ComputeOOBPrediction
也真正的
。
InBagFraction
- - - - - -随机选择的观察
1(默认)|数字标量
这个属性是只读的。
分数的观察与更换随机选择为每个引导副本(在袋子的观察),指定为一个数字标量。每个副本的大小脑袋×InBagFraction
,在那里脑袋在训练数据的数量的观察。
数据类型:单
|双
OOBIndices
- - - - - -Out-of-bag指数
逻辑阵列
这个属性是只读的。
Out-of-bag指标,指定为一个逻辑数组。这个属性是一个脑袋——- - - - - -NumTrees
数组,脑袋在训练数据的数量的观察,然后呢NumTrees
是树木的数量。如果
元素是OOBIndices
(我,j)真正的
,观察我这棵树out-of-bag吗j(即TreeBagger
函数没有选择观察我训练数据用于种植的树j)。
OOBInstanceWeight
- - - - - -为每个观察out-of-bag树木数量
数值向量
这个属性是只读的。
out-of-bag数量为每个观察树木,指定为一个数值向量。这个属性是一个脑袋1的向量,脑袋在训练数据的数量的观察。的
元素包含树的数量用于计算out-of-bag反应观察我。OOBInstanceWeight
(我)
数据类型:单
|双
OOBPermutedPredictorCountRaiseMargin
- - - - - -预测变量重要性提高利润率
数值向量
这个属性是只读的。
预测变量(特征)重要性提高利润率,指定为一个数值向量。这个属性是一个1 -据nvar向量,据nvar训练数据是变量的数量。对于每个变量,测量的区别是提高利润的数量和降低利润的数量如果这个变量的值是整个out-of-bag观测排列。这种方法计算每棵树,然后平均在整个合奏和除以标准差整个合奏。
这个属性是空的([]
回归树。
数据类型:单
|双
OOBPermutedPredictorDeltaError
- - - - - -预测变量预测误差的重要性
数值向量
这个属性是只读的。
预测变量预测误差(特性)的重要性,指定为一个数值向量。这个属性是一个1 -据nvar向量,据nvar是变量的数量(列)在训练数据。对于每个变量,预测误差的措施是增加如果这个变量的值是整个out-of-bag观测排列。这种方法计算每棵树,然后平均在整个合奏和除以标准差整个合奏。
数据类型:单
|双
OOBPermutedPredictorDeltaMeanMargin
- - - - - -预测变量重要性分类
数值向量
这个属性是只读的。
预测变量(特征)重要性分类,指定为数字向量。这个属性是一个1 -据nvar向量,据nvar是变量的数量(列)在训练数据。每个变量的措施是减少分类保证金如果这个变量的值是整个out-of-bag观测排列。这种方法计算每棵树,然后平均在整个合奏和除以标准差整个合奏。
这个属性是空的([]
回归树。
数据类型:单
|双
树的属性
DeltaCriterionDecisionSplit
- - - - - -分割标准为每个预测贡献
数值向量
这个属性是只读的。
分割标准为每个预测贡献,指定为一个数值向量。这个属性是一个1 -据nvar向量,据nvar是分裂的变化的数量标准。软件金额拆分条件的变化将在每个变量,然后平均金额在整个乐团的种植树木。
数据类型:单
|双
MergeLeaves
- - - - - -指标合并的叶子
假
或0(默认)|真正的
或1
这个属性是只读的。
指标合并叶子,指定为一个数字或逻辑1 (真正的
)或0 (假
)。此属性真正的
如果软件合并决策树的叶子用相同的父母,不降低总风险的分裂。否则,此属性假
。
MinLeafSize
- - - - - -最小数量的叶子节点观测
正整数
这个属性是只读的。
最小数量的叶子节点观测,指定为一个正整数。每片叶子都至少有MinLeafSize
观察。默认情况下,MinLeafSize
是1对分类树和5回归树。对决策树训练,fitctree
和fitrtree
设置名称-值参数MinParentSize
来2 * MinLeafSize
。
数据类型:单
|双
NumTrees
- - - - - -决策树的数量
正整数
这个属性是只读的。
决策树在袋装合奏,指定为一个正整数。
数据类型:单
|双
修剪
- - - - - -指标来估计修剪树的最优序列
假
或0(默认)|真正的
或1
这个属性是只读的。
指标估计修剪树的最优序列,指定为一个数字或逻辑1 (真正的
)或0 (假
)。的修剪
属性是真正的
如果决策树修剪,假
如果他们不是。修剪决策树不建议集合体。
SampleWithReplacement
- - - - - -指标与替代样本决策树
真正的
或1(默认)|假
或0
这个属性是只读的。
指标与替代样本每个决策树,指定为一个数字或逻辑1 (真正的
)或0 (假
)。此属性真正的
如果TreeBagger
与替代函数样本每个决策树,假
否则。
SurrogateAssociation
- - - - - -变量协会预测措施
数字矩阵
这个属性是只读的。
预测指标变量协会指定为一个数字矩阵。这个属性是一个据nvar——- - - - - -据nvar矩阵,据nvar是预测变量的数量。属性包含变量的预测措施协会,平均在整个乐团的种植树木。
如果你种植的合奏
代理
名称-值参数设置为“上”
这个矩阵,每棵树,充满了协会的预测措施平均代理分裂。如果你种植的合奏
代理
名称-值参数设置为“关闭”
,SurrogateAssociation
房地产是一个单位矩阵。默认情况下,代理
被设置为“关闭”
。
数据类型:单
|双
TreeArguments
- - - - - -名称-值参数指定TreeBagger
函数
单元阵列
这个属性是只读的。
指定的名称参数TreeBagger
函数,指定为一个单元阵列。的TreeBagger
函数使用这些名称参数时袋装合奏种植新树。
树
- - - - - -决策树在合奏
单元阵列
这个属性是只读的。
决策树在袋装合奏,指定为一个NumTrees
1单元阵列。每棵树是一个CompactClassificationTree
或CompactRegressionTree
对象。
预测性能
NumPredictorSplit
- - - - - -为每个预测数量决定分裂
数值向量
这个属性是只读的。
为每个预测数量决定分裂,指定为一个数值向量。这个属性是一个1 -据nvar向量,据nvar是预测变量的数量。的每个元素NumPredictorSplit
代表的数量将在预测求和所有树木。
数据类型:单
|双
NumPredictorsToSample
- - - - - -选择数量的预测变量
正整数
这个属性是只读的。
预测变量的数量为每个决定选择随机分裂,指定为一个正整数。默认情况下,此属性变量的总数量的平方根分类树,和总数的三分之一变量回归树。
数据类型:单
|双
OutlierMeasure
- - - - - -离群值为每个观察测量
数值向量
这个属性是只读的。
离群值为每个观察测量,指定为一个数值向量。这个属性是一个脑袋1的向量,脑袋在训练数据的数量的观察。
数据类型:单
|双
PredictorNames
- - - - - -预测的名字
单元阵列的特征向量
这个属性是只读的。
预测指标名称,指定为一个单元阵列的特征向量。元素的顺序PredictorNames
对应的顺序预测的名字出现在训练数据X
。
X
- - - - - -预测
数字数组
这个属性是只读的。
预测用于训练袋装合奏,指定为数字数组。这个属性是一个脑袋——- - - - - -据nvar数组,脑袋观察(行)的数量和吗据nvar是变量的数量(列)在训练数据。
数据类型:单
|双
响应特性
DefaultYfit
- - - - - -默认的预测价值
”“
|“MostPopular”
|数字标量
默认返回的预测价值预测
或oobPredict
,指定为”“
,“MostPopular”
或数字标量。这个属性控制返回的预测值预测
或oobPredict
目标函数时预测是不可能的(例如,当oobPredict
预测反应的观察是在袋子中所有树木合奏)。
分类树,您可以设置
DefaultYfit
要么”“
或“MostPopular”
。如果您指定“MostPopular”
分类(默认),属性值是最可能的类的名字在训练数据。如果您指定”“
的袋子中观察被排除在计算out-of-bag错误和保证金。回归树,您可以设置
DefaultYfit
任何数字标量。的默认值回归训练数据响应的均值。如果你设置DefaultYfit
来南
的袋子中观察被排除在计算out-of-bag错误和保证金。
例子:Mdl.DefaultYfit = " MostPopular "
数据类型:单
|双
|字符
|字符串
Y
- - - - - -类标签或响应数据
单元阵列的特征向量|数值向量
这个属性是只读的。
类标签或响应数据,指定为一个单元阵列特征向量或一个数值向量。
如果你设置
方法
名称-值参数“分类”
,这个属性代表类标签。每一行的Y
代表观察到的分类对应的行X
。如果你设置
方法
名称-值参数“回归”
,这个属性代表响应数据,是一个数值向量。
数据类型:单
|双
|细胞
训练属性
方法
- - - - - -类型的合奏
“分类”
|“回归”
这个属性是只读的。
类型的合奏,指定为“分类”
分类集合体或“回归”
回归集合体。
接近
- - - - - -训练数据之间的距离观察
数字数组
这个属性是只读的。
训练数据之间的距离观察,指定为数字数组。这个属性是一个脑袋——- - - - - -脑袋数组,脑袋在训练数据的数量的观察。该数组包含措施之间的近距离观察。对于任意两个观察,他们的距离被定义为树木的一部分,这些观察相同的叶子。数组是对称的,对角线上的和非对角元素从0到1。
数据类型:单
|双
W
- - - - - -观察权重
向量的非负价值
这个属性是只读的。
观察体重、指定为一个向量的非负价值。这个属性相同的行数Y
。中的每个条目W
指定相应的观测的相对重要性Y
。的TreeBagger
函数使用观察权重集合中的每个决策树生长。
数据类型:单
|双
分类属性
一会
- - - - - -独特的类名
单元阵列的特征向量
这个属性是只读的。
独特的培训模式中使用类名称,指定为一个单元阵列的特征向量。
这个属性是空的([]
回归树。
成本
- - - - - -误分类代价
数字方阵
这个属性是只读的。
误分类代价,指定为一个数字方阵。的元素成本(i, j)
是一个指向类分类的成本j
如果它真正的类我
。行对应于真实的类和列对应预测类。的行和列的顺序成本
对应于类的顺序一会
。
这个属性是空的([]
回归树。
数据类型:单
|双
之前
- - - - - -先验概率
数值向量
这个属性是只读的。
先验概率,指定为一个数值向量。元素的顺序之前
对应于元素的顺序Mdl.ClassNames
。
如果你指定一个矩阵通过使用成本成本
名称-值参数的TreeBagger
函数,之前
财产的TreeBagger
模型对象存储(指定的先验概率之前
名称-值参数)调整的误分类代价。更多细节,请参阅算法。
这个属性是空的([]
回归树。
数据类型:单
|双
对象的功能
创建CompactTreeBagger
紧凑的 |
紧凑的决策树 |
解释合奏
partialDependence |
计算部分依赖 |
plotPartialDependence |
创建部分依赖图(PDP)和个人条件期望(ICE)情节 |
测量性能
错误 |
错误(错误分类概率或MSE) |
meanMargin |
意思是分类保证金 |
保证金 |
分类保证金 |
oobError |
Out-of-bag错误 |
oobMeanMargin |
Out-of-bag意味着利润 |
oobMargin |
Out-of-bag利润率 |
oobQuantileError |
Out-of-bag分位数回归树的袋子的损失 |
quantileError |
使用袋回归树分位数的损失 |
预测的反应
oobPredict |
整体预测out-of-bag观察 |
oobQuantilePredict |
分位数预测out-of-bag观察从袋回归树 |
预测 |
使用的袋装决策树预测反应 |
quantilePredict |
预测响应使用袋分位数回归树 |
例子
火车的袋装分类树
创建一个合奏袋装分类树的费雪的虹膜数据集。然后,把第一次种植的树,情节out-of-bag分类错误,和预测out-of-bag观察标签。
加载fisheriris
数据集创建。X
作为一个数字矩阵,包含四个花瓣测量150虹膜。创建Y
作为一个单元阵列包含相应的特征向量的虹膜的物种。
负载fisheririsX =量;Y =物种;
设置随机数字生成器默认的
再现性。
rng (“默认”)
火车一袋装分类树的整个数据集。指定使用50
弱的学习者。每棵树的存储out-of-bag观测。默认情况下,TreeBagger
深树生长。
Mdl = TreeBagger (50, X, Y,…方法=“分类”,…OOBPrediction =“上”)
Mdl = TreeBagger合奏与50袋装决策树:训练X: [150 x4)培训Y: [150 x1)方法:分类NumPredictors: 4 NumPredictorsToSample: 2 MinLeafSize: 1 InBagFraction: 1 SampleWithReplacement: 1 ComputeOOBPrediction: 1 ComputeOOBPredictorImportance: 0距离:[]一会:“setosa”“杂色的”“virginica”属性,方法
Mdl
是一个TreeBagger
系综分类树。
的Mdl.Trees
属性是一个50-by-1细胞向量包含合奏训练分类树。每棵树是一个CompactClassificationTree
对象。查看图形显示的第一个训练有素的分类树。
视图(Mdl.Trees{1},模式=“图”)
情节out-of-bag分类错误的数量分类树。
情节(oobError (Mdl)包含(“种植树木数量”)ylabel (“Out-of-Bag分类错误”)
out-of-bag误差减少种植树木的数量增加。
预测out-of-bag观察标签。显示结果为一组随机的10的观察。
oobLabels = oobPredict (Mdl);印第安纳州= randsample(长度(oobLabels), 10);表(Y(印第安纳州),oobLabels(印第安纳州),…VariableNames = [“TrueLabel”“PredictedLabel”])
ans =10×2表是_____________ TrueLabel PredictedLabel * * * {‘setosa} {‘setosa} {‘virginica} {‘virginica} {‘setosa} {‘setosa} {‘virginica} {‘virginica} {‘setosa} {‘setosa} {‘virginica} {‘virginica} {‘setosa} {‘setosa}{“癣”}{“癣”}{“癣”}{‘virginica} {‘virginica} {' virginica '}
火车的袋装回归树
创建一个袋装回归树的合奏carsmall
数据集。然后,预测条件意味着反应和有条件的四分位数。
加载carsmall
数据集创建。X
包含汽车发动机作为一个数字矢量位移值。创建Y
作为一个数值向量包含相应的英里每加仑。
负载carsmallX =位移;Y = MPG;
设置随机数字生成器默认的
再现性。
rng (“默认”)
火车一袋装回归树使用整个数据集。指定100弱的学习者。
Mdl = TreeBagger (100 X, Y,…方法=“回归”)
Mdl = TreeBagger合奏与100袋装决策树:训练X: x1[94]培训Y: [94 x1)方法:回归NumPredictors: 1 NumPredictorsToSample: 1 MinLeafSize: 5 InBagFraction: 1 SampleWithReplacement: 1 ComputeOOBPrediction: 0 ComputeOOBPredictorImportance: 0距离:[]属性,方法
Mdl
是一个TreeBagger
回归树的合奏。
10等距的引擎位移之间的最小和最大样本内位移,预测条件均值反应(YMean
)和有条件的四分位数(YQuartiles
)。
predX = linspace(最小(X)最大(X) 10) ';predX YMean =预测(Mdl);YQuartiles = quantilePredict (Mdl predX,…分位数= [0.25,0.5,0.75]);
情节的观察,估计意思是回应,估计四分位数。
持有在情节(X, Y,“o”);情节(predX YMean)情节(predX YQuartiles)从ylabel (“燃料经济”)包含(“发动机排量”)传说(“数据”,“平均响应”,…“第一四分位数”,“中值”,…,“第三四分位数”)
无偏预测重要性估计袋装回归树
创建两个乐团袋装回归树,一个使用标准的购物车将预测的算法,和其他使用曲率检测分割预测。然后,比较预测重要性估计两个乐团。
加载carsmall
数据集和转换变量气缸
,制造行业
,Model_Year
分类变量。然后,显示类别的数量代表的分类变量。
负载carsmall气缸=分类(缸);及时通知=分类(cellstr (Mfg));Model_Year =分类(Model_Year);元素个数(类别(气缸))
ans = 3
元素个数(类别(有限公司))
ans = 28
元素个数(类别(Model_Year))
ans = 3
创建一个表,其中包含八个指标。
台=表(加速、气缸、位移,…马力,生产厂,Model_Year、重量、MPG);
设置随机数字生成器默认的
再现性。
rng (“默认”)
火车200袋装回归树的整体使用整个数据集。因为数据缺失值,指定使用代理分裂。商店的out-of-bag信息预测评估的重要性。
默认情况下,TreeBagger
使用标准的车,一个分裂算法预测。因为变量气缸
和Model_Year
每只包含三个类别,标准的车喜欢分裂连续预测这两个变量。
MdlCART = TreeBagger(200台,“英里”,…方法=“回归”代理=“上”,…OOBPredictorImportance =“上”);
TreeBagger
商店预测重要性估计房地产OOBPermutedPredictorDeltaError
。
impCART = MdlCART.OOBPermutedPredictorDeltaError;
200年训练随机森林回归树使用整个数据集。无偏树木生长,指定使用曲率检测分割预测。
MdlUnbiased = TreeBagger(200台,“英里”,…方法=“回归”代理=“上”,…PredictorSelection =“弯曲”,…OOBPredictorImportance =“上”);impUnbiased = MdlUnbiased.OOBPermutedPredictorDeltaError;
创建酒吧图表比较预测重要性估计impCART
和impUnbiased
两个乐团。
tiledlayout(1、2、填充=“紧凑”);nexttile栏(impCART)标题(“标准车”)ylabel (“预测重要性估计”)包含(“预测”甘氨胆酸)h =;h。XTickLabel = MdlCART.PredictorNames; h.XTickLabelRotation = 45; h.TickLabelInterpreter =“没有”;nexttile酒吧(impUnbiased);标题(“弯曲测试”)ylabel (“预测重要性估计”)包含(“预测”甘氨胆酸)h =;h。XTickLabel = MdlUnbiased.PredictorNames; h.XTickLabelRotation = 45; h.TickLabelInterpreter =“没有”;
车模型,连续的预测重量
是第二个最重要的因素。公正的模型,预测的重要性重量
较小的值和排名。
火车的袋装分类树高大的数组
火车一个观察的袋装分类树高的数组,并找到每棵树的误分类概率加权观测模型。下面的例子使用了数据集airlinesmall.csv
,一个大的数据集,其中包含一个表格文件航空公司飞行数据。
当你执行计算高数组,MATLAB®使用一个平行池(默认如果你有并行计算工具箱™)或当地的MATLAB会话。要运行示例使用当地的MATLAB会话并行计算工具箱后,改变全球执行环境使用mapreduce
函数。
mapreduce (0)
创建一个引用的位置数据存储文件夹包含变量的数据集。选择一个子集,和治疗“NA”
价值观缺失的数据,这样数据存储
函数替换他们南
值。创建高表tt
包含数据存储中的数据。
ds =数据存储(“airlinesmall.csv”);ds。年代electedVariableNames = [“月”“DayofMonth”“DayOfWeek”,…“DepTime”“ArrDelay”“距离”“DepDelay”];ds。TreatAsMissing =“NA”;tt =高(ds)
tt = Mx7高表月DayofMonth DayOfWeek DepTime ArrDelay距离DepDelay _____ _____ _____ _________ ________说21日3 642 296 308 12 10 26 1 1021 8 1 10 23 5 2055 21 480 1332 10 23 5 13 296年12 10 22 4 629 373 1 10 28 3 1446 59 308 63 10 8 4 928 447 2 10 10 6 859 11 954 1::::::::::::::
确定航班,迟到10分钟或更多通过定义一个逻辑变量,适用于晚期飞行。该变量包含的类标签Y
。预览这个变量包括前几行。
Y = tt。DepDelay > 10
Y = mx₁高逻辑数组1 0 1 1 0 1 0 0::
创建一个高的数组X
的预测数据。
X = tt {: 1: end-1}
X = Mx6双矩阵10 21 3 642 8 308年10 26 1 1021 8 296 1332年10 23 5 2055 21 480 23日5 13 296 10 22 4 629 4 373 10 28 3 1446 59 308 859 8 4 928 447 10 10 6 954年11::::::::::::
创建一个高的数组W
观察权重的任意分配权重的在课堂上观察1两倍。
W = Y + 1;
删除行X
,Y
,W
含有缺失数据。
R = rmmissing ([X Y W]);X = R (:, 1: end-2);Y = R (:, end-1);W = R(:,结束);
火车一个20袋装分类树使用整个数据集。指定权向量和统一的先验概率。再现性,设置使用随机数生成器的种子rng
和tallrng
。结果取决于工人的数量和执行环境高数组。有关详细信息,请参见控制你的代码运行。
rng (“默认”)tallrng (“默认”)tMdl = TreeBagger (20, X, Y,…重量= W =“统一”)
评估高表达式使用当地的MATLAB会话:通过1 1:在0.72秒完成评估在0.89秒完成评估高表达式使用本地MATLAB会话:-通过1对1:在1.2秒完成评估在1.3秒完成评估高表达式使用本地MATLAB会话:-通过1对1:在4.3秒完成评估在4.3秒完成
tMdl = CompactTreeBagger合奏20袋装决策树:方法:分类NumPredictors: 6类名:' 0 ' ' 1 '的属性,方法
tMdl
是一个CompactTreeBagger
合奏与20袋装决策树。对于高数据,TreeBagger
函数返回一个CompactTreeBagger
对象。
每棵树的计算错误分类概率模型。中包含的属性权重向量W
观察使用权重
名称-值参数。
恐怖分子=错误(tMdl, X, Y,权重= W)
评估高表达式使用当地的MATLAB会话:通过1 1:在4.8秒完成评估在4.8秒完成
恐怖分子=20×10.1420 0.1214 0.1115 0.1078 0.1037 0.1027 0.1005 0.0997 0.0981 0.0983⋮
找到的平均误分类概率决策树的合奏。
avg_terr =意味着(恐怖分子)
avg_terr = 0.1022
更多关于
额外的参数名称TreeBagger
函数
除了名称-值对的观点,TreeBagger
函数接受以下名称参数fitctree
和fitrtree
。
万博1manbetx支持fitctree 参数 |
万博1manbetx支持fitrtree 参数 |
---|---|
AlgorithmForCategorical |
MaxNumSplits |
一会 * |
MergeLeaves |
MaxNumCategories |
PredictorSelection |
MaxNumSplits |
修剪 |
MergeLeaves |
PruneCriterion |
PredictorSelection |
QuadraticErrorTolerance |
修剪 |
SplitCriterion |
PruneCriterion |
代理 |
SplitCriterion |
权重 |
代理 |
N /一个 |
权重 |
N /一个 |
*当你指定一会
名称-值参数作为逻辑向量,使用0和1的值。不要使用假
和真正的
值。例如,您可以指定一会
作为(1 0 1)
。
提示
对于一个
TreeBagger
模型Mdl
,树
属性包含一个细胞的向量Mdl.NumTrees
CompactClassificationTree
或CompactRegressionTree
对象。视图的图形化显示t
成长树通过输入:视图(Mdl.Trees {t})
对于回归问题,
TreeBagger
万博1manbetx支持的意思,分位数回归(即分位数回归森林[5])。预测是指反应或估计的均方误差数据,通过一个
TreeBagger
模型对象和数据预测
或错误
,分别。为out-of-bag观察执行类似的操作,使用oobPredict
或oobError
。估计响应分布分位数或给定的分位数错误数据,通过一个
TreeBagger
模型对象和数据quantilePredict
或quantileError
,分别。为out-of-bag观察执行类似的操作,使用oobQuantilePredict
或oobQuantileError
。
标准车往往选择分裂预测包含许多不同的值,如连续变量,在那些包含几个不同的值,如分类变量[4]。考虑指定曲率或交互测试如果以下是正确的:
相对较少的数据预测不同值比其它预测;例如,预测数据集是异构的。
你的目标是分析预测的重要性。
TreeBagger
商店预测估计的重要性OOBPermutedPredictorDeltaError
财产。
在指标选择的更多信息,见名称参数
PredictorSelection
分类树或名称参数PredictorSelection
回归树。
算法
如果你指定
成本
,之前
,权重
名称-值参数,输出模型对象存储指定的值成本
,之前
,W
属性,分别。的成本
属性存储指定的成本矩阵(C没有修改。的之前
和W
属性存储先验概率和观察权重,分别归一化后。模型训练,软件更新先验概率和观察权重将描述的惩罚成本矩阵。有关详细信息,请参见误分类代价矩阵、先验概率和观察权重。的
TreeBagger
由过采样函数生成在袋子样品类大误分类代价采样类小误分类代价。因此,out-of-bag样本较少的观察从类大误分类代价和更多的观察类小误分类代价。如果你训练一个分类合奏使用一个小的数据集和一个高度倾斜成本矩阵,然后out-of-bag观察每个类的数量可能非常低。因此,估计out-of-bag错误可能有一个大的方差和难以解释。同样的现象也发生类先验概率大。
选择功能
统计和机器学习工具箱™装袋和随机森林提供了三个对象:
ClassificationBaggedEnsemble
创建的对象fitcensemble
函数的分类RegressionBaggedEnsemble
创建的对象fitrensemble
函数回归TreeBagger
创建的对象TreeBagger
功能分类和回归
对于细节的差异TreeBagger
和袋装集合体(ClassificationBaggedEnsemble
和RegressionBaggedEnsemble
),看比较TreeBagger和袋装的集合体。
引用
[1]Breiman,狮子座。“随机森林。”机器学习45 (2001):5-32。https://doi.org/10.1023/A: 1010933404324。
[2]Breiman,狮子座,杰罗姆·弗里德曼,查尔斯·j·斯通和r . a . Olshen。分类和回归树。波卡拉顿,FL: CRC出版社,1984年。
[3]Loh,阴虚。“回归树与公正的变量选择和交互检测。”Statistica中央研究院12,没有。2 (2002):361 - 386。https://www.jstor.org/stable/24306967。
[4]Loh,阴虚,Yu-Shan施。“分裂选择分类树。”Statistica中央研究院7,不。4 (1997):815 - 840。https://www.jstor.org/stable/24306157。
[5]Meinshausen,尼科莱。“分位数回归森林。”机器学习研究杂志》上7,不。35 (2006):983 - 999。https://jmlr.org/papers/v7/meinshausen06a.html。
[6]膝,罗宾,jean - michel Poggi Christine Tuleau-Malot,娜塔莉Villa-Vialanei。对大数据“随机森林。”大数据的研究9 (2017):28-46。https://doi.org/10.1016/j.bdr.2017.07.003。
扩展功能
高大的数组
计算和数组的行比装入内存。
这个函数支持高阵列具有以下限万博1manbetx制。
的
TreeBagger
支持这些功能语法为万博1manbetx高X
,Y
,资源描述
:B = TreeBagger (NumTrees台,Y)
B = TreeBagger (NumTrees, X, Y)
B = TreeBagger (___, Name =值)
对于高阵列,
TreeBagger
支持分类而不是回归万博1manbetx函数。的
TreeBagger
函数支持这些名称参万博1manbetx数:NumPredictorsToSample
——默认值的平方根为分类变量的数量。MinLeafSize
——默认值是1
如果观测的数量小于50000。如果观测的数量是50000或更高版本,那么默认值是马克斯(1分钟(5楼(0.01 * NobsChunk)))
,在那里NobsChunk
在一块的数量的观察。ChunkSize
(只对高数组),默认值是50000年
。
此外,
TreeBagger
函数支持这些名称参万博1manbetx数fitctree
:AlgorithmForCategorical
CategoricalPredictors
成本
——成本矩阵的列C
不能包含正
或南
值。MaxNumCategories
MaxNumSplits
MergeLeaves
PredictorNames
PredictorSelection
之前
修剪
PruneCriterion
SplitCriterion
代理
权重
对于高数据,
TreeBagger
函数返回一个CompactTreeBagger
对象,该对象包含大部分和完全相同的属性TreeBagger
对象。主要的区别在于,高效紧凑的对象更多的内存。紧凑的对象不包含属性,包括数据,或相同大小的数组,包括数据。树的数量包含在返回
CompactTreeBagger
对象可以不同于树的数量指定为输入TreeBagger
函数。TreeBagger
基于因素决定树的数量回报,包括输入数据集的大小和数量的数据块可以种树。万博1manbetx支持
CompactTreeBagger
对象的功能是:结合
错误
保证金
meanMargin
预测
setDefaultYfit
的
错误
,保证金
,meanMargin
,预测
对象函数不支持名称参数万博1manbetx树
,TreeWeights
,或UseInstanceForTree
。的meanMargin
功能还不支持万博1manbetx权重
名称-值参数。的
TreeBagger
函数创建一个随机森林通过生成树分离的数据块。当比需要更多的数据创建的随机森林,次级样本数据的函数。一个类似的例子,请参阅大数据的随机森林[6]。根据数据存储,一些大块的数据可能包含观察从只有几类的所有类。在这种情况下,
TreeBagger
功能可能会产生劣质的结果相比,数据包含观测的情况下,每个块的大部分课程。在训练的
TreeBagger
算法的速度、准确性和内存使用量取决于许多因素。这些因素包含的值NumTrees
和名称的参数ChunkSize
,MinLeafSize
,MaxNumSplits
。对于一个n——- - - - - -p高大的数组
X
,TreeBagger
实现了采样在训练。这个抽样取决于这些变量:数量的树
NumTrees
块大小
ChunkSize
数量的观察n
数量的块r(约等于
n/ ChunkSize
)
因为的价值n对于一个给定的固定吗
X
,你的设置NumTrees
和ChunkSize
确定TreeBagger
样品X
。如果r>
NumTrees
,然后TreeBagger
样品ChunkSize * NumTrees
观察从X
,和火车每个块(每个块包含一个树ChunkSize
数量的观察)。这种情况是最常见的,当你使用高数组。如果r≤
NumTrees
,然后TreeBagger
火车大约NumTrees /r
树木在每一块,用块内的引导。如果n≤
ChunkSize
,然后TreeBagger
使用引导生成样本(每个尺寸n培养个人树)。
当你指定一个值
NumTrees
考虑以下:如果您运行您的代码Apache®火花™,你的数据集使用Hadoop分布式®分布式文件系统(HDFS™),开始通过指定一个值
NumTrees
至少两次分区的数量在HDFS数据集。该设置可以防止过度之间的数据通信Apache火花执行人,可以提高性能TreeBagger
算法。TreeBagger
安装树复制到客户端内存中产生的CompactTreeBagger
模型。因此,客户端创建一个可用的内存数量上限可以设置值NumTrees
。您可以调整的值MinLeafSize
和MaxNumSplits
更高效的速度和内存使用的一些预测的准确性。调整后,如果该值NumTrees
小于两倍的分区数量HDFS数据集,然后再考虑在HDFS中实现分区的数据有较大的分区。
在您指定一个值
NumTrees
,设置ChunkSize
以确保TreeBagger
使用大量的数据来种植树木。理想情况下,ChunkSize * NumTrees
应该近似n,在你的数据的行数。注意,培训工人个人的可用内存树也可以确定的上界ChunkSize
。你可以调整Apache引发记忆特性以避免出现内存不足的错误和支持您的工作流。万博1manbetx看到
parallel.cluster.Hadoop
(并行计算工具箱)为更多的信息。
有关更多信息,请参见高内存不足数据数组。
自动并行支持万博1manbetx
加速代码通过自动运行并行计算使用并行计算工具箱™。
并行运行,指定选项
名称-值参数在调用这个函数,设置UseParallel
选择结构领域真正的
使用statset
:
“选项”,statset (“UseParallel”,真的)
关于并行计算的更多信息,请参阅MATLAB函数自动并行支持运行万博1manbetx(并行计算工具箱)。
版本历史
介绍了R2009aR2022a:成本
属性存储指定的成本矩阵
从R2022a,成本
属性存储指定的成本矩阵。软件商店规范化先验概率(之前
)和观察权重(W
),不能反映成本矩阵描述的处罚。
注意,模型训练并没有改变,因此,类之间的决策边界没有改变。
培训,拟合函数更新指定的先验概率,将指定的描述的惩罚成本矩阵,然后规范化先验概率和观察的权重。这种行为没有改变。在以前的版本中,存储的软件默认成本矩阵成本
属性和存储先验概率和观察权重用于培训之前
和W
属性,分别。从R2022a,软件商店指定成本矩阵没有修改,并存储规范化先验概率和观察权重不反映成本的惩罚。更多细节,请参阅误分类代价矩阵、先验概率和观察权重。
的oobError
和oobMeanMargin
函数使用存储在观察权重W
财产。因此,如果你指定一个默认的成本矩阵训练分类模型时,该对象函数返回一个不同的值与以前版本相比。
如果你想要处理的软件成本矩阵,先验概率,和观察权重在以前的版本中,调整默认的成本的先验概率和观察权重矩阵,描述调整先验概率和观察权重误分类代价矩阵。然后,当你训练一个分类模型,指定调整先验概率和观察权重通过使用之前
和权重
名称-值参数,分别使用默认成本矩阵。
MATLAB命令
你点击一个链接对应MATLAB命令:
运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。万博1manbetx
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。