Analisar e visualizar - Amazon SageMaker

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Analisar e visualizar

O Amazon SageMaker Data Wrangler inclui análises integradas que ajudam você a gerar visualizações e análises de dados com apenas alguns cliques. Você também pode criar análises personalizadas usando seu próprio código.

Você adiciona uma análise a um quadro de dados selecionando uma etapa em seu fluxo de dados e, em seguida, escolhendo Adicionar análise. Para acessar uma análise que você criou, selecione a etapa que contém a análise e selecione a análise.

Todas as análises são geradas usando 100.000 linhas do seu conjunto de dados.

Você pode adicionar a seguinte análise a um quadro de dados:

  • Visualizações de dados, incluindo histogramas e gráficos de dispersão.

  • Um resumo rápido do seu conjunto de dados, incluindo número de entradas, valores mínimos e máximos (para dados numéricos) e categorias mais e menos frequentes (para dados categóricos).

  • Um modelo rápido do conjunto de dados, que pode ser usado para gerar uma pontuação de importância para cada recurso.

  • Um relatório de vazamento de destino, que você pode usar para determinar se um ou mais recursos estão fortemente correlacionadas com seu recurso de destino.

  • Uma visualização personalizada usando seu próprio código.

Use as seguintes seções para saber mais sobre essas opções.

Histograma

Use histogramas para ver as contagens dos valores de um recurso específico. Você pode inspecionar as relações entre os recursos usando a opção Colorir por. Por exemplo, o histograma a seguir mostra a distribuição das avaliações dos usuários dos livros mais vendidos na Amazon de 2009 a 2019, coloridos por gênero.

Exemplo de gráfico de histograma no console do Data Wrangler.

Você pode usar o recurso Facet by para criar histogramas de uma coluna, para cada valor em outra coluna. Por exemplo, o diagrama a seguir mostra histogramas das análises de usuários dos livros mais vendidos na Amazon, organizados por ano.

Exemplos de histogramas no console do Data Wrangler.

Gráfico de dispersão

Use o recurso Gráfico de dispersão para inspecionar a relação entre os recursos. Para criar um gráfico de dispersão, selecione um recurso para plotar no eixo X e no eixo Y. Ambas as colunas devem ser colunas de tipo numérico.

Você pode colorir gráficos de dispersão usando uma coluna adicional. Por exemplo, o exemplo a seguir exibe um gráfico de dispersão que compara o número de análises em relação às análises dos usuários dos livros mais vendidos na Amazon entre 2009 e 2019. O gráfico de dispersão é colorido por gênero de livro.

Exemplo de gráfico de dispersão no console do Data Wrangler.

Além disso, você pode facetar gráficos de dispersão por recursos. Por exemplo, a imagem a seguir mostra um exemplo do mesmo gráfico de dispersão de análises versus análises de usuários, facetado por ano.

Exemplo de gráfico de dispersão facetado no console do Data Wrangler.

Resumo da tabela

Use a análise de Resumo da tabela para resumir rapidamente seus dados.

Para colunas com dados numéricos, incluindo dados de log e flutuantes, um resumo da tabela relata o número de entradas (contagem), mínimo (mínimo), máximo (máximo), média e desvio padrão (stddev) para cada coluna.

Para colunas com dados não numéricos, incluindo colunas com dados de string, booleanos ou de data/hora, um resumo da tabela relata o número de entradas (contagem), o valor menos frequente (mínimo) e o valor mais frequente (máximo).

Modelo rápido

Use a visualização do Modelo rápidol para avaliar rapidamente seus dados e produzir pontuações de importância para cada recurso. Uma pontuação de importância de um recurso indica a utilidade de um recurso na previsão de um rótulo de destino. A pontuação de importância do recurso está entre [0, 1] e um número maior indica que o recurso é mais importante para todo o conjunto de dados. Na parte superior do gráfico rápido do modelo, há uma pontuação do modelo. Um problema de classificação mostra uma pontuação na F1. Um problema de regressão tem uma pontuação média de erro quadrático (MSE).

