predictorImportance
预测因子对分类树重要性的估计
语法
小鬼= predictorImportance(树)
输出参数
|
中的预测符(列)的数量与元素数量相同的行向量 |
例子
预测重要值
载入费雪的虹膜数据集。
负载fisheriris
种植一个分类树。
Mdl = fitctree(量、种类);
计算所有预测变量的预测因子重要性估计值。
小鬼= predictorImportance (Mdl)
小鬼=1×40 0 0.0907 0.0682
的前两个元素小鬼
为零。因此,前两个预测器不进入Mdl
鸢尾分类的计算。
如果使用代理分割,预测器重要性的估计不依赖于预测器的顺序,但如果不使用代理分割,则依赖于顺序。
排列上一个示例中的数据列的顺序,生长另一个分类树,然后计算预测器重要性估计值。
measPerm = meas(:,[4 1 3 2]);MdlPerm = fitctree (measPerm、物种);impPerm = predictorImportance (MdlPerm)
impPerm =1×40.1515 0 0.0074 0
预测者重要性的估计不是一个排列小鬼
.
代理分割和预测重要性
载入费雪的虹膜数据集。
负载fisheriris
种植一个分类树。指定代理拆分的用法。
Mdl = fitctree(量、种类、“代孕”,“上”);
计算所有预测变量的预测因子重要性估计值。
小鬼= predictorImportance (Mdl)
小鬼=1×40.0791 0.0374 0.1530 0.1529
所有的预测因素都有一定的重要性。前两个预测因素不如后两个重要。
打乱前一个示例中的数据列的顺序,生长另一个指定代理分割的使用情况的分类树,然后计算预测器重要性估计。
measPerm = meas(:,[4 1 3 2]);MdlPerm = fitctree (measPerm物种,“代孕”,“上”);impPerm = predictorImportance (MdlPerm)
impPerm =1×40.1529 0.0791 0.1530 0.0374
预测器重要性的估计是排列的小鬼
.
无偏预测器重要性估计
加载census1994
数据集。考虑到一个人的年龄、工人阶层、教育水平、军事地位、种族、性别、资本收益和损失以及每周工作时间,可以预测其工资类别的模型。
负载census1994X = adultdata (: {“年龄”,“workClass”,“education_num”,“marital_status”,“种族”,...“性”,“capital_gain”,“capital_loss”,“hours_per_week”,“工资”});
显示类别变量中表示的类别数总结
.
总结(X)
变量:年龄:32561 x1双重价值:17分钟37 Max 90 workClass中位数:32561 x1分类值:Federal-gov 960年地方政府2093年从未22696私人Self-emp-inc 1116 Self-emp-not-inc 2541 State-gov 1298 1836年无薪14 NumMissing education_num: 32561 x1双重价值:1分钟10马克斯16 marital_status中位数:32561 x1分类值:4443 Married-AF-spouse 23 Married-civ-spouse 14976年离婚Married-spouse-absent 418未婚10683分离1025 993年丧偶的种族:32561x1 categorical Values: american -印第安-爱斯基莫人311亚裔- pac - islander 1039黑人3124其他271白人27816性别:32561x1 categorical Values: Female 10771 Male 21790 capital_gain: 32561x1 double value: Min 0 Median 0 Max 99999 capital_loss: 32561x1 double value: Min 0 Median 0 Max 4356 hours_per_week: 32561x1 double value: Min 1 Median 40 Max 99工资:32561x1 categorical Values: <=50K 24720 >50K 7841
因为与连续变量中的级别相比,类别变量中表示的类别较少,标准CART预测器拆分算法更倾向于拆分连续预测器而不是类别变量。
使用整个数据集训练分类树。要生长无偏树,请指定用于分裂预测器的曲率测试的用法。由于数据中缺少观察值,请指定代理分割的用法。
Mdl = fitctree (X,“工资”,“PredictorSelection”,“弯曲”,...“代孕”,“上”);
通过将每个预测器上的分裂导致的风险变化相加,并将总和除以分支节点的数量,估计预测器重要性值。用条形图比较估算值。
小鬼= predictorImportance (Mdl);图;酒吧(imp);标题(的预测估计的重要性);ylabel (“估计”);包含(“预测”);甘氨胆酸h =;h.XTickLabel = Mdl.PredictorNames;h.XTickLabelRotation = 45;h.TickLabelInterpreter =“没有”;
在这种情况下,capital_gain
是最重要的预测因素,其次是education_num
.
更多关于
预测的重要性
predictorImportance
计算树中预测器的重要性度量,方法是将每个预测器上的分裂导致的节点风险变化相加,然后将总和除以分支节点的总数。节点风险的变化是父节点的风险与两个子节点的总风险之间的差值。例如,如果一棵树将父节点(例如,节点1)拆分为两个子节点(例如,节点2和3),那么predictorImportance
将分割预测器的重要性增加
(R1- - - - - -R2- - - - - -R3.)/N分支,
在哪里R我节点是否有风险我,N分支分支节点的总数。一个节点的风险定义为节点误差或节点杂质由节点概率加权:
R我=P我E我,
在哪里P我节点的节点概率我,E我是节点的节点误差(对于通过最小化两个准则生长的树)还是节点杂质(对于通过最小化杂质准则生长的树,如基尼指数或偏差)我.
预测器重要性的估计取决于是否使用代理分割进行训练。
如果你使用代理分割,
predictorImportance
对每个分支节点上的所有拆分(包括代理拆分)的节点风险更改进行合计。如果不使用代理拆分,则该函数取每个分支节点上找到的最佳拆分之和。如果使用代理分割,预测器重要性的估计不依赖于预测器的顺序,但如果不使用代理分割,则依赖于顺序。
如果你使用代理分割,
predictorImportance
在通过修剪(或合并叶子)减少树之前计算估计值。如果不使用代理分割,predictorImportance
在通过修剪减少树后计算估算值。因此,修剪会影响没有代理劈裂生长的树的预测因子的重要性,而不会影响有代理劈裂生长的树的预测因子的重要性。
杂质和节点错误
决策树根据两者中的任何一个来划分节点杂质或节点的错误.
不洁净指的是几种情况之一,取决于你的选择SplitCriterion
名称-值对论点:
基尼多样性指数(
gdi
)—节点的基尼指数为这些类的和在哪里我在节点处,和p(我)是类与类的观察分数我到达节点。只有一个类(A纯节点)具有基尼指数
0
;否则基尼指数为正。基尼指数是对节点杂质的测量。异常(
“异常”
) - - - - - -p(我)定义与Gini指数相同,节点的偏差为纯节点有偏差
0
;否则,偏差为正。两个规则(
“两个”
) - Twoing不是一个节点的纯粹度量,而是决定如何分割一个节点的不同度量。让l(我)表示类成员的百分比我在拆分后的左子节点中,和R(我)表示类成员的百分比我在拆分后的右子节点中。选择最大化的分割准则在哪里P(l),P(R)是分别向左和向右分裂的观测结果的分量。如果表达式很大,拆分会使每个子节点更纯。类似地,如果表达式很小,则拆分使每个子节点彼此相似,因此也与父节点相似。拆分并没有增加节点纯度。
节点错误——节点错误是一个节点上错误分类的类的百分比。如果j一个节点上训练样本数量最大的类,节点误差是多少
1 -p(j).
扩展功能
GPU数组
通过使用并行计算工具箱™在图形处理单元(GPU)上运行来加速代码。
该功能完全支持GPU阵列。有关更多信息,请参见在图形处理器上运行MATLAB函数(并行计算工具箱).
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。
您也可以从以下列表中选择网站:
如何获得最佳的网站性能
选择中国网站(中文或英文)以获得最佳的网站表现。其他MathWorks国家网站没有针对从您的位置访问进行优化。