首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >识别政党ctree模型中所有不同的变量。

识别政党ctree模型中所有不同的变量。
EN

Stack Overflow用户
提问于 2015-02-11 14:29:23
回答 2查看 983关注 0票数 2

我在R方包中使用ctree函数。为了减少用于进一步分析的data.frame维数,我希望对树中使用的所有预测器进行验证。例如:

代码语言:javascript
复制
library(ctree)
data(ozone)
myModel<-ctree(Ozone~., data=na.omit(airquality))
plot(myModel)

我想要一个接收myModel和返回温度、风和臭氧的函数

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-02-11 15:08:50

您可以尝试使用以下方法:

代码语言:javascript
复制
getUsefulPredictors<-function(x){
  flatTree<-unlist(x@tree)
  pred<-unique(flatTree[grepl("*variableName",names(flatTree))])
  return(pred)
}

它将树夷为平地,并寻找以variableName命名的元素。

在它返回的模型上运行:

代码语言:javascript
复制
getUsefulPredictors(myModel)
#[1] "Temp" "Wind"
票数 1
EN

Stack Overflow用户

发布于 2015-04-01 06:48:53

为了完整起见: NicE的答案与party包中的ctree()实现有关。如果有人想要基于partykit包中的新的(并推荐的)实现做同样的事情,那么就需要一个不同的函数,因为内部表示完全改变了。

代码语言:javascript
复制
getUsefulPredictors <- function(x) {
  varid <- nodeapply(x, ids = nodeids(x),
    FUN = function(n) split_node(n)$varid)
  varid <- unique(unlist(varid))
  names(data_party(x))[varid]
}

这首先从树的每个节点中的每个拆分中获得变量ID varid。然后获得模型帧的名称,并返回与唯一变量ID有关的名称。在你的例子中:

代码语言:javascript
复制
library("partykit")
myModel <- ctree(Ozone ~ ., data = na.omit(airquality))
getUsefulPredictors(myModel)    
## [1] "Temp" "Wind"
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28456814

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档