Nada es más molesto que una llamada telefónica sorpresa de un número desconocido. En nuestra era de mensajeros y comunicación, la correspondencia con un número de teléfono desconocido que parpadea siniestramente en la pantalla de un teléfono inteligente puede causar al menos un poco de emoción. Es doblemente molesto cuando llega una llamada no solo de repente (como son, estas llamadas), sino también en un momento incómodo para usted. Por ejemplo, cuando todavía no ha logrado despertarse, o viceversa, ya está en pleno apogeo en una cama tan atractiva después de un largo día. Algunas visitas de negocios los fines de semana, después de las nueve de la tarde o de la noche, generalmente más allá del bien y del mal.

Por cierto, sobre mí. Mi nombre es Natasha, trabajo en Skyeng como Data Scientist y participo en el desarrollo de varios productos de la compañía. ¿Por qué estoy hablando de llamadas repentinas? La comunicación de voz con clientes que solo desean comenzar o por alguna razón interrumpieron abruptamente su capacitación es parte del modelo de trabajo de la compañía. Pide ayuda para involucrar y devolver a las personas al proceso de aprender un idioma, o directamente para averiguar qué salió mal. Una de mis últimas tareas es analizar el trabajo de nuestro centro de llamadas. Los ayudé a elegir el mejor momento para ponerse en contacto con estudiantes de toda Rusia y el CIS: porque a nadie le gustan las llamadas en momentos aleatorios del día, y enfurecer a mis propios usuarios es lo último.
El estado de ánimo de las personas durante esas llamadas es extremadamente importante para nosotros, ya que afecta directamente la conversión. Déjenme contarles más acerca de cómo Skyeng llama a los estudiantes y qué modelo de pronóstico construí para que nuestros clientes se sientan cómodos y cómodos, y alcancemos una tasa de conversión del 60-70%.
Es físicamente imposible adivinar el momento conveniente para una persona en particular, a menos que sea un psíquico. Elogie el progreso, para identificar tales patrones surgió con estadísticas, cuyo modelo más o menos se ajustará a la gran mayoría de los usuarios.
En el análisis de nuestros registros de CRM, que registra la actividad del centro de llamadas, se confirmó la hipótesis de las llamadas comerciales fuera del horario laboral y la necesidad de seguir el sentido común. Entonces resultó que es mejor llamar a las personas de lunes a jueves, de 10 a 18 horas (¡de repente!). Es durante este período de tiempo que las personas tienen más probabilidades de hacer contacto y la llamada dura más de 15 segundos, es decir, se nos considera exitosos.
Para comenzar, decidimos determinar la influencia del factor humano en la conversión, es decir, observar el éxito de los operadores de centros de llamadas:

No tiene que ser un detective para ver los dos "anclajes" en este cuadro. Estas dos anomalías son operadores con algún tipo de eficiencia extremadamente baja. ¿Qué hacemos con los datos anómalos, cuya naturaleza radica, muy probablemente, en el factor humano? Creo que excluimos por completo dichos datos del modelo para lograr la pureza posterior y la precisión del resultado. Lo que realmente hice. Bueno, de hecho, estos dos operadores, o más bien sus resultados, están tan fuera de la imagen en el centro de llamadas que estoy absolutamente seguro de que el asunto no es el proceso de trabajo, sino los propios empleados. Quizás son recién llegados, lo que también nos da una razón para excluirlos.
Pero los datos de otros seis operadores con una conversión inferior a 0,5 permanecen en el modelo. Creo que no puede haber situaciones ideales, como las personas, por lo que estos seis equilibrarán nuestros cálculos adicionales con el resto de la muestra de cincuenta empleados.
Zonas horarias, regiones y días de la semana
Tenemos una situación difícil con las zonas horarias. Ahora estamos recopilando suficiente información para determinar de dónde es el estudiante y cuándo es mejor que llame. Pero esto estaba lejos de ser siempre. Fueron estas capas de información antigua, pero aún funcional, las que crearon una serie de inconvenientes tanto para nuestros usuarios como para los operadores de centros de llamadas. Para procesar estos datos antiguos, escribí un cálculo separado de la zona del usuario basado en otros datos indirectos (por número de teléfono, región e información sobre el uso de nuestra aplicación).
Si comienza a profundizar en las estadísticas de CRM, aún puede obtener una capa completa de información útil para crear un modelo efectivo. Para comenzar, construí un programa de conversión para los días de la semana para confirmar mi suposición inicial de que es mejor llamar de lunes a viernes, excepto los viernes. En realidad, mis suposiciones eran correctas:

