Limpar Dados em Falta

Especifica como lidar com os valores em falta de um conjunto de dados

Categoria: Transformação de Dados / Manipulação

Nota

Aplica-se a: Machine Learning Studio (clássico)

Este conteúdo diz respeito apenas ao Studio (clássico). Módulos semelhantes de arrasto e queda foram adicionados ao designer de Aprendizagem automática Azure. Saiba mais neste artigo comparando as duas versões.

Visão geral do módulo

Este artigo descreve como utilizar o módulo de dados em falta no Azure Machine Learning Studio (clássico), para remover, substituir ou inferir valores em falta.

Os cientistas de dados geralmente verificam dados por valores em falta e, em seguida, realizam várias operações para corrigir os dados ou inserir novos valores. O objetivo destas operações de limpeza é prevenir problemas causados pela falta de dados que possam surgir na formação de um modelo.

Este módulo suporta vários tipos de operações para "limpar" valores em falta, incluindo:

  • Substituição dos valores em falta por um espaço reservado, médio ou outro valor
  • Removendo completamente as linhas e colunas que têm valores em falta
  • Inferir valores baseados em métodos estatísticos

Dica

Novo em aprendizagem automática? Este artigo fornece uma boa explicação do porquê de usar cada um dos diferentes métodos para substituir valores em falta: Métodos para lidar com valores em falta

A utilização deste módulo não altera o conjunto de dados de origem. Em vez disso, cria um novo conjunto de dados no seu espaço de trabalho que pode utilizar no fluxo de trabalho subsequente. Também pode guardar o novo conjunto de dados limpo para reutilização.

Este módulo também produz uma definição da transformação usada para limpar os valores em falta. Pode reutilizar esta transformação em outros conjuntos de dados que tenham o mesmo esquema, utilizando o módulo De Transformação De Aplicação.

Como utilizar dados em falta de limpeza

Este módulo permite definir uma operação de limpeza. Também pode guardar a operação de limpeza para que possa aplicá-la mais tarde a novos dados. Consulte os seguintes links para uma descrição de como criar e guardar um processo de limpeza:

Importante

O método de limpeza que utiliza para manusear valores em falta pode afetar drasticamente os seus resultados. Recomendamos que experimente diferentes métodos. Considere tanto a justificação para a utilização de um determinado método, como a qualidade dos resultados.

Substituir valores em falta

