识别党 ctree nodel 中的所有不同变量
Identify all distinct variables within party ctree nodel
我在 party R 包中使用 ctree 函数。我想确定树中使用的所有预测变量,以减少用于进一步分析的 data.frame 维度。例如:
library(ctree)
data(ozone)
myModel<-ctree(Ozone~., data=na.omit(airquality))
plot(myModel)
我想要一个接收 myModel 并返回温度、风和臭氧的函数
你可以试试这个:
getUsefulPredictors<-function(x){
flatTree<-unlist(x@tree)
pred<-unique(flatTree[grepl("*variableName",names(flatTree))])
return(pred)
}
它将树展平并寻找名称中包含 variableName
的元素
运行 在你的模型上 returns:
getUsefulPredictors(myModel)
#[1] "Temp" "Wind"
只是为了完整性:NicE 的回答与 party
包中的 ctree()
实现有关。如果有人想基于 partykit
包中新的(推荐的)实现做同样的事情,那么就需要一个不同的函数,因为内部表示完全改变了。
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 有关的名称。在您的示例中:
library("partykit")
myModel <- ctree(Ozone ~ ., data = na.omit(airquality))
getUsefulPredictors(myModel)
## [1] "Temp" "Wind"
我在 party R 包中使用 ctree 函数。我想确定树中使用的所有预测变量,以减少用于进一步分析的 data.frame 维度。例如:
library(ctree)
data(ozone)
myModel<-ctree(Ozone~., data=na.omit(airquality))
plot(myModel)
我想要一个接收 myModel 并返回温度、风和臭氧的函数
你可以试试这个:
getUsefulPredictors<-function(x){
flatTree<-unlist(x@tree)
pred<-unique(flatTree[grepl("*variableName",names(flatTree))])
return(pred)
}
它将树展平并寻找名称中包含 variableName
的元素
运行 在你的模型上 returns:
getUsefulPredictors(myModel)
#[1] "Temp" "Wind"
只是为了完整性:NicE 的回答与 party
包中的 ctree()
实现有关。如果有人想基于 partykit
包中新的(推荐的)实现做同样的事情,那么就需要一个不同的函数,因为内部表示完全改变了。
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 有关的名称。在您的示例中:
library("partykit")
myModel <- ctree(Ozone ~ ., data = na.omit(airquality))
getUsefulPredictors(myModel)
## [1] "Temp" "Wind"