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étodoconjunt treinoe 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
Transformque 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
Transformpara 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.