Limpar dados ausentes
Importante
O suporte para o Machine Learning Studio (clássico) terminará em 31 de agosto de 2024. É recomendável fazer a transição para o Azure Machine Learning até essa data.
A partir de 1º de dezembro de 2021, você não poderá criar recursos do Machine Learning Studio (clássico). Até 31 de agosto de 2024, você pode continuar usando os recursos existentes do Machine Learning Studio (clássico).
- Confira informações sobre como mover projetos de machine learning do ML Studio (clássico) para o Azure Machine Learning.
- Saiba mais sobre o Azure Machine Learning.
A documentação do ML Studio (clássico) está sendo desativada e pode não ser atualizada no futuro.
Especifica como lidar com valores ausentes de um conjunto de dados
Categoria: transformação/manipulação de dados
Observação
aplica-se a: somente Machine Learning Studio (clássico)
Módulos semelhantes do tipo "arrastar e soltar" estão disponíveis no designer do Azure Machine Learning.
Visão geral do módulo
este artigo descreve como usar o módulo limpar dados ausentes no Machine Learning Studio (clássico), para remover, substituir ou inferir valores ausentes.
Os cientistas de dados geralmente verificam os dados em busca de valores ausentes e, em seguida, executam várias operações para corrigir os dados ou inserir novos valores. O objetivo dessas operações de limpeza é evitar problemas causados por dados ausentes que podem surgir durante o treinamento de um modelo.
Este módulo dá suporte a vários tipos de operações para "limpeza" de valores ausentes, incluindo:
- Substituição de valores ausentes por um espaço reservado, média ou outro valor
- Remoção completa de linhas e colunas com valores ausentes
- Inferência de valores com base em métodos estatísticos
Dica
Novo no Machine Learning? Este artigo fornece uma boa explicação de por que você usaria cada um dos diferentes métodos para substituir valores ausentes: métodos para lidar com valores ausentes
O uso desse módulo não altera o conjunto de fonte de origem. Em vez disso, ele cria um novo conjunto de novos conjuntos de espaço de trabalho que você pode usar no workflow subsequente. Você também pode salvar o conjunto de dados novo e limpo para reutilização.
Este módulo também gera uma definição da transformação usada para limpar os valores ausentes. Você pode reutilizar essa transformação em outros conjuntos de dados que têm o mesmo esquema, usando o módulo Aplicar Transformação.
Como usar dados ausentes limpos
Esse módulo permite que você defina uma operação de limpeza. Você também pode salvar a operação de limpeza para que possa aplicá-la posteriormente aos novos dados. Consulte os links a seguir para obter uma descrição de como criar e salvar um processo de limpeza:
Importante
O método de limpeza que você usa para lidar com valores ausentes pode afetar drasticamente os resultados. Recomendamos que você experimente métodos diferentes. Considere a justificativa para uso de um método específico e a qualidade dos resultados.
Substituir valores ausentes
Cada vez que você aplicar o módulo limpar dados ausentes a um conjunto de dados, a mesma operação de limpeza será aplicada a todas as colunas que você selecionar. Portanto, se você precisar limpar colunas diferentes usando métodos diferentes, use instâncias separadas do módulo.
Adicione o módulo limpar dados ausentes ao seu experimento e conecte-o com valores ausentes.
Para as colunas a serem limpas, escolha as colunas que contêm os valores ausentes que você deseja alterar. Você pode escolher várias colunas, mas deve usar o mesmo método de substituição em todas as colunas selecionadas. Portanto, normalmente, você precisa limpar colunas de cadeia de caracteres e colunas numéricas separadamente.
Por exemplo, para verificar se há valores ausentes em todas as colunas numéricas:
Abra o seletor de coluna e selecione com regras.
Para começar com, selecione nenhuma coluna.
Você também pode iniciar com todas as colunas e, em seguida, excluir colunas. Inicialmente, as regras não são mostradas se você clicar primeiro em todas as colunas, mas você pode clicar em nenhuma coluna e, em seguida, clicar em todas as colunas novamente para iniciar com todas as colunas e, em seguida, filtrar (excluir) colunas com base no índice de nome, tipo de dados ou colunas.
Para incluir, selecione tipo de coluna na lista suspensa e, em seguida, selecione numéricoou um tipo numérico mais específico.
Qualquer método de limpeza ou substituição que você escolher deve ser aplicável a todas as colunas na seleção. Se os dados em qualquer coluna forem incompatíveis com a operação especificada, o módulo retornará um erro e interromperá o experimento.
Para Proporção mínima de valor ausente, especifique o número mínimo de valores ausentes necessários para a operação a ser executada.
Use essa opção em combinação com a Proporção máxima de valor ausente para definir as condições sob as quais uma operação de limpeza é executada no conjunto de dados. Se houver excesso ou poucas linhas que não tenham valores, a operação não poderá ser executada.
O número inserido representa a proporção de valores ausentes para todos os valores na coluna. Por padrão, a propriedade proporção mínima de valor ausente está definida como 0. Isso significa que os valores ausentes são limpos mesmo se houver apenas um valor ausente. Para obter um exemplo de como usar essa opção, consulte definindo um limite para operações de limpeza.
Aviso
Essa condição deve ser atendida por cada coluna para que a operação especificada seja aplicada. Por exemplo, suponha que você tenha selecionado três colunas e, em seguida, definiu a taxa mínima de valores ausentes como 0,2 (20%), mas apenas uma coluna tem, na verdade, 20% de valores ausentes. Nesse caso, a operação de limpeza se aplicaria somente à coluna com mais de 20% de valores ausentes. Portanto, as outras colunas ficarão inalteradas.
Se você tiver alguma dúvida sobre se os valores ausentes foram alterados, selecione a opção Gerar coluna de indicador de valores ausentes. Uma coluna é anexada ao conjunto de dados para indicar se cada coluna atende aos critérios especificados para os intervalos mínimo e máximo.
Para obter a taxa máxima de valores ausentes, especifique o número máximo de valores ausentes que podem estar presentes para a operação ser executada.
Por exemplo, talvez você queira executar a substituição de valor ausente somente se 30% ou menos das linhas contiverem valores ausentes, mas deixar os valores como estão se mais de 30% das linhas tiverem valores ausentes.
Você define o número como a proporção de valores ausentes para todos os valores na coluna. Por padrão, a Proporção máxima de valores ausentes é definida como 1. Isso significa que os valores ausentes serão limpos mesmo se 100% dos valores na coluna estiverem ausentes.
Observação
Quando você definir um limite usando a taxa mínima de valores ausentes ou a taxa máxima de valores ausentes, a operação de limpeza não poderá ser executada se nem mesmo uma das colunas selecionadas não atender aos critérios.
Para o modo de limpeza, selecione uma das seguintes opções para substituir ou remover valores ausentes:
Substituir usando o mouse: para cada valor ausente, essa opção atribui um novo valor, que é calculado usando um método descrito na literatura estatística como "MultiVariable imputação usando equações encadeadas" ou "vários imputação por equações encadeadas". Com um método Multiple imputação, cada variável com dados ausentes é modelada condicionalmente usando as outras variáveis nos dados antes de preencher os valores ausentes. Por outro lado, em um único método imputação (como substituir um valor ausente por uma coluna Mean), é feita uma única passagem sobre os dados para determinar o valor de preenchimento.
Todos os métodos imputação introduzem algum erro ou tendência, mas vários imputação simulam melhor o processo que gera os dados e a distribuição de probabilidade dos dados.
Para obter uma introdução geral aos métodos para lidar com valores ausentes, consulte dados ausentes: 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 como estão.
Valor de substituição personalizado: use essa opção para especificar um valor de espaço reservado (como 0 ou ND) que se aplica a todos os valores ausentes. O valor que você especifica como uma substituição deve ser compatível com o tipo de dados da coluna.
Substituir por média: calcula a média da coluna e usa a média como o valor de substituição para cada valor ausente na coluna.
Aplica-se apenas a colunas que tenham tipos de dados Inteiro, Duplo ou Booleano. Consulte a seção observações técnicas para obter mais informações.
Substituir por mediano: calcula o valor mediano da coluna e usa o valor mediano como substituição para qualquer valor ausente na coluna.
Aplica-se apenas a colunas que tenham tipos de dados Inteiro ou Duplo. Consulte a seção observações técnicas para obter mais informações.
Substituir por modo: calcula o modo da coluna e a usa como o valor de substituição para cada valor ausente na coluna.
Aplica-se às colunas que têm tipos de dados Inteiro, Duplo, Booleano ou Categórico. Consulte a seção observações técnicas para obter mais informações.
Remover linha inteira: remove completamente qualquer linha do conjunto de dados que tenha um ou mais valores ausentes. Isso será útil se o valor ausente puder ser considerado como ausente aleatoriamente.
Remover coluna inteira: remove completamente qualquer coluna do conjunto de dados que tenha um ou mais valores ausentes.
Substituir usando o PCA do probabilística: substitui os valores ausentes usando um modelo linear que analisa as correlações entre as colunas e estima uma aproximação de dados de dimensão baixa, da qual os dados completos são reconstruídos. A redução de dimensionalidade subjacente é uma forma probabilística de Análise de Componente Principal (PCA) e implementa uma variante do modelo proposto no diário do Journal of the Royal Statistical Society, Series B 21(3), 611–622 por Tipping e Bishop.
Em comparação com outras opções, como Imputação Múltipla usando Equações Encadeadas (MICE), essa opção tem a vantagem de não exigir aplicativos de previsão para cada coluna. Em vez disso, ela se aproxima a covariância do conjunto de dados completo. Portanto, ele pode oferecer um melhor desempenho para conjuntos de valores que têm valor ausente em muitas colunas.
As principais limitações desse método são que expande colunas categóricas em indicadores numéricos e computa uma matriz de covariância densa dos dados resultantes. Também não é otimizado para representações esparsas. Por esses motivos, não há suporte para conjuntos de dados com um grande número de colunas e/ou domínios categóricos grandes (dezenas de milhares) devido ao consumo de espaço proibitivo.
Dica
Lembre-se de que o método escolhido é aplicado a todas as colunas na seleção. Portanto, se você quiser substituir alguns valores ausentes por zeros em algumas colunas, mas inserir um espaço reservado em outras colunas, você deverá usar selecionar colunas no conjunto de dados para separá-los e usar instâncias diferentes do módulo limpar dados ausentes .
A opção Valor de substituição estará disponível se você tiver selecionado a opção Valor personalizado de substituição. Digite um novo valor a ser usado como o valor de substituição para todos os valores ausentes na coluna.
Observe que você pode usar essa opção somente em colunas que têm os tipos de dados inteiro, duplo, booliano ou data. Para colunas de data, o valor de substituição também poderá ser inserido como o número de tiques de 100 nanossegundos desde 1/1/0001 12:00 AM.
Gerar coluna de indicador de valor ausente: selecione esta opção se desejar gerar uma indicação de que os valores na coluna atendem aos critérios de limpeza de valor ausente. Essa opção é particularmente útil quando você está configurando uma nova operação de limpeza e deseja certificar-se de que ela funciona como projetado.
Execute o experimento ou selecione o módulo limpar dados ausentes e clique em executar selecionado.
Resultados
O módulo retorna duas saídas:
Conjunto de dados limpos: um conjunto de dados composto pelas colunas selecionadas, com valores ausentes manipulados conforme especificado, juntamente com uma coluna de indicador, se você tiver selecionado essa opção.
As colunas não selecionadas para limpeza também são “transmitidas”.
Transformação de limpeza: uma transformação de dados usada para limpeza, que pode ser salva em seu espaço de trabalho e aplicada a novos dados posteriormente.
Aplicar uma operação de limpeza salva a novos dados
Se você precisar repetir as operações de limpeza com frequência, recomendamos que você salve 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 você tiver que reimportar com frequência e limpar dados que têm o mesmo esquema.
Adicione o módulo aplicar transformação ao seu experimento.
Adicione o conjunto de dados que você deseja limpar e conecte o conjunto de dados à porta de entrada direita.
Expanda o grupo transformações no painel esquerdo do estúdio (clássico). Localize a transformação salva e arraste-a para o experimento.
Conecte a transformação salva à porta de entrada esquerda de Aplicar Transformação.
Ao aplicar uma transformação salva, não é possível selecionar as colunas às quais a transformação é aplicada. Isso ocorre porque a transformação já foi definida e se aplica automaticamente aos tipos de dados especificados na operação original.
No entanto, suponha que você tenha criado uma transformação em um subconjunto de colunas numéricas. Você pode aplicar essa transformação a um conjunto de uma série de tipos de coluna mistos sem gerar um erro, pois os valores ausentes são alterados somente nas colunas numéricas correspondentes.
Execute o experimento.
Exemplos
Veja exemplos de como esse módulo é usado no Galeria de ia do Azure:
Previsão do desempenho do aluno: neste exemplo, zeros são inseridos para valores ausentes.
Validação cruzada para exemplo de classificador binário: zeros são usados para preencher valores ausentes e uma coluna de indicador é criada para rastrear as alterações. Colunas com todos os valores ausentes também são retidas.
Processamento e análise de conjuntode dados: neste exemplo, diferentes ramificações do experimento usam métodos diferentes para substituição de valor ausente, e os conjuntos de dados são então avaliados usando dados resumidos e correlação linear de computação.
Exemplo de previsão de atraso de voo: linhas vazias são completamente removidas.
Observações técnicas
Esta seção contém detalhes de implementação, bem como problemas conhecidos e perguntas frequentes.
Ocorrerá um erro se a opção média ou mediana for usada quando as colunas de cadeia de caracteres forem selecionadas. Se você precisar processar colunas de diferentes tipos de dados, crie duas instâncias de Limpar dados ausentes.
Ao substituir valores ausentes por um valor médio em colunas com os tipos de dados booliano, inteiro, DateTime ou TimeSpan, a coluna é primeiro convertida em números de ponto flutuante, a média é calculada e, em seguida, o resultado é arredondado para o valor mais próximo do tipo de dados original.
Quando você digita um valor de substituição, o valor deverá ser compatível com o tipo de dado na coluna selecionada.
Os valores de
NaN
,Inf
e–Inf
são permitidos para colunas em que o tipo de dados é Double.Ao usar o método MICE, o valor de substituição é previsto usando o modelo de MICE treinado.
O uso de dados ausentes limpos pode redefinir outros tipos de coluna para recurso. Se seus dados contiverem outros tipos de colunas, como rótulos, use Editar metadados para corrigir os tipos de coluna.
Restrições no uso de transformações de limpeza
As restrições a seguir se aplicam quando você usa uma transformação salva (com base em limpar dados ausentes) para novos dados:
Uma transformação salva não pode gerar valores de indicador, mesmo que essa opção tenha sido usada na operação de limpeza original. Considere os valores de indicador como mais úteis ao testar uma nova transformação.
A transformação não calcula novos valores com base no novo conjunto de um. Em outras palavras, se você tiver usado limpar dados ausentes no conjunto a e tiver gerado um valor médio de 0,5, esse mesmo valor será aplicado como a média de substituir valores ausentes no conjunto de dados b, independentemente dos valores reais no DataSet b.
O tipo de dados das colunas no novo DataSet deve corresponder ao tipo de dados das colunas nas quais a transformação foi criada originalmente. Um erro será gerado se qualquer operação for executada na coluna que altera implicitamente o tipo de dados.
Por exemplo, suponha que você crie uma média para uma coluna de dados de inteiro [Col1] e salve a transformação. Agora você deseja aplicar a transformação limpeza a uma cópia de [Col1] que foi ajustada usando uma fórmula, como ([Col1]/1,5). Para garantir que o resultado seja um inteiro, você arredondará o resultado, mas ainda receberá um erro ao aplicar a transformação. No entanto, se você ajustar o valor usando uma fórmula como ([Col 1] * 10), nenhum erro será gerado!
Para evitar esses problemas, use Editar metadados para redefinir explicitamente o tipo de dados para inteiro. Em geral, as operações no módulo aplicar operação matemática implicitamente alteram colunas numéricas para
double
.
Configurando e interpretando valores de limite
Quando você especifica um limite para as operações de limpeza usando a taxa mínima de valores ausentes ou a taxa máxima de valores ausentes, os resultados podem ser inesperados ou confusos. Para ilustrar como as opções de valores ausentes máximo e mínimo funcionam, fornecemos alguns exemplos do conjunto de exemplo de preços de automóvel , que tem muitas colunas com valores ausentes.
A tabela a seguir mostra a contagem de valores ausentes para várias colunas nesse conjunto de linhas, juntamente com a taxa de valores ausentes computados no conjunto de um. A taxa de valores ausentes (na coluna mais à direita) é o valor que seria usado na avaliação do conjunto de valores em relação aos limites especificados.
Suponha que você defina a taxa mínima de valores ausentes como 0, 19 e defina a taxa máxima de valores ausentes como 0, 20. Dada a tabela de valores a seguir, algumas colunas atendem aos critérios de limite e outras não:
- As colunas
bore
estroke
atendem aos critérios de limite. - As colunas
normalized-losses
ecompression-ratio
não atendem aos critérios de limite.
Nome da coluna | Contagem de valores ausentes | Taxa de valores ausentes |
---|---|---|
Perdas normalizadas | 41 | 0,2 |
Diâmetro | 4 | 0, 19512195 |
Traço | 4 | 0, 19512195 |
Taxa de compactação | 0 | 0 |
Como algumas colunas na seleção não atenderam aos critérios especificados, nenhuma operação de limpeza foi executada em nenhuma coluna. Para ajudá-lo a descobrir o que aconteceu, o módulo retorna o valor false nas duas colunas bore_IsMissing
de indicador e stroke_IsMissing
.
No entanto, se você alterar o limite de volta para os valores padrão de 0 para a taxa mínima de valores ausentes e 1 para a taxa máxima de valores ausentes, uma coluna de indicador será retornada para todas as colunas selecionadas e a operação especificada será executada.
Dica
Se você não tiver certeza se a limpeza do valor ausente está funcionando conforme o esperado, selecione a opção gerar coluna de indicador de valor ausente .
Problemas conhecidos
Se você usar o método de mouse para limpar dados e, em seguida, processar um DataSet que contém valores ausentes, você poderá obter o seguinte erro: "exceção da biblioteca de biblioteca do AFx: o modelo não é treinado. (Erro 1000) "
Esse erro ocorre somente quando o método MOUSE é selecionado e se o conjuntos de dados de treinamento não contém valores ausentes, mas o conjuntos de dados de teste o faz.
Entradas esperadas
Nome | Tipo | Descrição |
---|---|---|
Dataset | Tabela de Dados | Conjunto de dados a ser limpo |
Parâmetros do módulo
Nome | Intervalo | Type | Padrão | Descrição |
---|---|---|---|---|
Colunas a serem limpas | Qualquer | ColumnSelection | Tudo | Selecione colunas para a operação de limpeza de valores ausentes. |
Taxa mínima de valores ausentes | [0,0;1,0] | Float | 0,0 | Limpe apenas a coluna com a taxa de valor ausente acima do valor especificado, de um conjunto de todas as colunas selecionadas. |
Taxa máxima de valores ausentes | [0,0;1,0] | Float | 1,0 | Limpar somente colunas com taxa de valor ausente abaixo do valor especificado, fora do conjunto de todas as colunas selecionadas. |
Modo de limpeza | Lista | Política de tratamento | Personalizar valor de substituição | Escolha um algoritmo para usar ao limpar valores ausentes. |
Valor de substituição | Qualquer | String | "0" | Digite um valor para tomar o lugar de valores ausentes. Esse valor é opcional. |
Colunas com todos os valores ausentes | Qualquer | ColumnsWithAllValuesMissing | Remover | Indica se as colunas de todos os valores ausentes devem ser preservadas na saída. |
Gerar colunas de indicador de valor ausente | Qualquer | Booliano | false | Gerar uma coluna que indica quais linhas foram limpas. |
Número de iterações | [1;10] | Integer | 5 | Especifique o número de iterações ao usar o MICE. |
Número de iterações para previsão de PCA | [1;50] | Integer | 10 | Especifique o número de iterações ao usar a previsão de PCA. |
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 a ser passada para o módulo Aplicar Transformação para limpar dados novos. |
Exceções
Exceção | Descrição |
---|---|
Erro 0002 | Ocorrerá uma exceção se um ou mais parâmetros não puderem ser analisados ou convertidos do tipo especificado para o tipo exigido pelo método de destino. |
Erro 0003 | Ocorrerá uma exceção se um ou mais conjuntos de dados de entrada for nulo ou estiver vazio. |
Erro 0008 | Ocorrerá uma exceção se o parâmetro não estiver no intervalo. |
Erro 0013 | Ocorre uma exceção se o aprendiz passou para o módulo tem um tipo inválido. |
Erro 0018 | Ocorrerá uma exceção se o conjunto de dados de entrada não é válido. |
Erro 0039 | Ocorrerá uma exceção se a operação falhar. |
Para ver uma lista de erros específicos dos módulos do Studio (clássico), consulte Machine Learning Códigos de erro.
Para ver uma lista de exceções de API, consulte Machine Learning códigos de erro da API REST.