A importância da ética e segurança na ciência de dados
Deveres para ser um profissional mais responsável
Dentro da área de ciência de dados existem vários tipos diferentes de trabalhos que podem ser feitos, mas há algo em comum entre eles e que merecem uma atenção especial: todos dependem de uma boa ética e segurança para serem desempenhados de forma correta. Um projeto sem essas características irá, provavelmente, resultar em uma imagem ruim para os envolvidos, além de poder causar diversas consequências financeiras a depender do nível de segurança que foi comprometido.
Este texto tem como objetivo falar mais sobre como a segurança e a ética são importantes, como elas podem ser facilmente comprometidas, o prejuízo e algumas medidas simples e eficazes para evitar projetos antiéticos e inseguros.
Como uma segurança ruim pode afetar a ciência de dados?
A principal lei que protege os dados no Brasil é a LGPD (Lei Geral de Proteção de Dados Pessoais), a qual estabelece diversas regras a serem cumpridas referentes a como os dados serão coletados, tratados, protegidos, armazenados e disponibilizados. Infringir a LGPD é um dos principais riscos que um cientista de dados possui no dia a dia e pode resultar em multas graves, perda de clientes e uma má reputação no mercado, impactando diretamente as partes envolvidas no projeto. Também existem outros riscos que envolvem tanto a segurança quanto a ética, estes serão comentados posteriormente.
Recomenda-se a leitura para entender os tipos de dados que a LGPD aborda: Classificação dos Dados.
Garantindo a segurança no processo como um cientista de dados
Por ser uma área grande (e em expansão), conforme falado anteriormente, existem vários riscos em relação à segurança, sendo que a LGPD lida com a grande maioria deles. Dessa forma, pode-se considerar que seguindo a lei, existe uma grande chance de que o projeto não irá ter problemas com segurança.
Focando em uma pessoa no papel de um cientista de dados, abaixo foram listados os principais erros de segurança (mais comuns) cometidos e como resolvê-los:
1- Não lidar com a privacidade dos dados
Apenas obter dados não significa necessariamente ir contra a lei, mas não tratá-los corretamente é o primeiro passo para isso. Sempre é importante checar se a base de dados possui algum tipo de licença restringindo seu uso, ainda mais se forem dados públicos — que, geralmente, possuem algum tipo de licença. Portanto, tenha cuidado ao realizar técnicas de coleta de dados como o Web Scraping (raspagem de dados), que é o processo da coleta de dados via páginas na internet.
Um caso prático seria utilizar dados que contém informações pessoais e/ou sensíveis sobre as pessoas, como nomes, CPFs, e-mails, sua orientação sexual e política, etc. Para seguir a LGPD, estes campos precisam de um tratamento, pois as pessoas não podem ser identificadas ou ter suas informações expostas.
A fim de resolver o problema, existem diversas opções possíveis, sendo que as duas opções principais são:
- Remoção das colunas: é a abordagem mais simples e utilizada. Identificando e removendo as colunas problemáticas, elimina-se as chances de infringir a lei. Abaixo há um exemplo simples em Python de remoção de colunas com a biblioteca Pandas. Após retirar as colunas, continua-se trabalhando normalmente no projeto.
import pandas as pd
# lendo dados e declarando as colunas a serem retiradas
dados = pd.read_csv("dados_sensiveis.csv")
colunas_retiradas = ['nome', 'cpf', 'orientacao_sexual']
# removendo as colunas do conjunto de dados
dados.drop(columns=colunas_retiradas,axis=1,inplace=True)
- Anonimização dos dados: as vezes não há como fazer a remoção das colunas, pois você precisa manter certos dados para sua análise. Nesses casos, pode-se anonimizar os dados, de forma que não seja possível identificar de qual pessoa aquele conjunto de dados pertence. Casos comuns envolvem dados na área de saúde ou bancários, onde você possui certas colunas que podem identificar uma pessoa (nome, idade, conta, etc..) e diversas outras que são importantes para uma análise. Ao apresentar estes dados ou armazená-los, por exemplo, aplicar a anonimização é uma ótima estratégia, pois, dessa forma, não há risco de identificar ou expor alguém pelos dados.
Abaixo, exemplos mostrando tipos de anonimização para evitar que certas informações sejam expostas:
import pandas as pd
from faker import Faker
# gerando dados pessoais (apenas exemplos)
dados_pessoais = {
'nome': ['João', 'Maria', 'José', 'Ana', 'Pedro'],
'cpf': ['123.456.789-00', '987.654.321-00', '234.567.890-00',
'345.678.901-00', '456.789.012-00'],
'endereco': ['Rua A', 'Av. B', 'Rua C', 'Rua D', 'Rua E'],
'email': ['joao@email.com', 'maria@email.com', 'jose@email.com',
'ana@email.com', 'pedro@email.com'],
}
dados = pd.DataFrame(dados_pessoais)
# Realizando processo de anonimização
## 1 - Substituindo todos os nomes com um novo valor
dados['nome'] = 'nome_anonimizado'
## 2 - Gerando e-mails fictícios com a biblioteca Faker
fake = Faker()
dados['email'] = dados['email'].apply(fake.email)
## 3 - Utilizando método replace do Pandas
dados['cpf'] = dados['cpf'].str.replace('\d', '*')
Cuidado com o processo reverso!
Ao realizar a anonimização, garanta sempre que não é possível identificar o usuário anônimo por meio de outras informações. Com base no exemplo acima, caso apenas o CPF fosse tratado, por meio dos outros campos da tabela (nome, endereço e e-mail), existe a probabilidade de identificar a pessoa, criando uma brecha no processo de anonimização.
Um exemplo grande disso foi pela Netflix, onde em 2006, durante uma competição, acabou indiretamente vazando dados de vários usuários por meio da inversão da anonimização (também chamada de reidentificação).
A base de dados tinha avaliações de usuários sobre filmes e séries, datas e horários, além de dados pessoais anonimizados (transformados em números), porém dois competidores cruzaram as avaliações dessa base com as da IMDb (site focado em avaliações) e, dessa forma, foram capazes de identificar os usuários anônimos, conforme a imagem abaixo ilustra:
Com isso é possível saber, através das avaliações feitas, o nome e os gostos de cada um desses usuários da Netflix, podendo descobrir sua posição política, religiosa, orientação sexual, entre outros dados. E, conforme falado anteriormente, pela LGPD, diversas destas informações citadas são consideradas informações pessoais sensíveis.
Esse é um exemplo de reidentificação bem popular, mostrando que nem empresas grandes estão totalmente protegidas. Então é sempre bom tomar cuidado nesse processo de anonimização e disponibilização de bases.
2- Não se preocupar com o armazenamento de dados
Já foi falado sobre a importância de tratar os dados sensíveis, mas e a segurança do seu armazenamento? Existem momentos em que as informações obtidas nos estudos de um profissional de dados precisarão ser armazenadas para posteriores estudos e/ou usos por outras pessoas. Dessa forma, garantir a segurança nesse processo é imprescindível. Não é papel de um cientista de dados lidar com a configuração de ambientes para armazenamento, porém:
- Garanta que as informações estão anonimizadas e/ou encriptografadas: caso outras equipes precisem trabalhar com os mesmos dados, eles não poderão ser anonimizados ou removidos, nesse caso, criptografar os dados para depois serem descriptografados por outros times, torna-se uma boa alternativa;
- Armazene os arquivos em locais seguros, de preferência na nuvem: isso garantirá uma maior disponibilidade (sempre pode ser acessado) e controle para que apenas pessoas autorizadas possam o acessar. Além disso, geralmente estes serviços possuem um sistema de versionamento, o que possibilita ver o histórico de edições nos dados — ajudando a garantir que nenhuma informação foi manipulada.
- Faça backups: não confie totalmente no seu servidor e/ou na nuvem, sempre faça o backup de dados importantes.
3- Não acompanhar as atualizações
Existem projetos que irão utilizar diversas tecnologias diferentes para formular estudos e/ou resolver problemas. Essas tecnologias vão se atualizando, corrigindo bugs e implementando coisas novas. Ficar de olho nas atualizações das tecnologias principais de um cientista de dados (Python, R, Google Colab, Jupyter, entre outras) é mandatório para garantir uma melhor segurança do que está sendo desenvolvido.
Além disso, para uma melhor documentação, tente deixar exposta a versão das principais tecnologias que estão sendo utilizadas, garantindo um maior controle para quem for visualizar seu projeto ou estudo futuramente.
Cuidado! Nem sempre utilize tecnologias novas e/ou nas suas versões mais recentes em projetos oficiais, sempre verifique se elas estão estáveis e seguras para serem utilizadas e somente após isso comece a aplicá-las.
Como a ética afeta processos de ciência de dados?
Na ciência de dados, os projetos desenvolvidos compõem uma série de tarefas que, com a falta de ética, tornam-se preocupantes. Por mais que, diferente da segurança, a ética geralmente não cause um prejuízo financeiro, ela ainda pode proporcionar a perda de clientes, manchar a reputação do profissional e da empresa.
Existem diversas coisas antiéticas que um profissional pode fazer, sendo que as principais são:
Manipulação de dados: Como o cientista fica encarregado de lidar diretamente com os dados, torna-se uma tarefa fácil manipular algo. Ela ocorre ao omitir, alterar dados ou produzir informações falsas que favorecem uma hipótese. Um exemplo prático seria excluir uma coluna de uma tabela com dados para deixar de mostrar informações relevantes — dessa forma, podendo defender uma hipótese falsa.
Outro tipo de manipulação de dados é o uso de falsas medidas, que acontece ao ocultar certos cálculos para iludir o público. Por exemplo, ao falar sobre a faixa de pagamento em uma empresa, pode-se realizar o cálculo da média, incluindo um salário muito acima dos outros, o que dará uma impressão de que todos os salários da empresa são altos — nesse caso, o mais correto seria retirar o valor discrepante para fazer a média depois ou utilizar outro tipo de cálculo, como a mediana ou moda.
Manipular a visualização dos relatórios: ao produzir um gráfico dos dados, por mais que os valores não sejam manipulados, ainda é possível enganar visualmente quem estiver vendo a apresentação. Um exemplo disso são os gráficos nas imagens abaixo, que mesmo os valores estando corretos, o telespectador ainda é enganado através da distorção causada por eles.
No gráfico acima, o eixo Y foi manipulado, fazendo com que, na esquerda, ele não comece em 0%, mas sim em 3.140%, distorcendo o tamanho das barras. Em uma apresentação, isso induz o público a acreditar que estes dados sofreram um grande aumento durante os anos, sendo que, na verdade, o aumento nem chega a 0.5%.
O gráfico de pizza (ou gráfico de torta) é um gráfico que muitas vezes representa de forma ruim os dados, podendo levar outras pessoas ao erro. Na imagem acima, tem-se um gráfico que não permite ver claramente as diferenças entre os dados e, além disso, por ser inclinado (imitando uma visualização 3D), acaba impactando mais ainda na distorção.
Existem diversas manipulações gráficas, para ver outras, recomendo a leitura do texto: Remove Your Rose Tinted Glasses: Data Visualizations Designed to Mislead.
E para entender mais sobre os problemas com o gráfico de pizza/torta, uma leitura curta, especializada nos defeitos deles: Pie charts: the bad, the worst and the ugly.
Cometer discriminação: ocorre quando um cientista de dados, geralmente trabalhando com aprendizado de máquina, utiliza bases contendo dados discriminatórios para construir o seu modelo. Estas bases são caracterizadas pelo desbalanceamento de grupos, fazendo com que o modelo prejudique os grupos em menor quantidade.
É um erro antiético bem comum de ocorrer, já que os dados refletem o mundo real e há grande falta de diversidade nele. Isso geralmente resulta em preconceitos relacionados à etnia, sexo, orientação sexual, gênero, renda, etc.
Para evitar essa situação, necessita-se utilizar dados mais balanceados (dados mais divididos entre os grupos), realizar um bom pré-processamento e, em alguns casos, aplicar algoritmos que ajudam a balancear os dados, atribuindo pesos diferentes aos grupos minoritários e majoritários.
Conclusão
A ética e a segurança são extremamente importantes para qualquer projeto e fazem parte do dia a dia de um cientista de dados. Lembre-se de analisar bem o passo a passo que foi realizado, prestando atenção nos cálculos feitos, hipóteses formuladas, gráficos a serem apresentados, sempre a fim de verificar possíveis erros e garantir uma boa qualidade no desenvolvimento.
Então, lembre-se do que foi falado:
- Preste atenção na LGPD e licenças dos dados que for utilizar;
- Faça uma anonimização segura;
- Armazene e disponibilize arquivos com segurança;
- Cuidado com tecnologias desatualizadas e suas brechas de segurança;
- Não manipule os dados para entregar melhores resultados;
- Escolha gráficos adequados ao tipo de dado e não distorça seu formato — fuja dos gráficos de pizza;
- Evite criar um modelo preconceituoso e cuidado com a discriminação!
Fontes
- Lei Geral de Proteção de Dados Pessoais (LGPD)
- What Is De-Anonymization and How Can You Prevent It?
- Cornell University — How To Break Anonymity of the Netflix Prize Dataset
- UNIVESP — Introdução à Ciência de Dados — Machine Learning: Ética e Privacidade
- Como tecnologias podem reforçar preconceitos — ou atuar a favor da diversidade e inclusão
- Handling Discriminatory Biases in Data for Machine Learning