He estado dando vueltas para encontrar una explicación clara de "bucketization" en el aprendizaje automático sin suerte. Lo que entiendo hasta ahora es que la bucketización es similar a la cuantificación en el procesamiento de señales digitales donde un rango de valores continuos se reemplaza con un valor discreto. ¿Es esto correcto?
¿Cuáles son los pros y los contras (además del impacto obvio de perder información) de aplicar bucketization? ¿Existen reglas generales sobre cómo aplicar la cubeta? ¿Existen pautas / algoritmos para aplicar la cubeta antes de aplicar el aprendizaje automático?
Respuestas:
Este es un tema amplio, y encontrará una variedad de razones por las cuales los datos deberían estar o ya están agrupados. No todos están relacionados con la precisión predictiva.
En primer lugar, aquí hay un ejemplo en el que un modelador puede desear personalizar. Supongamos que estoy construyendo un modelo de calificación crediticia: quiero saber la propensión de las personas a incumplir un préstamo. En mis datos, tengo una columna que indica el estado de un informe de crédito. Es decir, ordené el informe de una agencia de calificación, y la agencia devolvió, digamos, su puntaje de propiedad, junto con una variable categórica que indica la confiabilidad de este puntaje. Este indicador puede ser mucho más fino de lo que necesito para mis propósitos. Por ejemplo, la "información insuficiente para un puntaje confiable" se puede dividir en muchas clases como "menos de 20 años de edad", "se mudó recientemente al país", "sin historial de crédito previo", etc. Muchas de estas clases puede estar escasamente poblado y, por lo tanto, bastante inútil en una regresión u otro modelo. Para lidiar con esto, es posible que desee agrupar clases similares para consolidar el poder estadístico en una clase "representativa". Por ejemplo, puede ser razonable para mí usar un indicador binario "buena información devuelta" versus "no se devuelve información". En mi experiencia, muchas aplicaciones de bucketization caen en este generalcolapso del tipo de categorías escasamente pobladas .
Algunos algoritmos usan bucketización internamente. Por ejemplo, los árboles encajan dentro de los algoritmos de refuerzo a menudo pasan la mayor parte de su tiempo en un paso de resumen, donde los datos continuos en cada nodo se discretizan y se calcula el valor medio de la respuesta en cada segmento. Esto reduce en gran medida la complejidad computacional de encontrar una división apropiada, sin mucho sacrificio en la precisión debido al aumento.
También puede simplemente recibir datos preestablecidos. Los datos discretos son más fáciles de comprimir y almacenar: una gran variedad de números de coma flotante es casi incompresible, pero cuando se diferencian en "alto", "medio" y "bajo", puede ahorrar mucho espacio en su base de datos. Sus datos también pueden ser de una fuente dirigida a una aplicación que no sea de modelado. Esto suele suceder mucho cuando recibo datos de organizaciones que realizan menos trabajo analítico. Sus datos se usan a menudo para informar y se resumen a un alto nivel para ayudar con la interpretación de los informes a los legos. Estos datos aún pueden ser útiles, pero a menudo se pierde algo de energía.
Lo que veo menos valor, aunque es posible que pueda corregirse, es la prebucketización de mediciones continuas para fines de modelado. Existen muchos métodos muy potentes para ajustar los efectos no lineales a los predictores continuos, y la separación elimina su capacidad de usarlos. Tiendo a ver esto como una mala práctica.
fuente
De acuerdo con el artículo " Bucketization " Nivel alto versus ciencia de datos de nivel bajo "
Por lo tanto, entiendo que codifique los datos de acuerdo con las características más predictivas y luego analice los subgrupos.
fuente