Ao criar um gráfico de modelo rápido, você seleciona um conjunto de dados que deseja avaliar e um rótulo de destino com o qual deseja comparar a importância do recurso. O Data Wrangler faz o seguinte:

  • Infere os tipos de dados para o rótulo de destino e cada recurso no conjunto de dados selecionado.

  • Determina o tipo de problema. Com base no número de valores distintos na coluna do rótulo, o Data Wrangler determina se esse é um tipo de problema de regressão ou classificação. O Data Wrangler define um limite categórico para 100. Se houver mais de 100 valores distintos na coluna do rótulo, o Data Wrangler o classifica como um problema de regressão; caso contrário, ele é classificado como um problema de classificação.

  • Pré-processa os recursos e os dados de rótulos para treinamento. O algoritmo usado requer recursos de codificação para tipo vetorial e rótulos de codificação para tipo duplo.

  • Treina um algoritmo de floresta aleatório com 70% dos dados. O Spark's RandomForestRegressoré usado para treinar um modelo para problemas de regressão. O RandomForestClassifieré usado para treinar um modelo para problemas de classificação.

  • Avalia um modelo de floresta aleatória com os 30% restantes dos dados. O Data Wrangler avalia modelos de classificação usando uma pontuação F1 e avalia modelos de regressão usando uma pontuação. MSE

  • Calcula a importância do recurso para cada recurso usando o método de importância de Gini.

A imagem a seguir mostra a interface de usuário do recurso de modelo rápido.

Exemplo de interface do usuário do recurso de modelo rápido no console do Data Wrangler.

Vazamento do destino

O vazamento de destino ocorre quando há dados em um conjunto de dados de treinamento de machine learning que estão fortemente correlacionados com o rótulo de destino, mas não estão disponíveis em dados do mundo real. Por exemplo, você pode ter uma coluna em seu conjunto de dados que serve como proxy para a coluna que você deseja prever com seu modelo.

Ao usar a análise Vazamento do destino, você especifica o seguinte:

  • Destino: esse é o recurso sobre o qual você deseja que seu modelo de ML seja capaz de fazer previsões.

  • Tipo de problema: esse é o tipo de problema de ML no qual você está processando. O tipo de problema pode ser classificação ou regressão.

  • (Opcional) Máximo de recursos: esse é o número máximo de recursos a serem apresentados na visualização, que mostra os recursos classificados de acordo com o risco de serem vazamentos de destino.

Para classificação, a análise de vazamento alvo usa a área sob a característica de operação do receptor, ou ROC curva AUC - para cada coluna, até as características máximas. Para regressão, ele usa um coeficiente de determinação ou métrica R2.

A ROC curva AUC - fornece uma métrica preditiva, calculada individualmente para cada coluna usando validação cruzada, em uma amostra de até cerca de 1000 linhas. Uma pontuação de 1 indica habilidades preditivas perfeitas, o que geralmente indica vazamento do destino. Uma pontuação de 0,5 ou menos indica que as informações na coluna não poderiam fornecer, por si só, nenhuma informação útil para prever o destino. Embora seja possível que uma coluna seja pouco informativa por si só, mas seja útil na previsão do destino quando usada em conjunto com outras características, uma pontuação baixa pode indicar que o recurso é redundante.

Por exemplo, a imagem a seguir mostra um relatório de vazamento destino para um problema de classificação de diabetes, ou seja, prever se uma pessoa tem diabetes ou não. Uma ROC curva AUC - é usada para calcular a capacidade preditiva de cinco características, e todas são determinadas como protegidas contra vazamentos no alvo.

Exemplo de relatório de vazamento de alvos no console do Data Wrangler.

Multicolinearidade

A multicolinearidade é uma circunstância em que duas ou mais variáveis preditoras estão relacionadas entre si. As variáveis preditoras são os recursos do seu conjunto de dados que você está usando para prever uma variável destino. Quando você tem multicolinearidade, as variáveis preditoras não são apenas preditivas da variável destino, mas também preditivas umas das outras.

Você pode usar o Fator de Inflação de Variância (VIF), a Análise de Componentes Principais (PCA) ou a seleção do recurso Lasso como medidas para a multicolinearidade em seus dados. Para obter mais informações, consulte.

Variance Inflation Factor (VIF)

O fator de inflação de variância (VIF) é uma medida de colinearidade entre pares de variáveis. O Data Wrangler retorna uma VIF pontuação como uma medida de quão estreitamente as variáveis estão relacionadas entre si. Uma VIF pontuação é um número positivo maior ou igual a 1.

Uma pontuação de 1 significa que a variável não está correlacionada com as outras variáveis. Pontuações maiores que 1 indicam maior correlação.

Teoricamente, você pode ter uma VIF pontuação com um valor infinito. O Data Wrangler reduz as pontuações mais altas para 50. Se você tiver uma VIF pontuação maior que 50, o Data Wrangler define a pontuação como 50.

