What predictor variables are used for a given pruning level in a classregtree?
1 次查看(过去 30 天)
显示 更早的评论
I'm working with classification and regression trees - I can define them, prune them, and even view the pruned tree with the predictor variable names displayed using the view() function. However, for an optimally pruned tree, I want to know which of the 6 predictor variables are actually being used. I can see this in the view(Tree) display, but I need some sort of index to be returned in my code, so I don't have to manually open a tree, assess the variables, and store which ones ended up being significant every time. Is there a way to do this?
To reiterate - for a classregtree and a given pruning level, how can I extract the predictor variables (either a name or index) that are being used? My optimally pruned trees tend to disregard at least one of my 6 predictor variables, and I want to know which are actually used without manually viewing the tree.
I'm using Matlab 7.12.0.635 win64 Thank you very much!
0 个评论
采纳的回答
Ilya
2013-10-28
Prune the tree to the desired level using the prune method. Then use the cutvar method to see what variables are used for splits in each node. For example:
load ionosphere
t = classregtree(X,Y);
t = prune(t,'level',3);
varsUsedInTree = ismember(names(t),cutvar(t)')
Typing methods(t) or looking at the classregtree doc would give you a full list of methods.
3 个评论
cev
2013-11-12
when I run your code I get this message in Matlab 7.10.0(R2010a)
??? Undefined function or method 'names' for input arguments of type 'classregtree'.
Error in ==> Untitled2 at 4 varsUsedInTree = ismember(names(t),cutvar(t)')
Ilya
2013-11-12
Replace
ismember(names(t),cutvar(t)')
with
ismember(t.names,cutvar(t))
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Gaussian Process Regression 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!