- View
Começamos cada tarefa de ML por conhecer o conjunto de dados. Se utilizarmos dados tabulares, interessa-nos quais os atributos presentes, que valores possuem e se alguns poderão estar relacionados. Quando trabalhamos com outros tipos de dados, como texto, geralmente queremos saber se todos os textos estão escritos na mesma língua e qual a sua extensão. Como nenhum conjunto de dados é perfeito, na análise tentamos identificar possíveis duplicados e algumas entradas atípicas. Todas estas tarefas designam-se por análise exploratória de conjuntos de dados — Análise Exploratória de Dados (AED). O seu objetivo é ajudar-nos, através de um conjunto diversificado de tarefas, a conhecer melhor o conjunto de dados e a tomar decisões mais informadas para a preparação dos dados. Dada a importância dos dados nas etapas seguintes (lembre-se do ditado "lixo na entrada, lixo na saída"), procuramos dedicar tempo suficiente à análise exploratória do conjunto de dados, avançando para a etapa seguinte apenas quando tivermos a certeza de que compreendemos bem os dados.

Tarefas exploratórias de análise de dados
Análise de atributos
Como os atributos são usados para descrever uma grande variedade de propriedades, seus tipos e intervalos de valores variam. Os dois grandes grupos de atributos que encontramos são atributos numéricos (quantitativos) e categóricos (qualitativos). Os atributos numéricos têm, como o nome indica, valores numéricos. Tais são, por exemplo, a altura do jogador, a distância do aeroporto, o número de animais de estimação, a temperatura exterior, o número de gelados vendidos, a concentração de glicose no sangue e muitos outros. Para esses atributos, geralmente olhamos para os intervalos de valores, os valores mais altos e mais baixos, o valor médio, a mediana, bem como a própria distribuição. Chamamos todas essas análises de análises descritivas, porque elas nos ajudam a descrever a quantidade à qual um atributo está associado.

Exemplos de algumas análises descritivas dos atributos do conjunto de dados Iris
Atributos categóricos são um tipo de atributo que pode ter um conjunto finito de valores. Tais atributos são, por exemplo, a cor do carro, o tipo de roupa, o sexo do paciente, a estação atual, entre outros. Esses atributos são geralmente representados por cadeias de caracteres ou códigos numéricos equivalentes. Por exemplo, o mês do ano pode ser listado como o nome "fevereiro" ou como o número "dois" (porque fevereiro é o segundo mês do ano). É importante notar que, mesmo que usemos códigos numéricos para representar esses atributos, não faz sentido calcular valores como média ou máximo, porque esses valores não são inerentemente numéricos. Para eles, geralmente analisamos quais valores eles podem tomar e com que frequência eles aparecem, e mostramos essas conclusões usando gráficos.

Um exemplo da análise do atributo "ano" no conjunto Titanic
A Unificação de Valores
Durante a análise dos dados, podemos descobrir que os valores dos atributos não são uniformemente definidos. Por exemplo, nomes de cores podem ser escritos de forma inconsistente, às vezes em letras minúsculas e às vezes maiúsculas, ou as datas podem ser dadas em formatos diferentes, como dia-mês-ano e ano/mês/dia. Para poder realizar corretamente a tarefa de análise, é desejável unificar esses valores, ou seja, vamos reduzi-los à mesma forma de representação. Normalmente há um caminho que é mais desejável ou útil, mas também acontece que as eleições são completamente iguais.
Valores em falta
Ao analisar um conjunto de dados, podemos notar que os valores de alguns atributos estão faltando. Isso pode ser devido a descuido na entrada de dados ou simplesmente indisponibilidade de informações. Esses valores no conjunto de dados são chamados de valores ausentes.

Um exemplo de um conjunto com valores ausentes
O passo mais simples que podemos tomar quando notamos valores ausentes é excluir os atributos (colunas do conjunto de dados) ou as instâncias (tipos de conjunto de dados) em que eles aparecem. Por exemplo, se não soubermos o valor de um atributo para mais de 50% das instâncias de um conjunto de dados, faz sentido excluí-lo. Se, por outro lado, tivermos apenas algumas instâncias em que o valor do atributo está ausente, é melhor excluir as instâncias e manter o atributo. No entanto, estas decisões nem sempre são fáceis. Por exemplo, pode acontecer que diferentes valores de atributo estejam faltando em instâncias diferentes, então excluímos e ignoramos um número significativo de instâncias dessa maneira, o que pode ser problemático se não tivermos um grande conjunto de dados. É por isso que faz sentido considerar mais algumas opções para trabalhar com valores em falta.
Se o atributo em falta for numérico, por exemplo, a distância ao aeroporto ou a altura do jogador, podemos substituir os valores em falta pelo valor médio dos valores conhecidos. O argumento que temos para essa escolha é que usaremos as informações que já existem no conjunto de dados e que não mudaremos muito sobre algumas outras propriedades de atributo. Por outro lado, se estivermos a falar de atributos categóricos, como a cor do carro ou o país de fabrico, que podem ter um conjunto finito de valores, podemos substituir o valor em falta pelo valor mais comum. Outra opção que é válida para atributos numéricos e categóricos é o uso de valores aleatórios - para que possamos substituir a cor ausente por uma cor aleatória de um possível conjunto de cores, e a altura ausente de um jogador com um valor da faixa da menor e maior altura no conjunto. Em todos os casos, devemos ter cuidado porque as mudanças nos dados podem afetar o sucesso do modelo e os resultados que obtemos. Também é muito importante em que momento fazemos esses reparos. Falaremos sobre isso mais adiante.
Duplicados
A presença de duplicatas no conjunto de dados pode afetar o poder de generalização do modelo. É por isso que é sempre conveniente verificar se existem dados repetidos ou muito semelhantes. Quando se trata de dados tabulares, duplicatas podem ser encontradas comparando diretamente os valores dos atributos. Ao trabalhar com diferentes tipos de dados, geralmente precisamos de técnicas mais avançadas. Por exemplo, imagens duplicadas podem ser simétricas, como em um espelho, horizontal ou verticalmente. O mesmo acontece com os dados textuais. Duas notícias podem conter o mesmo anúncio (relatado por algumas agências de notícias) com manchetes ligeiramente diferentes, portanto, em termos de comparação direta de caracteres, elas são diferentes, mas iguais.
Detectar exceções
Perceber dados que são de alguma forma diferentes dos demais nos permite detectar erros nos dados ou descobrir novos comportamentos atípicos. Esses dados são chamados de exceções ou valores atípicos. A distância do aeroporto, que é de -1,2 km, seria um número de discrepância, porque esperamos que a distância seja um valor positivo. Dessa forma, poderíamos detectar o erro e corrigi-lo. Por outro lado, uma temperatura de 45 °C é também um valor invulgar, mas real devido às alterações climáticas e talvez muito útil como informação para tomar certas medidas e ações.

