在R中种植一棵树

时间:2014-07-17 15:35:22

标签: r warnings decision-tree na

我是R的新手,我正在努力发展决策树:

以下是我的一些数据集:

Malo   Edad   Sexo      nivel_estudios    Estado Civil
1       35    Femenino  Secundaria         Union Libre
0       48    Femenino  Bachillerato       Casado
0       45    Masculino Bachillerato       Casado
1       27    Femenino  Bachillerato       Union Libre

当我尝试执行这段代码时:

tree_model= tree(Malo~., trainingSet)

Malo是我的二进制(0/1)列(整数),它将对象分类为好或坏,而训练集是我的测试集的随机分区。

我继续收到此警告:

Warning message:
In tree(Malo ~ ., trainingSet) : NAs introduced by coercion

我不明白为什么我会这样做。非常感谢帮助。

3 个答案:

答案 0 :(得分:2)

公式属于

的统计数据

当生成回归树时,左侧(响应)应该是数字向量,或者当生成分类树时,左侧(响应)应该是因子。右侧应为系列的数字或因子变量,用+分隔;应该没有互动条款。两者。 - 允许:回归树可以有偏移项。

关于NA的简单例子

as.numeric(c('1','b','2')) 
[1]  1 NA  2 
Warning message: 
NAs introduced by coercion 

希望您了解此问题,您已在公式as numeric中添加了string向量以及tree(Malo~., trainingSet)(Sexo,nivel_estudios,Estado Civil)向量的其余部分。

答案 1 :(得分:1)

您可能希望将as.factor()函数应用于数据集的最后三列。例如:

trainingSet$Sexo = as.factor(trainingSet$Sexo)

trainingSet$nivel_estudios = as.factor(trainingSet$nivel_estudios)

您可能需要将“Estado Civil”的列名更改为“EstadoCivil”或“Estado.Civil”,以便我们也可以在其上应用as.factor()函数。

这样,我们就可以满足标准“右手边应该是一系列由+分隔的数字或因子变量”

答案 2 :(得分:1)

响应变量(Malo)需要是“Factor”所以使用:

trainingSet$Malo <- as.factor(trainingSet$Malo)