r闪亮的交互式决策树预测

时间:2017-03-22 07:48:42

标签: r tree shiny decision-tree

我目前正试图弄清楚如何制作一个Shiny应用程序,它接受用户输入并使用它们根据决策树创建预测。我的问题很简单,我认为可能归结为理解。

首先,我创建一个简单的树(使用树库):

tr<-prune.tree(tree(Y~., dataset,split="gini"),best=4)

请注意,我有20个变量。

如果我绘制这个树,我看到这些变量中只有5个实际用于创建树。当然,在我的Shiny应用程序中,我希望用户必须输入尽可能少的信息。但是,只有当用户输入绝对所有内容(所有20个变量,即使只使用了5个变量)时,预测才有效。

这是我多次尝试解决这个问题:

首先我尝试创建一个只包含相关信息的数据框:

predict(tr,newdata=data.frame(PREVIOUS=1.6,CONS_PRICE_IDX=96,EMP_VAR_RATE=-3.1,CAMPAIGN=1.4,NR_EMPLOYED=5000),"class")

这会返回错误&#34; eval中的错误(expr,envir,enclos):Object&#39; AGE&#39;找不到&#34; (年龄是另一个变量)。 (如果我使用&#39; list&#39;而不是&#39; data.frame&#39;),我会收到同样的错误。

然后我尝试创建以下数据框来计算所有变量,但仍然将未包含在树中的变量视为不相关:

predict(tr,newdata=data.frame(AGE=NULL,MONTH=NULL,DAY_OF_WEEK=NULL,PDAYS=NULL,POUTCOME=NULL,JOB=NULL,EURIBOR3M=NULL,CONS_CONF_IDX=NULL,MARITAL=NULL,EDUCATION=NULL,DEFAULTCREDIT=NULL,HOUSING=NULL,LOAN=NULL,CONTACT=NULL,PREVIOUS=1.6,CONS_PRICE_IDX=96,EMP_VAR_RATE=-3.1,CAMPAIGN=1.4,NR_EMPLOYED=5000),"class")

这会返回错误&#34; data.frame中的错误(AGE = NULL,MONTH = NULL,DAY_OF_WEEK = NULL,PDAYS = NULL,:   参数意味着不同的行数:0,1和#34;

如果我在这里使用列表,那么我会收到错误&#34; model.frame.default中的错误(条款,newdata,na.action = na.pass,xlev = object $ xlevels):   变量&#39; AGE&#39;&#34;

的无效类型(NULL)

基本上,我不明白为什么R似乎需要数据来确定实际上不包含在决策树中的数据。如果我填写每个值,预测将起作用,但对于用户来说这将是非常繁琐的。有没有办法解决这个问题?

提前致谢。

编辑:

我的树是用这个公式创建的:

tr<-prune.tree(tree(Y~., dataset,split="gini"),best=4)

看起来像这样:

enter image description here

检查实际使用的变量:

summary(tr)

Variables actually used in tree construction:
"PREVIOUS"       "CAMPAIGN"       "EMP_VAR_RATE"   "CONS_PRICE_IDX" "NR_EMPLOYED"

然后,创建以下树:

tr2<-prune.tree(tree(Y~PREVIOUS+CAMPAIGN+EMP_VAR_RATE+NR_EMPLOYED+CONS_PRICE_IDX, dataset,split="gini"),best=4)

收率:

enter image description here

正如你所看到的......这棵树完全不同,基本没用。

0 个答案:

没有答案