Eu tenho procurado uma explicação clara de "bucketização" no aprendizado de máquina sem sorte. O que eu entendo até agora é que a bucketização é semelhante à quantização no processamento de sinal digital, onde uma faixa de valores contínuos é substituída por um valor discreto. Isso está correto?
Quais são os prós e os contras (além do impacto óbvio da perda de informações) da aplicação da bucketização? Existem regras práticas sobre como aplicar a bucketização? Existem diretrizes / algoritmos para aplicar a bucketização antes da aplicação do aprendizado de máquina?
Respostas:
Este é um tópico amplo e você encontrará uma série de razões pelas quais os dados devem ser, ou já são, agrupados. Nem todos eles estão relacionados à precisão preditiva.
Primeiro, aqui está um exemplo em que um modelador pode querer compactar. Suponha que eu esteja criando um modelo de pontuação de crédito: quero saber a propensão das pessoas a adiarem um empréstimo. Nos meus dados, tenho uma coluna indicando o status de um relatório de crédito. Ou seja, pedi o relatório a uma agência de classificação e a agência retornou, digamos, sua pontuação proprietária, juntamente com uma variável categórica que indica a confiabilidade dessa pontuação. Esse indicador pode ser muito mais granulado do que o necessário para meus propósitos. Por exemplo, as "informações insuficientes para uma pontuação confiável" podem ser divididas em várias classes, como "menos de 20 anos de idade", "movido recentemente para o país", "sem histórico de crédito prévio" etc. Muitas dessas classes pode ser escassamente povoado e, portanto, bastante inútil em uma regressão ou outro modelo. Para lidar com isso, talvez eu queira agrupar classes semelhantes para consolidar o poder estatístico em uma classe "representativa". Por exemplo, pode ser razoável usar um indicador binário "boas informações retornadas" vs. "nenhuma informação retornada". Na minha experiência, muitas aplicações de bucketization se enquadram nessecolapso do tipo de categorias escassamente povoadas .
Alguns algoritmos usam a bucketização internamente. Por exemplo, as árvores que se encaixam dentro dos algoritmos de aumento geralmente passam a maior parte do tempo em uma etapa de resumo, onde os dados contínuos em cada nó são discretizados e o valor médio da resposta em cada intervalo é calculado. Isso reduz bastante a complexidade computacional de encontrar uma divisão apropriada, sem muito sacrifício na precisão devido ao aumento.
Você também pode simplesmente receber dados pré-agrupados. Os dados discretos são mais fáceis de compactar e armazenar - uma longa variedade de números de ponto flutuante é quase incompressível, mas quando discretizados em "alto", "médio" e "baixo", você pode economizar muito espaço no banco de dados. Seus dados também podem ser de uma fonte direcionada a um aplicativo que não seja de modelagem. Isso costuma acontecer muito quando recebo dados de organizações que fazem menos trabalho analítico. Seus dados são frequentemente usados para geração de relatórios e são resumidos em um nível alto para ajudar na interpretação dos relatórios para leigos. Esses dados ainda podem ser úteis, mas muitas vezes se perde energia.
O que vejo menos valor, embora possa ser corrigido, é a pré-bucketização de medições contínuas para fins de modelagem. Existem muitos métodos muito poderosos para ajustar efeitos não lineares a preditores contínuos, e a buckeização remove sua capacidade de usá-los. Eu costumo ver isso como uma má prática.
fonte
De acordo com o artigo "A coleta de dados de alto nível versus baixo nível de ciência de dados" é
Portanto, meu entendimento é que você binamente avança os dados de acordo com os recursos mais preditivos e analisa os subgrupos.
fonte