En este blog se exploran las posibilidades de analizar datos y crear modelos basados en la Teoría de la Información usando Powerhouse

lunes, 24 de diciembre de 2007

¿Cómo medir el rendimiento de un modelo? (Parte I)

Una vez que se construye un modelo de predicción se debe medir su rendimiento tanto sobre los datos con los que fue construido como sobre datos nunca vistos. Un buen modelo debería tener rendimientos similares con ambos datos. Si la diferencia es muy grande y a favor de los datos de entrenamiento, es probable que el modelo haya copiado parte del ruido. Para conocer más acerca de estos temas se puede consultar los artículos “¿Qué es el ruido” y “Datos de prueba contaminados”.

En este artículo trataré sobre cómo medir el rendimiento de un modelo de score, en particular para variables dependientes de dos estados, o categorías, por ejemplo, un modelo de score para estimar la probabilidad de fuga de clientes (attrition).

En un modelo de attrition que realicé el año pasado los resultados sobre los datos de prueba se resumen con la siguiente tabla:





Esta tabla, llamada matriz de confusión, es una de las herramientas que se pueden usar para medir el rendimiento de un modelo que predice dos posibles resultados. En este caso los estados en que se encuentran los clientes son:

1. Activos, son aquellos que siguen operando con la empresa
2. No Activos, son los que dejaron de operar con la empresa

Los datos que se usaron para probar el modelo contenían 36.292 clientes en total, de los cuales había 33.417 clientes Activos y 2.875 clientes No Activos, tal como se puede ver en la matriz de confusión. O sea, en esta tabla, las filas representan la variable dependiente o como figura a la izquierda, la Categoría Actual.

La distribución de los estados de la variable dependiente es:

Porcentaje de Activos = 33.417 / 36.292 = 92,08%
Porcentaje de No Activos = 2.875 / 36.292 = 7,92%

Una vez que se aplicó el modelo sobre estos datos, se obtuvieron las predicciones correspondientes. Se predijeron 33.650 clientes como Activos y 2.642 como No Activos.

Con esta tabla podríamos calcular cuántos aciertos tuvo el modelo. Para esto sólo hay que sumar los casos en los que el modelo acertó. O sea, se predijo No Activo y el cliente es No Activo, y se predijo Activo y el cliente es Activo.



O sea el modelo acertó

Aciertos: 991 + 31.766 = 32.757 veces

El porcentaje de aciertos se calcula como la cantidad de aciertos dividido la cantidad total de casos

Porcentaje de aciertos = 32.757 / 36.292 = 90,26%

La pregunta es, ¿es útil esta medición? Antes de contestar esta pregunta vamos a calcular cuánto sería el porcentaje de aciertos de un modelo que sólo responda al azar pero respetando la distribución de la variable dependiente. O sea, un modelo que responda Activo el 92,08% de las veces y No Activo el 7,92% restante de las veces.

Haciendo un poco de cálculos encontramos que este modelo tendría un porcentaje de aciertos de

Aciertos = 7,92% * 2.875 + 92,08% * 33.417 = 30.998

% Aciertos = 30.998 / 36.292 = 85.41%

En principio parece que el primer modelo (el que tiene un acierto de 90.26%) no es mucho mejor que un modelo al azar. Es más, hay casos en que el porcentaje de aciertos de un modelo al azar supera al de un modelo hecho con alguna herramienta de Data Mining. Pero entonces ¿de qué sirve trabajar tanto en un modelo si hacer predicciones al azar podría tener un mayor porcentaje de aciertos?

Una de las diferencias está en las predicciones de la clase o categoría menos representada. O sea, en nuestro ejemplo, en las predicciones de los clientes No Activos. Si comparamos los aciertos de ambos modelos, veremos una gran diferencia:

%Aciertos = Aciertos de No Activos / Total de No Activos predichos

%Aciertos modelo DM = 991 / 2.642 = 37.41%

En el caso de predicciones al azar, se predijeron 7,92% del total de casos, o sea 2.875 = 7,92% * 36.292

%Aciertos modelo al azar = 227 / 2.875 = 7.92%

Ahora se puede apreciar el valor de un modelo realizado con técnicas de Data Mining, ya que es capaz de predecir mucho mejor los clientes No Activos.

En el siguiente artículo seguiré con este tema.

Durante este año que viene me gustaría recibir algunos comentarios acerca de los artículos o los temas tratados. Al no tener feedback no tengo claro si los temas son interesantes o de la profundidad esperada.

Les deseo a todos los lectores del blog que tengan unas Felices Fiestas y un excelente 2008.

Hasta pronto,

Marcelo

7 comentarios:

Andrés Parra dijo...

Marcelo:

Lamento que tengas tan pocos comentarios, y entiendo lo frustrante que es cuando encima algunos son spam.

El motivo del poco feedback creo que puede ser lo acotado del público que te puede leer: por un lado, debe conocer algo de data mining y a primera vista hasta pareciera necesario que uno tenga conocimientos estadísticos para entender algunos conceptos; por otro, me parece natural que cualquiera que llegue a este blog sin conocimiento tuyo previo, tema que tus opiniones estén sesgadas para favorecer el uso de tu herramienta. Aparte, imagino a gente ocupada con poco tiempo para registrarse en el sistema de comentarios y ponerse a escribir.

Yo soy alumno de la maestría en Data Mining de la UBA, y me parece que en tus artículos (que leí "de cabo a rabo"), por más que la respuesta siempre sea "Powerhouse", las preguntas y los temas planteados son muy valiosos y generales. Por eso te aliento a que sigas escribiendo y comparando Powerhouse con otras herramientas y enfoques. Al menos un lector fiel vas a tener. ;)

Por mi parte, el tema me apasiona, y como me gusta escribir y tengo algo de tiempo, tengo como proyecto para el 2009 empezar mi propio blog. Apenas esté en marcha te spameo con el link. :)

Saludos,
Andrés.

Marcelo R. Ferreyra dijo...

Andrés,

Muchas gracias por tus valiosos comentarios.

Es cierto que el blog nació como una manera de hacer conocer las bases en las cuales se funda Powerhouse y quizás tengas razón en que de a poco debería ir cubriendo otros temas más allá del propio programa. Lo tendré en cuenta.

También entiendo que es un blog muy específico, pero dada la cantidad de visitas mensuales que recibo de muchos países de habla hispana (unas 400), siempre me extrañó la falta de feedback. De todas maneras, ya sabiendo que al menos hay un lector interesado con el que puedo comunicarme, trataré de escribir un poco más seguido J.

Saludos,

Marcelo

Andrés Parra dijo...

Marcelo:

Espero que retomes pronto el blog. Por mi parte, cumpliendo con lo que te había escrito anteriormente, empecé mi propio blog, el que te invito a visitar: http://parramining.blogspot.comSaludos,
Andrés.

Marcelo R. Ferreyra dijo...

Andrés, gracias por tu comentario y felicitaciones por tu blog.

Saludos,

Marcelo

Alejandro Saavedra dijo...

El post me parece excelente y ofrece una clara explicación del tema. No abundan posts en español que utilicen ejemplos reales.

Gracias!

Anónimo dijo...

Por que no:)

Marcelo R. Ferreyra dijo...

Muchas gracias a los comentarios recientes. Les pido disculpas por contestar y publicar con tanto retraso.

Saludos,

Marcelo