Você pode usar as seguintes diretrizes para interpretar suas VIF pontuações:

  • Uma VIF pontuação menor ou igual a 5 indica que as variáveis estão moderadamente correlacionadas com as outras variáveis.

  • Uma VIF pontuação maior ou igual a 5 indica que as variáveis estão altamente correlacionadas com as outras variáveis.

Principle Component Analysis (PCA)

A Análise de Componentes Principais (PCA) mede a variância dos dados em diferentes direções no espaço de recursos. O espaço de recursos consiste em todas as variáveis preditoras que você usa para prever a variável destino em seu conjunto de dados.

Por exemplo, se você está tentando prever quem sobreviveu no RMSTitanic depois que ele atingiu um iceberg, seu espaço especial pode incluir a idade, o sexo e a tarifa que os passageiros pagaram.

A partir do espaço de recursos, PCA gera uma lista ordenada de variações. Essas variações também são conhecidas como valores singulares. Os valores na lista de variâncias são maiores ou iguais a 0. Podemos usá-los para determinar quanta multicolinearidade existe em nossos dados.

Quando os números são aproximadamente uniformes, os dados têm pouquíssimas instâncias de multicolinearidade. Quando há muita variabilidade entre os valores, temos muitos exemplos de multicolinearidade. Antes de ser executadoPCA, o Data Wrangler normaliza cada recurso para ter uma média de 0 e um desvio padrão de 1.

nota

PCAnesta circunstância também pode ser referida como Decomposição de Valor Singular ()SVD.

Lasso feature selection

A seleção de recursos do Lasso usa a técnica de regularização L1 para incluir apenas os recursos mais preditivos em seu conjunto de dados.

Tanto para classificação quanto para regressão, a técnica de regularização gera um coeficiente para cada recurso. O valor absoluto do coeficiente fornece uma pontuação de importância para o recurso. Uma pontuação de importância mais alta indica que é mais preditiva da variável-destino. Um método comum de seleção de características é utilizar todas as características que têm um coeficiente lasso não nulo.

Detectar anomalias em dados de séries temporais

Você pode usar a visualização de detecção de anomalias para ver valores discrepantes em seus dados de séries temporais. Para entender o que determina uma anomalia, você precisa entender que decompomos a série temporal em um termo previsto e um termo de erro. Tratamos a sazonalidade e a tendência da série temporal como o termo previsto. Tratamos os resíduos como o termo de erro.

Para o termo de erro, você especifica um limite como o número de desvios padrão que o resíduo pode afastar da média para que seja considerado uma anomalia. Por exemplo, é possível especificar um limite como sendo 3 desvios padrão. Qualquer resíduo maior que 3 desvios padrão da média é uma anomalia.

Você pode usar o procedimento a seguir para realizar uma análise de detecção de anomalias.

  1. Abra seu fluxo de dados do Data Wrangler.

  2. No seu fluxo de dados, em Tipos de dados, escolha o + e selecione Adicionar análise.

  3. Para Tipo de análise, escolha Séries temporais.

  4. Para Visualização, escolha Detecção de anomalias.

  5. Em Limite de anomalia, escolha o limite em que um valor é considerado uma anomalia.

  6. Escolha Visualizar para gerar uma visualização prévia da análise.

  7. Escolha Adicionar para adicionar a transformação ao fluxo de dados do Data Wrangler.

Decomposição de tendências sazonais em dados de séries temporais

Você pode determinar se há sazonalidade em seus dados de séries temporais usando a visualização de Decomposição de tendências sazonais. Usamos o método STL (usando decomposição de tendência sazonalLOESS) para realizar a decomposição. Decompomos a série temporal em seus componentes sazonais, de tendência e residuais. A tendência reflete a progressão a longo prazo da série. O componente sazonal é um sinal que se repete em um período de tempo. Depois de remover a tendência e os componentes sazonais da série temporal, você tem o resíduo.

Você pode usar o procedimento a seguir para realizar uma análise de decomposição de tendência sazonal.

  1. Abra seu fluxo de dados do Data Wrangler.

  2. No seu fluxo de dados, em Tipos de dados, escolha o + e selecione Adicionar análise.

  3. Para Tipo de análise, escolha Séries temporais.

  4. Para Visualização, escolha Decomposição de tendências sazonais.

  5. Em Limite de anomalia, escolha o limite em que um valor é considerado uma anomalia.

  6. Escolha Visualizar para gerar uma visualização prévia da análise.

  7. Escolha Adicionar para adicionar a transformação ao fluxo de dados do Data Wrangler.

Relatório de viés