Tal división en Moscú, San Petersburgo y otras ciudades se hizo precisamente por dudas en términos de determinar la zona horaria. Para el día cero hemos tomado el lunes, respectivamente, el sexto - domingo. El gráfico anterior muestra claramente cuánto se hunde la conversión por región los fines de semana, lo que confirma la hipótesis de un problema con las zonas horarias en las que se centraron los operadores de centros de atención telefónica.
Moscú y Peter están un poco mejor. Quizás porque los habitantes de estas ciudades están acostumbrados a un mayor ritmo de vida. Pero incluso con todo el estoicismo de los moscovitas y los residentes de la ciudad sobre el Neva, las cifras dicen que "no hay nada que llamar de viernes a domingo".
El límite inferior de nuestro objetivo de 0.6 se alcanza solo una vez, el lunes, lo cual es sorprendente, ya que generalmente se acepta que este día es el más difícil y las personas son reacias a resolver cualquier problema secundario los lunes, ya que se concentran en volver al ritmo de trabajo después fin de semana No, no, y de nuevo no, los números no mienten. Más adelante durante la semana vamos más o menos sin problemas, y la recesión comienza solo el jueves.
Aún más interesante es la imagen al descomponer llamadas por reloj:
Tenga en cuenta la fuerte cola a la izquierda para las regiones. Lo más probable es que estas llamadas se hicieron en un momento inaceptable debido a una zona horaria definida incorrectamenteAhora veamos la conversión de algunos días de la semana:

Aquí están los datos para nuestro día del campeón del lunes. Al comienzo del gráfico, las "regiones" se impulsan hacia adelante. Alrededor del mediodía, la situación se nivela. Por cierto, preste atención al movimiento simétrico de nuestro gráfico alrededor de las 15 y 16 horas; que la capital, que las regiones muestran exactamente el mismo movimiento en este momento.
Pero el martes, la situación comienza a cambiar:

Y el jueves, las regiones muestran su reticencia a responder llamadas:

¿Recuerdas que dije que las llamadas de fin de semana son malas? En general, la imagen estadística confirma mis palabras, pero hay un "pero". En resumen, compruébelo usted mismo:

¡A las 9-10 de la mañana, la conversión en las regiones simplemente se reinicia! Y ya a las 11 de la mañana, apenas se separa de la marca de 0.4, es decir, se hunde dos veces. No tengo idea de cómo funciona esto y por qué sucede, así que puedo compartir mis teorías en los comentarios, me encantaría leerlo.
Si resumimos todos los datos, podemos derivar las siguientes reglas para una llamada "exitosa":
- Lunes: de 13 a 17;
- Martes: de 12 a 18;
- Miércoles: de 11 a 12 y de 15 a 17;
- Jueves: de 10 a 17;
- Viernes: de 10 a 12;
- Sábado: de 16 a 18;
- Domingo: de 13 a 14 y de 18 a 19.
En realidad, todo encaja en el marco del sentido común. De lunes a jueves de lunes a viernes, es casi imposible llamar hasta las seis menos cinco de la tarde y el viernes por la tarde para resolver cualquier problema. Las estadísticas de los fines de semana "flotan" un poco, con énfasis en la tarde, bueno, además del pico anómalo mencionado anteriormente a las 10 a.m.del domingo se sale de la imagen. Y así todo es estable.
Lo que hice con todo esto y qué modelo construí
Antes de proceder a la construcción de un modelo para un centro de llamadas, fue necesario sacar varias conclusiones. Primero, todo depende del momento de la llamada. Pero aquí tenemos problemas.
Lo único que podemos rastrear es la región de registro del número de teléfono, y desde esta información comenzamos desde la construcción del centro de llamadas. Pero muy a menudo surgen situaciones en las que no podemos determinar exactamente de qué región el número indicado.
Es esto, y no una flojera ficticia de las regiones, lo que lleva al hecho de que los indicadores generales de conversión de usuarios fuera de la carretera de circunvalación de Moscú y la carretera de circunvalación disminuyen en relación con las capitales. ¿Qué podemos hacer en esta situación?
- Adhiérase a las zonas activas identificadas para llamadas a las regiones si no tenemos suficientes datos.
- Necesitamos buscar herramientas para determinar con mayor precisión la ubicación del usuario, a fin de no molestarlo con llamadas vacías.
El segundo punto es especialmente importante. Son tales discrepancias las que reducen la tasa de conversión general y aún enfurecen a los clientes.
Pero pasemos a construir el modelo. Aquí hay una lista general de síntomas que he identificado como relevantes:
- hora: la hora de la llamada (signo categórico del 0 al 23).
- día de la semana - día de la semana (signo categórico de 0 a 6).
- age - la edad del alumno.
- vida útil: el tiempo de vida del alumno (en clases) en el momento de la llamada.
- app_hour_ {k}: estacionalidad diaria del uso de la aplicación. Para cada hora, k se determina como la fracción de acciones en la aplicación a esa hora (k = 0, ..., 23) del número total de acciones en la aplicación.
- app_weekday_ {k}: estacionalidad semanal del uso de la aplicación. Para cada día de la semana, k se determina como la proporción de acciones en la aplicación en ese día de la semana (k = 0, ..., 6) del número total de acciones en la aplicación.
- class_hour_ {k}: estacionalidad diaria de las lecciones. Para cada hora, k se determina como la fracción de lecciones a esa hora (k = 0, ..., 23) del número total de lecciones.
- class_weekday_ {k}: estacionalidad semanal del uso de la aplicación. Para cada día de la semana, k se determina como el porcentaje de lecciones en ese día de la semana (k = 0, ..., 6) del número total de lecciones.
- is_ru - 1 si el país del estudiante es Rusia y 0 si no.
- last_payment_amount: el importe del último pago.
- days_last_lesson - el número de días desde la última lección (en ausencia de la última lección, reemplace con el número -100).
- days_last_payment: el número de días desde el último pago (en ausencia del último pago, reemplazamos con el número -100).
Inicialmente, había alrededor de un centenar de signos, pero los cálculos y las pruebas mostraron que no afectaron el resultado final, por lo que se excluyeron como poco informativos (por ejemplo, la intensidad de las lecciones, el género del estudiante, su nivel, etc.). Como modelo de clasificación binaria, se utilizó una biblioteca de aumento de gradiente en los árboles de decisión CatBoost.
Y aquí está la calidad de mi modelo (en la muestra de control):

