Aprovômetro é um aplicativo feito para participar do concurso Desafio App Legislativo 2017.
A ideia é apresentar a chance que as proposições (PL, PEC e PLP) têm de virar lei.
Para calcular essa chance aplicamos algoritmos de Machine Learning (gradient boosting machine e mineração de texto) em todos os dados das tramitações e dados das proposições (comissões, tempo e quantidade de tramitação, datas, etc).
Após montarmos uma base de treinamento com o histórico de proposições tramitadas, conseguimos chegar em uma aproximação da probabilidade de uma proposta ser aprovada. Definimos como target uma variável binária que indica se uma proposta foi transformada em norma jurídica nos seis meses posteriores à data base de análise.
Existe um enorme desbalanceamento nos dados em relação à quantidade de proposições que se tornam normas e o total de proposições que estão tramitando, sendo necessário um tratamento adequado para essa característica dos dados. Optamos em utilizar um parâmetro do algoritmo (LightGBM) em que os pesos das observações "raras" (aprovadas) são majorados, o que eleva o "custo" de erros.
Para validar o resultado de treinamento do modelo, utilizamos a métrica F1, que é uma média harmônica da precisão (precision) e da sensibilidade ( recall). Nos teste, a melhor precisão obtida foi de, aproximadamente, 23%, e a melhor sensibilidade por volta de 42%. Isso significa dizer que a cada 100 proposições que o modelo previu que se tornariam normas 23 de fato se tornaram e a cada 100 proposições que se tornaram normas, 42 o modelo previu corretamente. Para um primeiro passo, o resultados são animadores.
Para simplificar a interpretação do usuário, transformamos esse resultado em 3 categorias textuais simples: chance alta, chance média e chance baixa . Além disso, as proposições estão inicialmente ordenadas conforme a probabilidade prevista pelo algoritmo. Esses resultados finais foram incorporados ao aplicativo juntamente com outros detalhes da proposição.