Algoritmos Wrapper em Python

Algoritmos Wrapper em Python

Implementação de Algoritmos de Busca em Python

Introdução à Aula

  • O instrutor dá as boas-vindas aos participantes e apresenta o tema da aula, que é a implementação em Python dos algoritmos de busca sequencial e eliminação recursiva.
  • A base de dados utilizada será a "brash cancer", disponível no repositório kg. O foco inicial é na inclusão das bibliotecas necessárias.

Bibliotecas e Ferramentas

  • Será instalada a biblioteca externa "Vem" para visualizar as diferenças entre três abordagens: busca para frente (forward), busca para trás (backward) e eliminação recursiva (RFE).
  • O código seguirá uma estrutura semelhante à abordagem Filter, incluindo funções para carregar a base de dados, pré-processamento, normalização e separação dos conjuntos de treino e teste.

Pré-processamento dos Dados

  • As colunas irrelevantes serão removidas, e a normalização será feita com o Standard Scaler. A classe "diagnoses" será transformada usando o Label Encoder.
  • Funções específicas serão utilizadas para separar atributos preditores da classe, gerando os conjuntos X e Y.

Seleção de Características

  • Serão avaliadas duas funções principais: Sequential Feature Selection (SFS) e Recursive Feature Elimination (RFE).
  • Para SFS, parâmetros como classificador (clf), direção (forward ou backward), total de características desejadas e conjunto treino-teste serão definidos.

Implementação do Modelo SFS

  • O modelo SFS será instanciado utilizando o classificador definido anteriormente. A string literal do classificador será convertida em objeto usando eval.
  • Parâmetros adicionais incluem especificar se a direção é forward ou backward, além da métrica que será usada no classificador.

Preparação para RFE

  • Antes das testagens, o código do RFE também será preparado. Os parâmetros são semelhantes ao SFS, mas sem incluir a direção.
  • O modelo RFE utilizará os mesmos parâmetros essenciais do SFS com algumas adaptações necessárias para sua implementação correta.

Treinamento e Seleção de Atributos em Algoritmos de Classificação

Introdução ao Treinamento

  • O treinamento do modelo é iniciado com a chamada da função Fit, utilizando o método conjunt treino e retornando o resultado do RFE (Recursive Feature Elimination). O ajuste é simplificado por não especificar o tipo de métrica.

Importância das Características

  • A importância das características varia conforme o algoritmo utilizado. Algoritmos baseados em árvore utilizam medidas de importância próprias, enquanto algoritmos lineares, como SVM, aplicam pesos lineares.

Abordagens de Seleção de Atributos

  • As abordagens SFS (Sequential Feature Selection) e RFE possuem funções semelhantes para obter os nomes das características selecionadas. Ambas também têm a propriedade Transform que aplica a redução no dataframe.

Pré-processamento dos Dados

  • A base de dados utilizada é referente ao câncer de mama, carregada corretamente sem dados faltantes. Apenas a classe é categórica, sendo necessário um pré-processamento para remover atributos irrelevantes.
  • Durante o pré-processamento, ocorre a normalização dos dados e transformação da classe categórica em inteira através do Label Encoder. Um mapa de calor é gerado para verificar correlações entre as classes.

Avaliação Inicial do Modelo

  • Após separar os atributos da classe (X e Y), realiza-se uma divisão inicial entre treino e teste (70/30%). O modelo baseado em árvore de decisão apresenta uma acurácia aproximada de 85%.
  • As métricas obtidas incluem:
  • Acurácia: 85%
  • Recall: 79%
  • Precisão: 85%
  • F1 Score: 82%

Implementação da Seleção Forward

  • Inicia-se a implementação da seleção forward com a função SFS. Os parâmetros incluem o classificador decision tree, direção forward e número desejado de características (nove).
  • Um erro no código relacionado à quantidade de características selecionadas é identificado; um erro tipográfico foi corrigido para "Any futures".

Obtenção dos Nomes das Características Selecionadas

  • Após corrigir o erro, os nomes das nove características selecionadas são obtidos através do método get Future names.

Transformação dos Conjuntos Treino e Teste

  • Utiliza-se a função Transform para aplicar as seleções feitas no conjunto treino (new X) e no conjunto teste (new X test).

Retreinamento do Classificador

  • O classificador é retreinado utilizando apenas os novos conjuntos reduzidos. Observa-se uma melhoria na acurácia que sobe para 90% com apenas nove atributos.
  • As novas métricas após retreinamento mostram:
  • Acurácia: 90%
  • Recall: Caiu levemente para 87%
  • F1 Score: Melhorou para 89%.

Análise de Seleção de Características com Algoritmos

Direção Backward e Seleção de Características

  • A abordagem "backward" é utilizada para selecionar um subconjunto menor de características, começando pela base inteira e reduzindo até nove características.
  • A função get futures name é chamada para obter os nomes das características selecionadas na etapa backward.
  • O modelo é retreinado utilizando as novas características selecionadas, resultando em uma melhoria da precisão para 92%.

Resultados e Métricas

  • Todas as métricas apresentaram resultados acima de 90%, sendo este o melhor resultado até o momento.
  • Inicia-se a análise com o algoritmo de eliminação recursiva (RFE), que segue uma lógica semelhante à anterior, mas sem necessidade de passar a direção.

Implementação do RFE

  • O nome das características é obtido através da função get futures name, facilitando a implementação devido à padronização do código.
  • O modelo é novamente retreinado usando a árvore de decisão, mantendo consistência nas abordagens utilizadas.

Comparação entre Abordagens

  • Os resultados indicam que a abordagem backward teve o melhor desempenho, enquanto o RFE apresentou resultados ligeiramente inferiores no Recall, mas superior no Precision.
  • As métricas gerais mostram que tanto backward quanto RFE superaram todas as características originais.

Análise da Similaridade entre Características

  • A análise revela que cada abordagem selecionou características exclusivas; por exemplo, apenas duas características foram comuns entre todos os algoritmos analisados.
  • Essa diversidade nas seleções explica os diferentes desempenhos dos algoritmos, destacando a importância da escolha das características na modelagem.

Análise Comparativa de Características

Diferenças entre Futures Ford e Backward

  • O autor realiza uma avaliação das diferenças entre as características dos modelos Futures Ford e Backward, destacando cinco características exclusivas de cada um.
  • É possível verificar o nome das características do modelo RFE em comparação com o Futures, facilitando a análise.

Análise de Intersecções

  • O autor menciona que ao comparar os conjuntos do Futures Forward e Backward, é possível identificar quatro características exclusivas do RFE.
  • A intersecção entre os modelos Ford e RFE revela três características comuns, que são: "radius worst", "symmetry" e outra não especificada.

Insights sobre Comportamentos dos Algoritmos

  • Ao analisar as intersecções entre os modelos, observa-se que existem três características em comum apenas entre os modelos Forward e Backward.
  • A análise mostra que a característica "fractal Dimension worst" é exclusiva na intersecção entre Forward e Backward, não aparecendo na intersecção com o RFE.

Conclusão da Análise

  • O tipo de análise realizada oferece insights valiosos para entender por que diferentes algoritmos apresentam comportamentos distintos.