Recibí un script R de alguien para ejecutar un modelo de bosque aleatorio. Lo modifiqué y lo ejecuté con algunos datos de empleados. Estamos tratando de predecir separaciones voluntarias.
Aquí hay información adicional: este es un modelo de clasificación donde 0 = empleado suspendido, 1 = empleado despedido, actualmente solo estamos viendo una docena de variables predictoras, los datos están "desequilibrados" en el sentido de que los registros terminados representan aproximadamente 7 % del conjunto de registros total.
Ejecuté el modelo con varias selecciones de mtry y ntree pero me decidí por lo siguiente. El OOB es de 6.8%, lo que creo que es bueno, pero la matriz de confusión parece contar una historia diferente para predecir términos, ya que la tasa de error es bastante alta en 92.79%. Estoy en lo cierto al suponer que no puedo confiar y usar este modelo porque ¿La alta tasa de error para predecir términos? ¿O hay algo que también puedo hacer para usar RF y obtener una tasa de error menor para predecir los términos?
FOREST_model <- randomForest(theFormula, data=trainset, mtry=3, ntree=500, importance=TRUE, do.trace=100)
ntree OOB 1 2
100: 6.97% 0.47% 92.79%
200: 6.87% 0.36% 92.79%
300: 6.82% 0.33% 92.55%
400: 6.80% 0.29% 92.79%
500: 6.80% 0.29% 92.79%
> print(FOREST_model)
Call:
randomForest(formula = theFormula, data = trainset, mtry = 3, ntree = 500, importance = TRUE, do.trace = 100)
Type of random forest: classification
Number of trees: 500
No. of variables tried at each split: 3
OOB estimate of error rate: 6.8%
Confusion matrix:
0 1 class.error
0 5476 16 0.002913328
1 386 30 0.927884615
> nrow(trainset)
[1] 5908