Cada vez que aplica o módulo De Dados Desaparecidos Limpos a um conjunto de dados, a mesma operação de limpeza é aplicada a todas as colunas que seleciona. Portanto, se precisar de limpar diferentes colunas utilizando diferentes métodos, utilize instâncias separadas do módulo.

  1. Adicione o módulo de dados em falta à sua experiência e conecte o conjunto de dados que tem valores em falta.

  2. Para que as colunas sejam limpas, escolha as colunas que contêm os valores em falta que pretende alterar. Pode escolher várias colunas, mas deve utilizar o mesmo método de substituição em todas as colunas selecionadas. Portanto, normalmente é necessário limpar as colunas de cordas e colunas numéricas separadamente.

    Por exemplo, para verificar se há valores em falta em todas as colunas numéricas:

    1. Abra o Seletor de Colunas e selecione COM REGRAS.

    2. Para começar com, selecione NO COLUMNS.

      Também pode começar com TODAS AS COLUNAS e, em seguida, excluir colunas. Inicialmente, as regras não são mostradas se clicar primeiro em TODAS AS COLUNAS, mas pode clicar em COLUNAS E, em seguida, clicar em TODAS AS COLUNAS novamente para começar com todas as colunas e, em seguida, filtrar colunas (excluir) com base no nome, tipo de dados ou índice de colunas.

    3. Para incluir, selecione o tipo de coluna da lista de dropdown e, em seguida, selecione Numérico, ou um tipo numérico mais específico.

    Qualquer método de limpeza ou substituição que escolha deve ser aplicável a todas as colunas da seleção. Se os dados em qualquer coluna forem incompatíveis com a operação especificada, o módulo retorna um erro e para a experiência.

  3. Para o rácio de valor em falta mínimo, especifique o número mínimo de valores em falta necessários para a operação a realizar.

    Utilize esta opção em combinação com o rácio de valor máximo em falta para definir as condições em que uma operação de limpeza é realizada no conjunto de dados. Se houver demasiadas ou poucas linhas que faltam valores, a operação não pode ser executada.

    O número que introduz representa o rácio de valores em falta para todos os valores da coluna. Por predefinição, a propriedade de rácio de valor mínimo em falta está definida para 0. Isto significa que os valores em falta são limpos mesmo que haja apenas um valor em falta. Para um exemplo de como utilizar esta opção, consulte a Definição de um limiar para operações de limpeza.

    Aviso

    Esta condição deve ser cumprida por cada coluna para que a operação especificada se aplique. Por exemplo, assuma que selecionou três colunas e depois definirá o rácio mínimo de valores em falta para 0,2 (20%), mas apenas uma coluna tem 20% de valores em falta. Neste caso, a operação de limpeza aplicar-se-ia apenas à coluna com valores mais de 20% em falta. Portanto, as outras colunas seriam inalteradas.

    Se tiver dúvidas sobre se os valores em falta foram alterados, selecione a opção, Gere a coluna indicadora de valor em falta. Uma coluna é anexada ao conjunto de dados para indicar se cada coluna cumpriu ou não os critérios especificados para os intervalos mínimos e máximos.

  4. Para o rácio de valor em falta máximo, especifique o número máximo de valores em falta que podem estar presentes para a operação a realizar.

    Por exemplo, pode querer realizar a substituição de valor em falta apenas se 30% ou menos das linhas contiverem valores em falta, mas deixar os valores como-é se mais de 30% das linhas tiverem valores em falta.

    Define o número como a relação entre valores em falta e todos os valores da coluna. Por predefinição, o rácio de valor em falta máximo é definido para 1. Isto significa que os valores em falta são limpos mesmo que 100% dos valores na coluna estejam em falta.

    Nota

    Quando se estabelece um limiar utilizando as opções Relação de valor em falta mínima ou relação valor máximo em falta, a operação de limpeza não pode ser efetuada se uma das colunas selecionadas não cumprir os critérios.

  5. Para o modo de limpeza, selecione uma das seguintes opções para substituir ou remover valores em falta:

    • Substituir usando MICE: Por cada valor em falta, esta opção atribui um novo valor, que é calculado utilizando um método descrito na literatura estatística como "Imputação Multivariada utilizando Equações Acorrentadas" ou "Imputação Múltipla por Equações Acorrentadas". Com um método de imputação múltipla, cada variável com dados em falta é modelada condicionalmente usando as outras variáveis nos dados antes de preencher os valores em falta. Em contraste, num único método de imputação (como substituir um valor em falta por uma média de coluna) é feito um único passe sobre os dados para determinar o valor de preenchimento.

      Todos os métodos de imputação introduzem algum erro ou enviesamento, mas a imputação múltipla simula melhor o processo gerando os dados e a distribuição de probabilidades dos dados.

      Para uma introdução geral aos métodos de manuseamento de valores em falta, consulte Dados Em Falta: o estado da arte. Schafer e Graham, 2002.

      Aviso

      Esta opção não pode ser aplicada a colunas completamente vazias. Tais colunas devem ser removidas ou passadas para a saída tal como está.

    • Valor de substituição personalizado: Utilize esta opção para especificar um valor reservado (como um 0 ou UM) que se aplique a todos os valores em falta. O valor que especifica como substituição deve ser compatível com o tipo de dados da coluna.

    • Substitua por média: Calcula a média da coluna e utiliza a média como valor de substituição por cada valor em falta na coluna.

      Aplica-se apenas a colunas que tenham tipos de dados Inteiros, Duplos ou Booleanos. Consulte a secção notas técnicas para obter mais informações.

    • Substitua por mediana: Calcula o valor mediano da coluna e utiliza o valor mediano como substituição de qualquer valor em falta na coluna.

      Aplica-se apenas a colunas que tenham tipos de dados Inteiros ou Duplos. Consulte a secção de notas técnicas para obter mais informações.

    • Substitua-o pelo modo: Calcula o modo para a coluna e utiliza o modo como valor de substituição por cada valor em falta na coluna.

      Aplica-se a colunas que tenham tipos de dados Inteiros, Duplos, Boolean ou Categóricos. Consulte a secção notas técnicas para obter mais informações.

    • Remover linha inteira: Remove completamente qualquer linha no conjunto de dados que tenha um ou mais valores em falta. Isto é útil se o valor em falta pode ser considerado aleatoriamente em falta.

    • Remover coluna inteira: Remove completamente qualquer coluna do conjunto de dados que tenha um ou mais valores em falta.

    • Substituir utilizando o PCA Probabilístico: Substitui os valores em falta utilizando um modelo linear que analisa as correlações entre as colunas e estima uma aproximação de baixodimensional dos dados, a partir do qual os dados completos são reconstruídos. A redução da dimensionalidade subjacente é uma forma probabilística de Análise principal de Componentes (APC), e implementa uma variante do modelo proposto no Journal of the Royal Statistics Society, Série B 21(3), 611-622 por Tipping e Bishop.

      Em comparação com outras opções, como a Imputação Múltipla utilizando Equações Acorrentadas (MICE), esta opção tem a vantagem de não exigir a aplicação de preditores para cada coluna. Em vez disso, aproxima-se da covariância para o conjunto completo de dados. Portanto, pode oferecer um melhor desempenho para conjuntos de dados que têm valores em falta em muitas colunas.

      As principais limitações deste método são que expande colunas categóricas em indicadores numéricos e calcula uma densa matriz de covariância dos dados resultantes. Também não está otimizado para representações escassas. Por estas razões, os conjuntos de dados com um grande número de colunas e/ou grandes domínios categóricos (dezenas de milhares) não são suportados devido ao consumo de espaço proibitivo.

      Dica

      Lembre-se que o método escolhido é aplicado a todas as colunas da seleção. Assim, se pretender substituir alguns valores em falta por zeros em algumas colunas, mas inserir um espaço reservado noutras colunas, deverá utilizar Colunas Selecionadas no Conjunto de Dados para separar os dados e utilizar diferentes instâncias do módulo de Dados Desaparecidos Limpos.

  6. A opção O valor de substituição está disponível se tiver selecionado a opção, valor de substituição personalizado. Digite um novo valor a utilizar como valor de substituição para todos os valores em falta na coluna.

    Note que só pode utilizar esta opção em colunas que tenham os tipos de dados Inteiro, Duplo, Boolean ou Date. Para as colunas de data, o valor de substituição também pode ser inscrito como o número de tiques de 100-nanosegundos desde 1/1/0001 12:00 A.M.

  7. Gerar coluna indicadora de valor em falta: Selecione esta opção se pretender obter alguma indicação de se os valores da coluna satisfazem os critérios de limpeza de valor em falta. Esta opção é particularmente útil quando está a preparar uma nova operação de limpeza e pretende certificar-se de que funciona como foi concebido.

  8. Executar a experiência, ou selecione o módulo de dados em falta e clique em Executar selecionado.

