Usando o emparelhamento de logs contrafactuais

Depois de determinar que o Emparelhamento Logit Contrafactual (CLP) é a técnica apropriada para seu caso de uso, você pode aplicá-lo seguindo as seguintes etapas:

  1. Crie uma instância de CounterfactualPackedInputs com os dados originais e contrafactuais.
  2. Meça a taxa de inversão e a contagem de inversões para determinar se a intervenção é necessária.
  3. Se for necessária intervenção, passe os dados de entrada originais, os dados contrafactuais, o modelo original e a perda contrafactual para o modelo contrafactual.
  4. Avalie o impacto do CLP medindo a taxa de inversão e a contagem de inversões.

Para ver um exemplo de aplicação do CLP a um modelo Keras, consulte o tutorial Usar emparelhamento logit contrafactual com Keras .

Crie uma instância de CounterfactualPackedInputs

Para criar o conjunto de dados contrafactual, comece determinando os termos e recursos que você deseja avaliar e que, quando removidos ou substituídos, podem alterar a previsão do seu modelo.

Depois de compreender os termos e recursos a serem avaliados, você precisará criar uma instância de CounterfactualPackedInputs , que inclui a entrada original e os dados contrafactuais. A entrada original deve ser o conjunto de dados usado para treinar seu modelo Keras. Os dados contrafactuais têm um valor original_x , um valor counterfactual_x e um counterfactual_sample_weight . O valor contrafactual deve ser quase idêntico ao valor original, com a diferença de que um ou mais atributos sensíveis sejam removidos ou substituídos. A qualidade do conjunto de dados contrafactual é importante porque é usado para emparelhar a função de perda entre o valor original e o valor contrafactual com o objetivo de garantir que a previsão do modelo não mude quando o atributo sensível for diferente.

Para obter detalhes sobre como desenvolver esse conjunto de dados contrafactual, consulte o caderno sobre como criar um conjunto de dados contrafactual personalizado .

Meça a contagem e a taxa de viradas

Um flip é definido como um classificador que dá uma decisão diferente quando o atributo sensível referenciado no exemplo muda. Ele captura a situação em que um classificador altera sua previsão na presença, ausência ou alteração de um atributo de identidade. Uma métrica mais contínua deve ser usada ao avaliar o valor real (pontuação) de um classificador.

Contagem de inversões

A contagem de inversões mede o número de vezes que o classificador toma uma decisão diferente se o termo de identidade em um determinado exemplo for alterado.

  • Contagem geral de inversões : total de inversões de uma previsão de positiva para negativa e vice-versa.
  • Contagem de inversões de previsão positiva para negativa : número de inversões em que o rótulo de previsão mudou de positivo para negativo.
  • Contagem de inversões de previsão negativa para positiva : número de inversões em que o rótulo de previsão mudou de negativo para positivo.

Taxa de inversão

A taxa de inversão mede a probabilidade de o classificador tomar uma decisão diferente se o termo de identidade em um determinado exemplo for alterado.

  • Taxa geral de inversão : contagem total de inversões sobre o número total de exemplos
  • Taxa de inversão de previsão positiva para negativa : contagem de inversão positiva para negativa sobre exemplos positivos no conjunto de dados contrafactual
  • Taxa de inversão de previsão negativa para positiva : contagem de inversão negativa para positiva sobre exemplos negativos no conjunto de dados contrafactual

Depois de calcular a taxa de inversão e a contagem de inversões com indicadores de imparcialidade , você pode determinar se o classificador está fazendo uma previsão diferente com base em um atributo sensível nos dados. Você pode usar a contagem de exemplo e os intervalos de confiança para determinar se possui dados suficientes para aplicar o CLP e tirar conclusões da taxa de inversão. Uma alta taxa de inversão e contagem de inversões são indicativas da ocorrência desse comportamento e podem ser usadas para decidir se o CLP é apropriado para seu caso de uso. Esta decisão é específica do seu modelo e depende de fatores como os danos que podem ser causados ​​aos usuários finais e ao produto no qual o modelo é usado.

Aplique o emparelhamento logit contrafactual ao seu modelo Keras

Para usar o CLP, você precisa do modelo Keras original que deseja remediar, do conjunto de dados de treinamento original e do conjunto de dados contrafactual. Determine qual counterfactual loss deve ser aplicada ao emparelhamento logit. Com isso, você pode construir o modelo Contrafactual com a função de perda contrafactual desejada e a função de perda de seu modelo original.

Depois de aplicar o CLP, você deve calcular a taxa de inversão e a contagem de inversões e quaisquer alterações em outras métricas, como a precisão geral, para medir a melhoria resultante da aplicação dessa técnica.