
Muitas vezes, os dados precisam ser comparados. Por exemplo, temos várias séries de dados de alguma área da atividade humana (indústria, medicina, governo, ...), e queremos comparar o quão semelhantes são ou, inversamente, como alguns indicadores se destacam em comparação com outros. Para facilitar a percepção, vamos pegar dados mais simples, universais e neutros - a altura na cernelha e o peso de várias raças de cães de acordo com o American Kennel Club. Os dados de tamanho médio de rocha podem ser encontrados aqui... Adicione a isso a função random.uniform da biblioteca numpy do Python, converta polegadas em centímetros e libras em quilogramas, e agora temos um conjunto de dados de aparência realista de tamanhos de cães para várias raças trabalharem. Em nosso exemplo, são Chihuahuas, Biglies, Rottweilers e Setters ingleses.

Um analista que você pode usar para comparar essas 4 séries de números é olhar para sua mediana. Ele divide a série de dados em duas partes: metade dos valores são menores que a mediana e a outra metade são maiores. Encontramos os valores medianos agrupando pela coluna de raça usando a biblioteca de pandas e aplicando a função mediana aos dados agrupados. Da mesma forma, você pode olhar para outras estatísticas: média (média) e modo (modo).
Vemos que metade dos chihuahuas que encontramos tem altura na cernelha não superior a 18 cm, o beagle é muito mais alto - na região de 41 cm, e os próximos em tamanho são o rottweiler e o setter inglês, que diferem ligeiramente em altura: 58 e 63 cm.

Figura 2. Mediana cernelha valores de altura para quatro raças de cães.
Mas apenas uma mediana não é suficiente para a análise comparativa dos dados. Você pode obter mais informações olhando para uma ferramenta como um gráfico de caixa e bigodes usando a biblioteca de plotagem de origem marinha do Python. A linha dentro da caixa é a mediana familiar. Seu nível no gráfico à direita (ver Figura 3) coincide com a altura da coluna correspondente à esquerda. Mas, ao mesmo tempo, o gráfico de balanço contém informações adicionais sobre como os dados são distribuídos dentro da linha: a borda inferior do retângulo (caixa) é o primeiro quartil (o valor excede 25% dos valores da série), e a borda superior é o terceiro quartil (o valor excede 75% dos valores ) E esses próprios "bigodes" são segmentos,estendendo-se para cima e para baixo a partir do meio do retângulo são plotados com base no intervalo interquartil e denotam os limites superior e inferior da parte significativa de nossos dados, excluindo outliers. Não há emissões aqui (não encontramos distróficos e cães gigantes), se houvesse seriam exibidas como marcas fora do "bigode".

Figura 3. Comparação de gráficos de barras e intervalos plotados para o mesmo conjunto de dados.
O enredo de violino da mesma biblioteca marítima nos dá ainda mais insights sobre a estrutura dos dados em questão. A Figura 4 abaixo mostra todos os três gráficos, onde as rochas estão na mesma ordem todas as vezes, e a cor da linha correspondente é preservada.

Figura 4. Comparação do gráfico de barra, balanço e violino plotado para o mesmo conjunto de dados.
Por exemplo, os dados de Rottweiler são mostrados em verde.
As semelhanças e diferenças entre o diagrama de amplitude (caixa com bigode) e o gráfico do violino são mostradas na seguinte Figura 5. Primeiro, as semelhanças: (1) ambos os gráficos de uma forma ou de outra representam 0,25-quantil, 0,5-quantil (mediana) e 0,75-quantil; (2) lá e lá estão os valores extremos, que estão próximos do valor de um intervalo interquartil e meio (IQR), plotados a partir das bordas inferior e superior da caixa - o próprio "bigode" para o diagrama de balanço, fora do qual existem "valores discrepantes".
A diferença é que o gráfico do violino também contém informações sobre como os dados são distribuídos internamente. os limites do “violino” construído são a densidade de distribuição girada em 90 graus. E neste caso, ao analisar o gráfico, temos muito mais informações: além dos quantis e valores que descrevem as 4 distâncias interquartis (1,5 + 1 + 1,5) no gráfico do violino, você pode ver se os dados estão uniformemente distribuídos ou se existem vários centros onde os valores são mais frequentemente.

Figura 5. Explicações sobre a correspondência dos elementos dos dois gráficos: span e violino.
Essa ideia pode ser vista mais claramente no gráfico a seguir (Figura 6), onde os dados para os dois grupos de Rottweilers diferem, mas são selecionados de forma que as medianas coincidam (o gráfico mais à esquerda) e ainda mais - os diagramas de swing (no centro) também coincidem! E apenas o gráfico do violino (extrema direita) nos mostra que, de fato, a estrutura de dados é significativamente diferente.

Figura 6. Um exemplo onde apenas o gráfico do violino nos permite ver as diferenças na estrutura interna dos dados em consideração.
Usando o agrupamento K-Means (cluster.KMeans) do módulo sklearn, podemos representar visualmente os dados agrupados traçando um gráfico de dispersão usando a função de gráfico de dispersão do módulo marinho. Aqui, a cor separa um cluster, criado pelo algoritmo ML, de outro, e a forma do marcador mostra o original pertencente a um determinado grupo. Não houve necessidade de reduzir a dimensão usando PCA ou qualquer outro método, porque os dados são originalmente 2D.

Código para agrupamento e plotagem de dispersão:


Assim, utilizando o exemplo de dados de altura na cernelha de várias raças de cães, conhecemos algumas características estatísticas das séries numéricas e as ferramentas para a sua visualização. Uma ferramenta simples fornece uma métrica clara, mas não fornece uma imagem completa. Ferramentas mais sofisticadas fornecem uma imagem mais aprofundada dos dados, mas também são mais difíceis de perceber devido ao aumento na quantidade de informações no gráfico. E aqui é importante escolher uma ferramenta para uma tarefa específica, a fim de encontrar um equilíbrio entre a completude de informações necessária e a facilidade de sua percepção no gráfico.