Resultados

O módulo devolve duas saídas:

  • Conjunto de dados limpo: Um conjunto de dados composto pelas colunas selecionadas, com valores em falta tratados conforme especificado, juntamente com uma coluna indicadora, se selecionar essa opção.

    As colunas não selecionadas para limpeza também são "passadas".

  • Transformação de limpeza: Uma transformação de dados usada para a limpeza, que pode ser guardada no seu espaço de trabalho e aplicada a novos dados mais tarde.

Aplicar uma operação de limpeza guardada em novos dados

Se precisar de repetir as operações de limpeza com frequência, recomendamos que guarde a sua receita para a limpeza de dados como uma transformação, para reutilizar com o mesmo conjunto de dados. Salvar uma transformação de limpeza é particularmente útil se tiver de re importar frequentemente e, em seguida, limpar dados que têm o mesmo esquema.

  1. Adicione o módulo de Transformação De Aplicar à sua experiência.

  2. Adicione o conjunto de dados que pretende limpar e ligue o conjunto de dados à porta de entrada da mão direita.

  3. Expandir o grupo Transforms no painel esquerdo do Studio (clássico). Localize a transformação salva e arraste-a para a experiência.

  4. Ligue a transformação guardada à porta de entrada esquerda da Apply Transformation.

    Quando se aplica uma transformação salva, não é possível selecionar as colunas às quais a transformação é aplicada. Isto porque a transformação já foi definida e aplica-se automaticamente aos tipos de dados especificados na operação original.

    No entanto, suponha que criou uma transformação num subconjunto de colunas numéricas. Pode aplicar esta transformação a um conjunto de tipos de colunas mistas sem levantar um erro, porque os valores em falta são alterados apenas nas colunas numéricas correspondentes.

  5. Execute a experimentação.

