Código desenvolvido ao longo do Trabalho de Conclusão de Curso na Universidade Federal de Santa Catarina, curso de Sistemas de Informação pela aluna Beatriz Valio Weiss.
Obter métricas de desempenho dos 03 algoritmos mais citados na literatura, aplicados na etapa de Classificação
Para mais informações sobre o trabalho realizado, acesse o trabalho completo no Repositório Institucional da UFSC.
Para avaliação estão incluídos nesse código:
- Random Forest:
RandomForestClassifier
- Support Vector Machine:
SVC
- Neural Networks:
MLPClassifier
main.py
: executa o processo de ponta a ponta e avalia ao final uma simulação de como seria no ambiente de produção, utilizando 20% do conjunto de dados definido para teste.utils.py
: contém algumas funções auxiliares para deixar amain.py
mais organizada.feature_selection.py
: seleciona automaticamente as features para todos os modelos utilizandoCatBoostClassifier
eoptuna
, selecionado aquelas que tiverem importancia maior que 0.transformations.py
: transforma cada feature selecionada de acordo com sua classificação na main (numérica, categórica ou textual).hyperparameter_optimization.py
: seleciona automaticamente os melhores hiperparametros encontrados dentro do numero de tentativas (setado inicialmente 5 tentativas na variáveln_trials
) para os algoritmos utilizandooptuna
ecross-validation
.models.py
: avalia final dos algoritmos.
Métricas para comparação dos algoritmos em relação ao seu potencial de classificação para o dataset em questão.
O resultado da execução do código inclue:
- Salvamento da melhor versão do modelo com os hiperparâmetros encontrados na pasta
/best_models
- Salvamento das métricas em
results/metricas_execucoes.csv
- Salvamento das features selecionadas e gráficos em
results/Execucao_dd_mm_YY_HH_MM_SS
- Ter Python 3.11 instalado
- Instalar as bibliotecas necessárias:
pip install -r requirements.txt
- Garantir que o dataset esteja em
/data
- Configurar as particularidades do dataset na
main.py
:dataset_name
: nome do dataset (arquivo csv) inserido em/data
(ex.: 'empresas.csv')delimiter
: delimitador (',' ou ';')target_column
: atributo alvo, provavelmente nomeado de 'matching' (booleano 'True'/'False')date_columns
: nome de todos os atributos que possuem data (devendo estar no formato 'dd/mm/aaaa')numeric_columns
: nome de todos os atributos numéricos (atenção para o separador de decimal ser '.')categoric_columns
: nome de todos os atributos categóricostext_columns
: nome de todos os atributos textuaiskey_columns
: nome de todos os atributos que apenas identificam o registro nas tabelas originarias (os atributos identificados aqui não devem constar em numeric_columns, categoric_columns e text_columns)