Você pode usar o relatório de viés no Data Wrangler para descobrir possíveis vieses em seus dados. Para gerar um relatório de viés, você deve especificar a coluna de destino, ou Rótulo, que você deseja prever e uma Faceta, ou a coluna que você deseja inspecionar quanto a vieses.

Rótulo: o recurso sobre o qual você deseja que um modelo faça previsões. Por exemplo, se você estiver prevendo a conversão do cliente, poderá selecionar uma coluna contendo dados sobre se um cliente fez ou não um pedido. Você também deve especificar se esse recurso é um rótulo ou um limite. Se você especificar um rótulo, deverá especificar a aparência de um resultado positivo em seus dados. No exemplo de conversão do cliente, um resultado positivo pode ser 1 na coluna de pedidos, representando o resultado positivo de um cliente que fez um pedido nos últimos três meses. Se você especificar um limite, é necessário também especificar um limite inferior que define um resultado positivo. Por exemplo, se as colunas de pedidos do cliente contiverem o número de pedidos feitos no último ano, talvez você queira especificar 1.

Faceta: a coluna que você deseja inspecionar em busca de vieses. Por exemplo, se você está tentando prever a conversão de clientes, a sua faceta pode ser a idade do cliente. Você pode escolher essa faceta porque acredita que seus dados são tendenciosos para uma determinada faixa etária. Você deve identificar se a faceta é medida como um valor ou limite. Por exemplo, se você quiser inspecionar uma ou mais idades específicas, selecione Valor e especifique essas idades. Se você deseja analisar um grupo etário específico, você seleciona o Limite e especifica o limite de idades que deseja inspecionar.

Depois de selecionar seu recurso e rótulo, você seleciona os tipos de métricas de viés que deseja calcular.

Para saber mais, consulte Gerar relatórios de parcialidade nos dados de pré-treinamento.

Criar visualizações personalizadas

Você pode adicionar uma análise ao seu fluxo do Data Wrangler para criar uma visualização personalizada. Seu conjunto de dados, com todas as transformações que você aplicou, está disponível como Pandas. DataFrame O Data Wrangler usa a variável df para armazenar o quadro de dados. Você acessa o quadro de dados chamando a variável.

Você deve fornecer a variável de saída, chart, para armazenar um gráfico de saída do Altair. Por exemplo, você pode usar o seguinte bloco de código para criar um histograma personalizado usando o conjunto de dados do Titanic.

import altair as alt df = df.iloc[:30] df = df.rename(columns={"Age": "value"}) df = df.assign(count=df.groupby('value').value.transform('count')) df = df[["value", "count"]] base = alt.Chart(df) bar = base.mark_bar().encode(x=alt.X('value', bin=True, axis=None), y=alt.Y('count')) rule = base.mark_rule(color='red').encode( x='mean(value):Q', size=alt.value(5)) chart = bar + rule
Para criar uma visualização personalizada:
  1. Ao lado do nó que contém a transformação que você gostaria de visualizar, escolha o +.

  2. Escolha Adicionar análise.

  3. Em Tipo de análise, escolha Visualização personalizada.

  4. Em Nome da análise, especifique um nome.

  5. Insira seu código na caixa do código.

  6. Escolha Visualizar para visualizar sua visualização.

  7. Escolha Salvar para adicionar sua visualização.

Exemplo de como adicionar sua visualização no console do Data Wrangler.

Se você não souber como usar o pacote de visualização Altair em Python, você pode usar trechos de código personalizados para ajudá-lo a começar.

Data Wrangler possui uma coleção pesquisável de trechos de código de visualização. Para usar um trecho de visualização, escolha Pesquisar trechos de exemplo e especifique uma consulta na barra de pesquisa.

O exemplo a seguir usa o trecho de código para um gráfico de dispersão com bins. Traça um histograma para 2 dimensões.

Os trechos de código possuem comentários para ajudar você a entender as alterações que precisa fazer no código. Normalmente, é necessário especificar os nomes das colunas do seu conjunto de dados no código.

import altair as alt # Specify the number of top rows for plotting rows_number = 1000 df = df.head(rows_number) # You can also choose bottom rows or randomly sampled rows # df = df.tail(rows_number) # df = df.sample(rows_number) chart = ( alt.Chart(df) .mark_circle() .encode( # Specify the column names for binning and number of bins for X and Y axis x=alt.X("col1:Q", bin=alt.Bin(maxbins=20)), y=alt.Y("col2:Q", bin=alt.Bin(maxbins=20)), size="count()", ) ) # :Q specifies that label column has quantitative type. # For more details on Altair typing refer to # https://altair-viz.github.io/user_guide/encoding.html#encoding-data-types