Exemplos

Veja exemplos de como este módulo é utilizado na Galeria Azure AI:

Notas técnicas

Esta secção contém detalhes de implementação, bem como questões conhecidas e perguntas comumente feitas.

  • Ocorre um erro se a opção média ou mediana for utilizada quando forem selecionadas colunas de cordas. Se necessitar de processar colunas de diferentes tipos de dados, crie duas instâncias de Clean Missing Data.

  • Ao substituir os valores em falta por um valor médio em colunas com os tipos de dados Boolean, Inteiro, DateTime ou TimeSpan, a coluna é primeiro convertida em números de ponto flutuantes, a média é calculada e, em seguida, o resultado é arredondado para o valor mais próximo do tipo de dados original.

  • Quando digitar um valor de substituição, o valor deve ser compatível com o tipo de dados na coluna selecionada.

  • Valores de NaN Inf , e são –Inf permitidos para colunas onde o tipo de dados é Duplo.

  • Ao utilizar o método MICE, prevê-se o valor de substituição utilizando o modelo MICE treinado.

  • A utilização de dados em falta de limpeza pode redefinir outros tipos de colunas para funcionalidades. Se os seus dados contiver outros tipos de colunas, tais como etiquetas, utilize metadados de edição para corrigir os tipos de colunas.

Restrições à utilização de transformações de limpeza

As seguintes restrições aplicam-se quando utiliza uma transformação guardada (baseada em dados em falta de limpeza) para novos dados:

  • Uma transformação poupada não pode gerar valores indicadores, mesmo que esta opção tenha sido utilizada na operação de limpeza original. Considere os valores indicadores como mais úteis ao testar uma nova transformação.

  • A transformação não calcula novos valores com base no novo conjunto de dados. Por outras palavras, se usasse dados em falta de limpeza no conjunto de dados A e gerasse um valor médio de 0,5, esse mesmo valor seria aplicado como a média para substituir valores em falta no Conjunto B, independentemente dos valores reais no Conjunto B.

  • O tipo de dados das colunas no novo conjunto de dados deve coincidir com o tipo de dados das colunas em que a transformação foi originalmente criada. Um erro é levantado se alguma operação for realizada na coluna que altere implicitamente o tipo de dados.

    Por exemplo, suponha que cria uma média para uma coluna de dados inteiros [Col1], e salve a transformação. Agora quer aplicar a transformação da limpeza a uma cópia de [Col1] que foi ajustada usando uma fórmula, como ([Col1] /1.5). Para garantir que o resultado é um inteiro, arredonda o resultado, mas ainda assim obtém um erro quando aplica a transformação. No entanto, se ajustar o valor usando uma fórmula como ([Col 1] * 10), não se levantará nenhum erro!

    Para evitar tais problemas, utilize Metadados de Edição para redefinir explicitamente o tipo de dados para inteiro. Em geral, as operações no módulo de operação matemática aplicam implicitamente as colunas numéricas para double .

Definição e interpretação de valores-limiar

Quando se especifica um limiar para as operações de limpeza utilizando as opções Relação de valor em falta mínima ou relação valor máximo em falta, os resultados podem ser inesperados ou confusos. Para ilustrar como funcionam as opções para valores máximos e mínimos em falta, fornecemos alguns exemplos do conjunto de dados da amostra de Preços do Automóvel, que tem muitas colunas com valores em falta.

A tabela seguinte mostra a contagem de valores em falta para várias colunas nesse conjunto de dados, juntamente com a relação de valores em falta calculada no conjunto de dados. O rácio de valores em falta (na coluna mais à direita) é o valor que seria utilizado na avaliação do conjunto de dados em função dos valores limiar especificados.

Assuma que definiu o rácio de valor mínimo em falta para 0,019 e definiu o rácio de valor máximo em falta para 0,020. Tendo em conta a tabela de valores a seguir, algumas colunas cumprem os critérios de limiar, e algumas não:

  • As colunas bore e stroke satisfazem os critérios de limiar.
  • As colunas normalized-losses e compression-ratio não satisfazem os critérios de limiar.
