我是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
我不明白为什么我会这样做。非常感谢帮助。
答案 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)