Coder Social home page Coder Social logo

fairness-experiments's Introduction

Experimentos: pré-processamento de Fairness in Machine Learning

Experimentos realizados para o projeto de Iniciação Científica com auxílio da FAPESP - 2021/03030-4

Resumo do projeto

Fairness in Machine Learning é uma área que tem como objetivo utilizar técnicas focadas em minimizar efeitos discriminatórios nas decisões executadas por Aprendizado de Máquina, preservando ao máximo a precisão da decisão. Nessa área há três possibilidades de intervenção com o propósito de produzir classificadores mais justos, que se distinguem entre si pela etapa que intervêm. São elas: pré-processamento, em-processamento e pós-processamento. As abordagens de pré-processamento possuem algumas vantagens, como: não ter a necessidade de modificar o classificador, nem de acessar as informações sensíveis (e.g. raça, sexo, religião, etc.) nas etapas de treinamento ou de teste e, ainda, por serem abordagens que podem ser utilizadas por outras tarefas de Aprendizado de Máquina. Por ser uma área recente, demanda trabalhos que analisem comparativamente os diversos algoritmos que estão sendo propostos na literatura. Motivado por esta lacuna e pelas vantagens supracitadas, este projeto de pesquisa pretende realizar uma análise comparativa dos métodos de pré-processamento propostos em Fairness in Machine Learning, com o objetivo de identificar, de entender e de relacionar os algoritmos mais adequados e eficientes para cada diferente conceito de justiça, medida de desempenho e tipo de dados.

Algoritmo de pré-processamento Fairness in Machine Learning

  • Massaging
  • Disparate Impact Remover
  • Reweighing
  • Uniform Sampling
  • Preferential Sampling

Bases de dados

  • German Credit
  • Adult
  • Bank Marketing
  • COMPAS
  • Titanic
  • Arrhythmia
  • Contraceptive
  • Drug Consumption

Divisão das Pastas

  • img: Pasta que contém os gráficos gerados no experimento
  • results: Pasta que contém as tabelas com os resultados para cada base de dados
  • preprocessing-methods: Pasta que contém os algoritmos de pré-processamento que foram desenvolvidos
    • Massaging
    • Preferential Sampling
    • Uniform Sampling
  • data: Pasta contendo arquivos de algumas das bases utilizadas
  • dataset.py: Classe que representa os datasets utilizados e suas funções
  • fairness-experiment.py: O experimento em si, classes e funções necessárias
  • settings.py: Arquivo com as configurações dos classificadores utilizados no experimento
  • run_experiments.py: Notebook com um exemplo de como rodar os algoritmos
  • graphics.py: Script que gera gráficos para visualização dos resultados

Como executar os experimentos

  1. Baixar todas as bibliotecas necessárias
pip install -r requirements.txt
  1. Rodar o notebook run_experiments e definir quais bases e quais métodos de pré-processamento serão utilizados
jupyter noteboook run_experiments.ipynb
  1. Rodar o notebook graphics caso queria uma visualização gráfica de cada método por base de dados
jupyter noteboook graphics.ipynb

fairness-experiments's People

Contributors

marinamachado avatar joaomisson avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.