Nome da coluna Contagem dos valores em falta Relação entre os valores em falta
Perdas normalizadas 41 0.2
Bore 4 0.019512195
Acidente vascular cerebral 4 0.019512195
Relação compressão 0 0

Uma vez que algumas colunas da seleção não satisfaziam os critérios especificados, não foi efetuada nenhuma operação de limpeza em nenhuma coluna. Para ajudá-lo a descobrir o que aconteceu, o módulo devolve o valor FALSO nas duas colunas indicadoras bore_IsMissing e stroke_IsMissing .

No entanto, se alterar o limiar de volta para os valores predefinidos de 0 para o rácio de valor mínimo em falta e 1 para o rácio de valor em falta máximo, é devolvida uma coluna indicadora para todas as colunas selecionadas e a operação especificada é executada.

Dica

Se não tiver a certeza se a limpeza de valor em falta está a funcionar como esperado, selecione a opção de coluna indicadora de valor em falta.

Problemas conhecidos

Se utilizar o método MICE para limpar dados e, em seguida, processar um conjunto de dados que contenha valores em falta, poderá obter o seguinte erro: "Exceção da biblioteca da Biblioteca AFx: O modelo não é treinado. (Erro 1000)"

Este erro ocorre apenas quando o método MICE é selecionado, e se o conjunto de dados de treino não conter valores em falta, mas o conjunto de dados de teste sim.

Entradas esperadas

Nome Tipo Descrição
Conjunto de dados Tabela de Dados Conjunto de dados a ser limpo

Parâmetros do módulo

Nome Intervalo Tipo Predefinição Descrição
Colunas a limpar Qualquer Seleção de Colunas Todos Selecione colunas para os valores em falta funcionamento limpo.
Rácio de valor mínimo em falta [0.0;1.0] Float 0,0 Limpe apenas a coluna com relação de valor em falta acima do valor especificado, de um conjunto de todas as colunas selecionadas.
Rácio de valor máximo em falta [0.0;1.0] Float 1,0 Limpe apenas colunas com relação de valor em falta abaixo do valor especificado de um conjunto de todas as colunas selecionadas.
Modo de limpeza Lista Política de manuseamento Valor de substituição personalizado Escolha um algoritmo para utilizar na limpeza dos valores em falta.
Valor de substituição Qualquer String "0" Digite um valor para ocupar o lugar dos valores em falta.

Este valor é opcional.
Cols com todos os valores em falta Qualquer ColunasWithAllValuesMissing Remover Indicar se as colunas de todos os valores em falta devem ser preservadas na saída.
Gerar coluna indicadora de valor em falta Qualquer Booleano false Gere uma coluna que indique quais as linhas limpas.
Número de iterações [1;10] Número inteiro 5 Especifique o número de iterações ao utilizar MICE.
Número de iterações para previsão de APC [1;50] Número inteiro 10 Especificar o número de iterações ao utilizar uma previsão de APC.

Saídas

Nome Tipo Descrição
Conjunto de dados limpo Tabela de Dados Conjunto de dados limpo
Transformação de limpeza Interface ITransform Transformação que deve ser passada para o módulo De Transformação Aplicada para limpar novos dados.

Exceções

Exceção Descrição
Erro 0002 Uma exceção ocorre se um ou mais parâmetros não puderem ser analisados ou convertidos do tipo especificado para o tipo exigido pelo método-alvo.
Erro 0003 Uma exceção ocorre se um ou mais conjuntos de dados de entrada forem nulos ou vazios.
Erro 0008 Uma exceção ocorre se um parâmetro não estiver ao alcance.
Erro 0013 Uma exceção ocorre se o mais magro passado para o módulo tem um tipo inválido.
Erro 0018 Uma exceção ocorre se o conjunto de dados de entrada não for válido.
Erro 0039 Uma exceção ocorre se a operação falhar.

Para obter uma lista de erros específicos dos módulos Studio (clássicos), consulte códigos de erro de aprendizagem automática.

Para obter uma lista de exceções da API, consulte códigos de erro da API de aprendizagem automática.

Ver também

Manipulação
Transformação de Dados
Lista de Módulos A-Z