Configuração de avaliações de imparcialidade para viés indireto
Sob certas condições, você pode configurar avaliações de imparcialidade para considerar a parcialidade indireta e a parcialidade direta para uma implantação de modelo.
O viés indireto ocorre quando um recurso em um conjunto de dados pode ser usado para ficar em pé para outro. Por exemplo, em um conjunto de dados onde a raça não é um recurso conhecido, um recurso como o código postal muitas vezes pode acompanhar de perto a raça. Avaliar o recurso de código postal para viés é uma forma de detectar viés indireto. Em outro exemplo, o histórico de compras do cliente pode corresponder de perto com o sexo. Assim, até mesmo um modelo preditivo que não contenha nenhum dos atributos protegidos típicos como raça, idade ou sexo pode indicar resultados tendenciosos.
O viés indireto é analisado quando as seguintes condições são atendidas:
- Para localizar correlações, o conjunto de dados deve ser suficientemente grande (mais de 4000 registros).
- Os dados de treinamento devem incluir os metacampos. Deve-se treinar o modelo em um subconjunto de campos de dados. Esses campos adicionais, os metacampos, destinam-se a determinar a propensão indireta. (Incluir os metacampos, mas não os utilize no treinamento de modelo.)
- A criação de log de carga útil deve conter metacampos e ser executada antes que o monitor de imparcialidade seja configurado. Você deve usar esse método para carregar os metacampos. A criação de log de carga útil para propensão indireta requer dois tipos de recursos de entrada: 1) recursos de treinamento com valores e 2) metacampos com valores.
- Ao configurar o monitor de imparcialidade, selecione os campos adicionais a serem monitorados.
Fluxo de trabalho típico para propensão indireta
No entanto, é possível determinar viés indireto para pré-produção e modelos de produção os modelos requerem colunas diferentes. Os dados de teste que são usados para avaliar os modelos de pré-produção e os dados de feedback que são usados para avaliar os modelos de pré-produção ou de produção diferem no uso de metacolunas. As metacolunas são necessárias para os dados de teste para pré-produção e não podem ser incluídas nos dados de feedback que são usados para modelos de pré-produção ou de produção. Um fluxo de trabalho típico pode incluir as etapas a seguir:
- Criar dados de treinamento que contêm as colunas de recurso e metacolunas. As metacolunas contêm dados que não são usados para treinar o modelo.
- Configure o monitor de equidade com as metacolunas.
- Durante a pré-produção, faça upload de dados de teste que contêm as colunas de recurso e as metacolunas. Esses dados de teste devem ser carregados usando a opção Importar dados de teste CSV.
- Durante a pré-produção, você pode se interpor em diferentes versões do modelo enquanto utiliza as medidas de viés indireto para garantir que seu modelo final seja livre de viés.
- Após enviar o modelo para a produção, os dados de feedback não devem ter nenhuma das metacolunas, apenas as colunas de recurso que foram usadas para treinar o modelo.
Arquivo de carga útil JSON de amostra com metacampos
O arquivo de amostra a seguir mostra uma carga útil JSON com os campos e valores que são usados para treinar o modelo. Os metacampos e valores que são usados para a análise de propensão indireta também estão incluídos. Os metacampos não são usados para treinar o modelo, em vez disso, eles são reservados para um tipo diferente de análise que tenta correlacioná-los à propensão no modelo. Embora os metacampos possam ser qualquer tipo de dado, eles geralmente são atributos protegidos, como sexo, raça ou idade.
[request_data = {
"fields": ["AGE", "SEX", "BP", "CHOLESTEROL", "NA", "K"],
"values": [[28, "F", "LOW", "HIGH", 0.61, 0.026]]
}
response_data = {
"fields": ["AGE", "SEX", "BP", "CHOLESTEROL", "NA", "K", "probability", "prediction", "DRUG"],
"values": [[28, "F", "LOW", "HIGH", 0.61, 0.026, [0.82, 0.07, 0.0, 0.05, 0.03], 0.0, "drugY"]]
}
request_data = <put your data here>
response_data = <put your data here>
records = [PayloadRecord(request=request_data, response=response_data, response_time=18),
PayloadRecord(request=request_data, response=response_data, response_time=12)]
subscription.payload_logging.store(records=records)
Os metavalores devem estar no formato de uma matriz de matrizes:
"meta": {
"fields": ["age", "race", "sex"],
"values": [
[32, "Black", "Male"]
]
}
Saiba Mais
- Opções de remoção de propensão
- Para um bloco de notas sobre viés indireto, Indirect Bias detection (Detecção de viés indireto)