Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Dados categóricos em árvore de decisão utilizando libs Python

Dados categóricos em árvore de decisão utilizando libs Python

Alguns algoritmos de árvore de decisão com Python são restritos a dados numéricos. A palestra irá
abordar o uso de dados categóricos em árvore de decisão utilizando libs Python abordando algumas
dificuldades em problemas restritos ao uso de dados categóricos.

Ana Paula Mendes

November 02, 2020
Tweet

More Decks by Ana Paula Mendes

Other Decks in Programming

Transcript

  1. ~$ whoami Ana Paula Mendes Software Engineer na Miio Electric

    Pesquisadora no laboratório de Inteligência Artificial - UFPI Bacharelanda em Ciência da Computação - UFPI
  2. Introdução Alguns algoritmos de árvore de decisão com Python são

    restritos a dados numéricos. A palestra irá abordar o uso de dados categóricos em árvore de decisão utilizando libs Python abordando algumas dificuldades em problemas restritos ao uso de dados categóricos.
  3. Árvores de Decisão Uma árvore de decisão usa a estratégia

    dividir para conquistar para resolver um problema de decisão. Um problema complexo é dividido em problemas mais simples, aos quais recursivamente é aplicada a mesma estratégia. As soluções dos subproblemas podem ser combinadas, na forma de uma árvore, para produzir uma solução do problema complexo. (LORENA; GAMA; FACELI, 2000)
  4. Algoritmos de Árvore de Decisão CART (Breiman et al., 1984)

    ID3 (Quinlan, 1979) C4.5 (Quinlan, 1993) ASSISTANT (Cestnik et al., 1987)
  5. Transformação de Dados Várias técnicas de aprendizado de máquina (AM)

    estão limitadas à manipulação de valores de determinados tipos, por exemplo, apenas valores numéricos ou apenas valores simbólicos. Na conversão simbólico-numérico a depender se os valores simbólicos são nominais ou ordinais, diferentes técnicas podem ser empregadas. (LORENA; GAMA; FACELI, 2000)
  6. Identificação de dados categóricos: nominal, ordinal e contínuo Nominal São

    normalmente armazenados como valores de texto que representam várias características das observações. Exemplo: gênero, país, etc. Ordinal Recursos que possuem alguma ordem associada a eles são chamados de recursos ordinais. Exemplo: altura, classe social, etc. Contínuo Essas são variáveis numéricas que possuem um número infinito de valores entre quaisquer dois valores. Uma variável contínua pode ser numérica ou uma data/hora.
  7. Os recursos categóricos podem ter alta cardinalidade, ou seja, muitos

    valores exclusivos. Muitos modelos de aprendizado de máquina são algébricos. Isso significa que sua entrada deve ser numérica. Embora alguns pacotes ou bibliotecas de AM possam transformar dados categóricos em numéricos automaticamente com base em algum método de incorporação padrão, muitos outros pacotes de AM não são compatíveis com essas entradas. Para o AM os dados categóricos não contêm o mesmo contexto ou informações que os humanos podem facilmente associar e compreender. Se as informações contextuais adicionais não forem especificadas, será impossível para o modelo diferenciar entre níveis altamente diferentes. Restrições
  8. Problema de Pesquisa Criação de um conjunto de regras para

    inferir diagnóstico em nefropatologia para a geração automática de questões relacionadas aos diagnósticos, para a criação de uma ferramenta de auxílio ao ensino-aprendizagem de especialistas em nefropatologia. O conjunto de regras deve ser claro para que especialistas possam analisar a conclusão do diagnóstico.
  9. Substituir Valores Criar um dicionário que contém números de mapeamento

    para cada categoria. Definir um mapeamento por meio de um dicionário codificado é fácil quando o número de categorias é baixo. Isso será útil quando a contagem de categorias for alta.
  10. Substituir Valores Se você substitui os valores A, B, C,

    D, E por 1, 2, 3, 4, 5. O algoritmo entenderá que há uma ordinalidade, ou seja, interpretará de forma errada.
  11. Label Encoding Permite converter cada valor de uma coluna em

    um número. Codifica cada valor de uma coluna com valor entre 0 e n_classes-1. A desvantagem de que os valores numéricos podem ser mal interpretados pelo algoritmo.
  12. Label Encoding Se uma categoria A recebe o valor 1

    e uma categoria B recebe o valor 8, o algoritmo entenderá que a categoria B tem 8x o peso de A. É entendido como um tipo de "padrão". Isso é chamado problema de pesos desiguais. Algoritmos que funcionam apenas com valores numéricos tentarão sempre estabelecer padrões entre os números.
  13. One-Hot Encoding Converter cada valor de categoria em uma nova

    coluna e atribuir um valor 1 ou 0 à coluna. Isso tem a vantagem de não ponderar um valor indevidamente. Exige muito processamento. Cai na "maldição da dimensionalidade".
  14. One-Hot Encoding Embora a codificação one-hot resolva o problema de

    pesos desiguais dados às categorias dentro de um recurso, não é muito útil quando há muitas categorias, pois isso resultará na formação de tantas novas colunas, o que pode resultar na maldição da dimensionalidade. O conceito de “maldição da dimensionalidade” discute que em espaços de alta dimensão algumas coisas simplesmente param de funcionar corretamente.
  15. Algoritmos de árvore de decisão ID3 Foi desenvolvido em 1986

    por Ross Quinlan. O algoritmo cria uma árvore de múltiplas vias, encontrando para cada nó (ou seja, de maneira gananciosa) a característica categórica que produzirá o maior ganho de informação para alvos categóricos. As árvores crescem até seu tamanho máximo e, em seguida, uma etapa de poda é geralmente aplicada para melhorar a capacidade da árvore de generalizar para dados invisíveis. C4.5 C4.5 é o sucessor do ID3 e removeu a restrição de que os recursos devem ser categóricos, definindo dinamicamente um atributo discreto (com base em variáveis numéricas) que particiona o valor do atributo contínuo em um conjunto discreto de intervalos. C4.5 converte as árvores treinadas (ou seja, a saída do algoritmo ID3) em conjuntos de regras se-então. A precisão de cada regra é avaliada para determinar a ordem em que devem ser aplicadas. A poda é feita removendo a pré-condição de uma regra se a precisão da regra melhorar sem ela. CART CART (árvores de classificação e regressão) é muito semelhante a C4.5, mas difere porque oferece suporte a dados numéricos (regressão) e não computa conjuntos de regras. O CART constrói árvores binárias usando o recurso e o limite que geram o maior ganho de informação em cada nó.
  16. scikit-learn scikit-learn usa uma versão otimizada do algoritmo CART; no

    entanto, a implementação do scikit- learn não oferece suporte a variáveis categóricas por enquanto.
  17. Como utilizar a árvore de decisão com dados categóricos e

    com Python então? pip install chefboost Uma biblioteca com suporte a árvores de decisões com suporte a recursos categóricos. Tem suporte para os algoritmos ID3, C4.5, CART, CHAID e árvores de regressão.
  18. Paralelismo Chefboost oferece paralelismo para acelerar a construção de modelos.

    Ramificações de uma árvore de decisão serão criadas em paralelo dessa maneira. Você deve passar o argumento enableParallelism como True na configuração. Seu valor padrão é False.
  19. Referências LORENA, A. C.; GAMA, J.; FACELI, K.. Inteligência Artificial:

    Uma abordagem de aprendizado de máquina. Grupo Gen-LTC, 2000. Scikit-learn: Machine Learning in Python, Pedregosa et al., JMLR 12, pp. 2825-2830, 2011. Data structures for statistical computing in python, McKinney, Proceedings of the 9th Python in Science Conference, Volume 445, 2010. Serengil, Sefik Ilkin. Lightweight Decision Trees Framework supporting Gradient Boosting (GBDT, GBRT, GBM), Random Forest and Adaboost w/categorical features support for Python. chefboost. 2019. Disponível em: https://github.com/serengil/chefboost