• Adolfo Sánchez Burón

Random Forest. Detección de churn

Actualizado: 15 dic 2020

Se emplea Random Forest como algoritmo de Machine learning para predecir la clasificación de sujetos de dos muestras (train y test) como churn o no churn (abandono) en un caso de Telecomunicaciones.





Introducción al algoritmo de Random Forest


Random forest es uno de los denóminados en Machine Learning como métodos de ensamble (ensemble method), esto es, son técnicas que convinan múltiples algoritmos, permitiendo alcanzar una mayor precisión y estabilidad del modelo resultante. Los tres métodos más comunes son: Bagging, Boosting and Stacking. RF es del primero de ellos.


Por tanto, RF es un método de ensamble que permite construir una multitud de árboles decisión en la fase de entrenamiento, posibilitando corregir aspectos como el sobre ajuste (sesgo-varianza), y mejorando el resultado final. Permite tareas de clasificación, regresión y otras (como determinar la importancia relativa de las variables en un mdelo de aprendizaje).


RF trabaja de la siguiente manera: construye árboles de decisión individuales,los cuales crecen hasta su máxima extensión posible sin ue medie un proceso de poda. Para ello, se emplean con los datos de entrenamiento, pero incluyendo datos ligeramente distintos en cada árbol (bootstrapping). La predicción final, mediante un algoritmo de RF, es la media de las predicciones de todos los árboles que lo forman.


En RF es importante considerar toda una serie de hipeparámetros:


  • ntree: número de árboles a incluir en el modelo de RF.

  • mtry: número de variables predictoras como candidatas en cada ramifiación. Por defecto, apra problemas de casificación será la raiz cuadrada del número de variables, y para regresión número de variables dividido entre 3.

  • sampsize: el número de muestras sobre las cuales entrenar.

  • nodesize: mínimo número de muestras dentro de los nodos terminales. Para casos de clasificación, por defecto será 2, y para regresión será 5.

  • maxnodes: máximo número de nodos terminales. Por defecto, no se planifica un proceso de poda, dejando crecer los árboles hasta su límite máximo.


Se recomienda la lectura de:


Amat,J.(2017). Árboles de decisión, random forest, gradient boosting y C5.0


Orellana,J.(2018). Arboles de decision y Random Forest


Características del caso


El caso empleado en este análisis es el 'Telco Customer Churn', que puede descargarse el dataset original de Kaggle. Este dataset ha sido previamente trabajado en cuanto a:

  • análisis descriptivo

  • limpieza de anomalías, missing y outliers

  • peso predictivo de las variables mediante random forest

  • discretización de las variables continuas para facilitar la interpretación posterior


Por lo que finalmente se emplea en este caso un dataset prepardo para iniciar el análisis de RL, que puede descargarse de Github.


El objetivo del caso es predecir la probabilidad de que un determinado cliente puede abandonar (churn) la empresa. La explicación de esta conducta estará basada en toda una serie de variables predictoras que se pueden clasificar en cuatro grupos:


  • Churn: la variable TARGET, con puntuaciones de 0 (no abandonó la empresa) y 1 (sí abandonó la empresa)

  • Servicios contratados: phone, multiple lines, internet, online security, online backup, device protection, tech support, and streaming TV and movies.

  • Información sobre cuentas dle cliente: how long they’ve been a customer, contract, payment method, paperless billing, monthly charges, and total charges.

  • Variables demográficas: gender, age range, and if they have partners and dependents


Tras estudiar el peso predictivo de estas variables sobre la TARGET, finalmente se redujo el número de predictores a 6: Internet Service, Contract, Payment Method, tenure, Monthly Charges y Total Charges.


Proceso


1. Entorno

El primer punto tratará sobre la preparación del entorno, donde se mostrará la descarga de las librerías empleadas y la importación de datos.


2. Análisis descriptivo

Se mostrarán y explicarán las funciones empleadas en este paso, dividiéndolas en tres grupos: Análisis inicial, Tipología de datos y Análisis descriptivo (gráficos).


3. Modelización

Se preparará lo necesario para modelizar con el análisis de RL, como es:


a) Preparar funciones:

  • Matriz de confusión

  • Métricas

  • Umbrales

  • Curva ROC y AUC


b) Particiones del dataset en dos grupos: training (70%) y test (30%)


4. Modelización con random forest


Por motivos didácticos, se dividirá en seis pasos:

Paso 1. Primer modelo

Paso 2. Segundo modelo

Paso 3. Predict

Paso 4. Umbrales

Paso 5. Matriz de confusión

Paso 6. Métricas definitivas



Para ver el código en R y los resultados:

En HTML: RPubs

En pdf: GitHub

75 visualizaciones0 comentarios