错误:在`.data`

时间:2019-10-09 16:09:21

标签: r r-caret

我正在尝试使用插入符号包(随机森林)训练模型,在运行“火车”代码后,我得到:错误:在RH_train中找不到列.data。然后,我尝试将因变量(Rendimiento)转换为一个因数,但得到:错误:至少一个类级别不是有效的R变量名;当生成类概率时,这将导致错误,因为变量名称将转换为X0,X0.5,X0.6,X0.65,X0.7,X0.75,X0.79,X0.8,X0.81 ,X0.82,X0.83,X0.85,X0.86,X0.87,X0.88,X0.9,X1。请使用可以用作有效R变量名称的因子水平(有关帮助,请参见?make.names)。

library(rpart)
library(rpart.plot)
library(RWekajars)
library(randomForest)
library(party)
library(caret)
library(e1071)
library(dplyr)


####Cargar base de datos####
setwd("C:/Users/Frankenstein/Downloads")
RH <- read_excel("RH.xlsx")
RH$`Año Ingreso`=NULL
RH$`Mes ingreso`=NULL
RH$`Status empleado para Gestión t`=NULL
RH$`Horario trabajo`=NULL
RH$Nacional=NULL
RH$Jefe=NULL
RH$`N Personal`=NULL

colnames(RH)
names(RH)[names(RH) == "Grado de distancia"] <- "Distancia"
names(RH)[names(RH) == "Clave para el estado civil"] <- "EstadoCivil"
names(RH)[names(RH) == "Clave de sexo"] <- "Sexo"




####Analizar la estructura del los datos#
str(RH)
Classes ‘tbl_df’, ‘tbl’ and 'data.frame':   325 obs. of  10 variables:
 $ Rendimiento: num  0.6 0.8 0.85 0.86 0.85 0.8 1 0.86 1 0.9 ...
 $ Edad       : num  36 37 21 26 25 28 32 32 29 36 ...
 $ Posición   : chr  "ANA" "ANA" "AUX" "AUX" ...
 $ Sexo       : num  1 1 0 1 1 1 1 1 1 1 ...
 $ Distancia  : num  5 3 1 1 3 2 2 4 5 4 ...
 $ Estrato    : num  2 5 3 3 3 3 5 2 5 6 ...
 $ EstadoCivil: num  1 2 1 1 1 1 2 1 1 2 ...
 $ Hijos      : num  1 1 0 0 0 0 0 1 0 0 ...
 $ Formación  : chr  "PREGRADO" "PREGRADO" "PREGRADO" "PREGRADO" ...
 $ Educación  : num  3 3 3 3 3 3 4 3 3 3 ...

hist(RH$Rendimiento)
summary(RH)

####Dividir datos en entrenamiento y testeo####
glimpse(RH_train)
glimpse(RH_test)
RH_train <- RH[1:243, ]
RH_test <- RH[244:325, ]

# Define the control
trControl <- trainControl(method = "cv",
                          number = 10,
                          search = "grid",
                          classProb=TRUE)

set.seed(1234)

RH_train$Rendimiento=factor(RH_train$Rendimiento)
RendimientoFactor=factor(RH_train$Rendimiento)

# Run the model
rf_default <- train(RH_train$Rendimiento ~ RH_train$Edad + RH_train$Sexo + RH_train$Distancia + RH_train$Estrato + RH_train$EstadoCivil + RH_train$Hijos + RH_train$Educación, 
                    data=RH_train, 
                    method = "rf",
                    metric = "Accuracy",
                    trControl = trControl)

0 个答案:

没有答案