Estos resultados se obtuvieron para el límite de separación de clase de 0.5, que es el valor predeterminado. Determinamos el límite óptimo de separación de clases basado en curvas ROC (característica de operación del receptor).
Para hacer esto, construimos la dependencia de características tales como integridad y especificidad dependiendo de varios valores del límite que separa las clases:

El valor óptimo del borde será donde obtenemos al mismo tiempo los valores más altos posibles de integridad y especificidad (es decir, en este caso, donde se cruzan los gráficos). Para el modelo resultante, el borde óptimo era 0.56717.
La calidad del modelo con el borde óptimo es la siguiente:

En nuestra situación, la precisión del modelo era más importante para nosotros que su integridad. Es la mayor precisión lo que nos permite reducir la cantidad de pronósticos falsos positivos, es decir, nos permite reducir la cantidad de situaciones en las que esperábamos una llamada exitosa, pero resultó ser infructuosa.
Si para resumir el mecanismo del modelo:
- para cada hora del día y día de la semana para cada estudiante, la probabilidad de marcar se calcula teniendo en cuenta sus características y su hora local;
- para un mayor almacenamiento, se selecciona una hora de 9 a 20 horas para cada día de la semana (la hora se selecciona de acuerdo con la zona horaria del estudiante);
- Antes de guardar, la hora se cambia a la hora de Moscú, ya que la marcación se realizará en la zona horaria de Moscú;
- Los resultados se guardan en la base de datos.
Entonces, ahora los operadores de centros de llamadas han pronosticado datos sobre la probabilidad de marcar para cada usuario y para cada hora y día de la semana. Si la llamada no es urgente, el operador puede elegir la ranura más óptima en la semana y, en casos extremos, si la llamada ya no se puede posponer, el momento más exitoso de la jornada laboral actual.
Por supuesto, después de la introducción de mi modelo, será necesario hacer una pausa y luego volver a hacer todo este trabajo, pero con nuevos datos. Puedo hacer algunos cálculos abstractos sin fin, calcular probabilidades y agregar nuevas variables al modelo, pero hasta que las estadísticas vivas confirmen mi punto, es demasiado pronto para cerrar esta pregunta.
Si le gustó, después de un tiempo volveré con los nuevos datos obtenidos después de la introducción de mi modelo de pronóstico.