Vuelvo hoy con el uso de rpart para la creación de árboles de decisión con R. Pero hoy, además de realizar un modelo de árbol con R, quiero presentaros una función que nos permite guardar las reglas generadas con nuestro modelo en un fichero de texto para su posterior utilización con SAS. Retomamos un ejemplo visto con anterioridad en esta bitácora con ligeras modificaciones:
# Inventamos un objeto para realizar el modelo # En una cartera de clientes nuestro modelo tiene que identificar # cuáles contratan un PVI clientes = 20000 saldo_vista = runif(clientes, 0, 1) * 10000 saldo_ppi = (runif(clientes, 0.1, 0.2) * rpois(clientes, 1)) * 100000 saldo_fondos = (runif(clientes, 0.1, 0.9) * (rpois(clientes, 1) - 1 > 0)) * 100000 edad = rpois(clientes, 60) datos_ini <- data.frame(cbind(saldo_vista, saldo_ppi, saldo_fondos, edad)) datos_ini$saldo_ppi = (edad <= 68) * datos_ini$saldo_ppi # Creamos la variable objetivo a partir de un potencial datos_ini$potencial = runif(clientes, 0, 1) + (log(edad) / (log(68)) / 100) + runif(1, 0, 0.001) * (saldo_vista > 5000) + runif(1, 0, 0.001) * (saldo_fondos > 10000) + runif(1, 0, 0.007) * (saldo_ppi > 10000) - runif(1, 0, 0.2) datos_ini$pvi = as.factor((datos_ini$potencial >= quantile(datos_ini$potencial, 0.90)) * 1) # Empleamos rpart para la realización del modelo library(rpart) arbol = rpart(pvi ~ edad + saldo_ppi + saldo_fondos, data = datos_ini, method = "class", control = rpart.control(minsplit = 30, cp = 0.0008)) Tenemos un objeto rpart llamado arbol. En este punto, necesitamos disponer de las reglas generadas por el modelo para SAS, donde el módulo específico para poder realizar determinados modelos tiene un precio muy alto. Buscando en Google encontraremos este link. En él tenemos una genial función de R list.rules.rpart que nos permite identificar las reglas que ha generado el modelo. Modificamos ligeramente esta función para que nos sirva para nuestros propósitos:
...