Representação gráfica da discrepância
As discrepâncias também podem afetar o resultado dos algoritmos de aprendizado de máquina. É por isso que, uma vez detectados e processados, é importante decidir se devem ser mantidos ou eliminados.
Correlação de atributos
Os atributos podem estar relacionados entre si. Podemos observar essa relação se desenharmos um gráfico com o valor de um atributo no eixo x e o valor de outro atributo no eixo y. Por exemplo, podemos analisar pares de atributos como a temperatura exterior e o número de gelados vendidos, a temperatura exterior e o consumo de eletricidade, e a temperatura exterior e o número de livros na biblioteca. Cada um destes pares corresponde a um gráfico, como na figura abaixo.
Podemos notar que o aumento da temperatura está acompanhado por um aumento no número de gelados vendidos. Quando o aumento no valor de um atributo é acompanhado pelo aumento no valor do outro, dizemos que estes estão positivamente correlacionados. No gráfico, podemos ainda observar que esta dependência é linear, ou seja, segue uma linha imaginária que atravessa o conjunto de pontos.
Por outro lado, a relação entre a temperatura exterior e o consumo de eletricidade é diferente: a diminuição da temperatura está associada a um aumento do consumo de eletricidade, provavelmente devido ao uso de aquecedores. Atributos em que o aumento de um valor corresponde à diminuição do outro são ditos estar negativamente correlacionados. A partir do gráfico, concluímos novamente que este tipo de correlação é linear.
O terceiro gráfico, que relaciona a temperatura exterior com o número de livros na biblioteca, não indica qualquer regularidade óbvia entre os atributos. Podemos concluir que estes atributos não estão linearmente correlacionados.

Gráficos de associação de atributos
Para medir a relação linear de atributos, também podemos usar diferentes tipos de coeficientes que são estabelecidos no domínio da estatística matemática. Um desses coeficientes é o coeficiente de correlação de Pearson. Seus valores variam de -1 a 1 e indicam a direção e a força da conexão. Valores de coeficiente mais próximos de -1 indicam correlação negativa, valores de coeficiente mais próximos de 1 indicam correlação positiva e valores em torno de zero indicam ausência de correlação linear.
É comum que os valores dos coeficientes de correlação entre atributos sejam exibidos graficamente na forma do chamado mapa de calor. Cada quadrado neste mapa corresponde a um par de atributos e sua cor é ajustada ao valor do coeficiente de correlação. A coluna localizada na lateral deste mapa conecta os valores e tons de cores. Ao observar este mapa, podemos facilmente ver as correlações nos dados. A figura abaixo mostra os pares de atributos de um conjunto de dados que combina informações sobre os funcionários. Apesar de sabermos pouco sobre este conjunto, podemos concluir que a experiência e o número de anos (atributo idade) acompanham melhor os valores salariais. Também podemos ver que existe uma correlação entre o número de anos (o atributo idade) e o atributo experiência.

Mapa de calor com valores do coeficiente de correlação
Identificar os atributos que estão relacionados permite-nos, em primeiro lugar, compreender melhor o domínio a que os dados se referem. Algumas conexões podem ser esperadas, enquanto outras podem nos trazer novos conhecimentos. Ao excluir atributos vinculados, podemos reduzir a dimensionalidade do conjunto de dados. Desta forma, podemos acelerar o trabalho de alguns algoritmos e entender os resultados com mais facilidade. Há também algoritmos de aprendizado de máquina que não se comportam bem se houver associações no conjunto de dados - excluir atributos aos quais isso se aplica pode melhorar o sucesso do algoritmo.
Esta lição é emparelhada com o caderno Jupyter 03-exploratory-data-analysis.ipynb . Se quiser praticar as tarefas que descrevemos, clique no link e, em seguida, no botão para abrir o conteúdo no ambiente do Google Colab. Se visualizar os blocos de notas na sua máquina local, localize o bloco de notas com o mesmo nome entre os conteúdos e execute-o. Para obter instruções mais detalhadas, consulte a seção Zona prática e os cadernos de exercícios Jupyter da lição.
No caderno Jupyter, utilizando as funções da biblioteca Pandas, foram analisados os dados do conjunto Titanic. Este conjunto contém informações sobre os passageiros que estavam no famoso navio Titanic quando, em 1912, navegando no Oceano Atlântico, atingiu um iceberg e naufragou.