Editar Metadados

Edita os metadados associados com as colunas em um conjunto de dados

Categoria: transformação/manipulação de dados

Observação

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

Esse conteúdo pertence apenas ao estúdio (clássico). Módulos de arrastar e soltar semelhantes foram adicionados ao designer de Azure Machine Learning. Saiba mais neste artigo comparando as duas versões.

Visão geral do módulo

Este artigo descreve como usar o módulo Editar metadados no Azure Machine Learning Studio (clássico) para alterar os metadados associados às colunas em um conjunto de um. Os valores e os tipos de dados no DataSet não são realmente alterados; quais alterações são os metadados dentro de Azure Machine Learning que dizem aos componentes downstream como usar a coluna.

As alterações de metadados típicas podem incluir:

  • Tratando colunas boolianas ou numéricas como valores categóricos

  • Incicando qual coluna contém a etiqueta de classe, ou os valores que você deseja categoriar ou predizer

  • Marcando colunas como recursos

  • Alterar valores de data/hora para um valor numérico ou vice-versa

  • Renomeando colunas

Use Editar metadados sempre que você precisar modificar a definição de uma coluna, normalmente para atender aos requisitos de um módulo downstream. Por exemplo, alguns módulos podem trabalhar apenas com tipos de dados específicos ou exigem sinalizadores nas colunas, como IsFeature ou IsCategorical .

Depois de executar a operação necessária, é possível redefinir os metadados para seu estado original.

Como configurar os metadados de edição

  1. No Azure Machine Learning Studio (clássico), adicione o módulo Editar metadados ao seu experimento e conecte o conjunto de um que você deseja atualizar. Você pode encontrá-lo em transformação de dados, na categoria manipular .

  2. Clique em iniciar o seletor de coluna e escolha a coluna ou conjunto de colunas com a qual trabalhar. Você pode escolher colunas individualmente, por nome ou índice, ou pode escolher um grupo de colunas, por tipo.

    Dica

    Precisa de ajuda para usar índices de coluna? Consulte a seção observações técnicas .

  3. Selecione a opção tipo de dados se você precisar atribuir um tipo de dados diferente às colunas selecionadas. A alteração do tipo de dados pode ser necessária para determinadas operações: por exemplo, se o seu DataSet de origem tiver números tratados como texto, você deverá alterá-los para um tipo de dados numéricos antes de usar operações matemáticas.

    • Os tipos de dados com suporte são,,,, String Integer Floating point Boolean DateTime e TimeSpan .

    • Se várias colunas forem selecionadas, você deverá aplicar as alterações de metadados a todas as colunas selecionadas. Por exemplo, digamos que você escolha 2-3 colunas numéricas. Você pode alterá-los para um tipo de dados de cadeia de caracteres e renomeá-los em uma única operação. No entanto, você não pode alterar uma coluna para um tipo de dados de cadeia de caracteres e outra coluna de um float para um inteiro.

    • Se você não especificar um novo tipo de dados, os metadados da coluna permanecem inalterados.

    • As alterações de tipo de dados afetam apenas os metadados que estão associados ao DataSet e como os dados são manipulados em operações de downstream. Os valores reais da coluna não são alterados, a menos que você execute uma operação diferente (como arredondamento) na coluna. Você pode recuperar o tipo de dados original a qualquer momento usando Editar metadados para redefinir o tipo de dados da coluna.

    Observação

    Se você alterar qualquer tipo de número para o tipo DateTime , deixe o campo de formato DateTime em branco. No momento, não é possível especificar o formato de dados de destino.

Azure Machine Learning pode converter datas em números ou números em datas, se os números forem compatíveis com um dos objetos DateTime .NET com suporte. Para obter mais informações, consulte a seção observações técnicas .

  1. Selecione a opção categórica para especificar que os valores nas colunas selecionadas devem ser tratados como categorias.

    Por exemplo, você pode ter uma coluna que contém os números 0, 1 e 2, mas sabe que os números realmente significam "fumaça", "não-fumaça" e "desconhecido". Nesse caso, sinalizando a coluna como categórica você pode garantir que os valores não sejam usados em cálculos numéricos, somente para agrupar dados.

  2. Use a opção campos se desejar alterar a maneira como Azure Machine Learning usa os dados em um modelo.

    • Recurso: Use esta opção para sinalizar uma coluna como um recurso, para uso com módulos que operam somente em colunas de recursos. Por padrão, todas as colunas são inicialmente tratadas como recursos.

    • Rótulo: Use esta opção para marcar o rótulo (também conhecido como atributo previsível ou variável de destino). Muitos módulos exigem que pelo menos uma coluna de rótulo (e somente uma) esteja presente no conjunto de conjuntos.

      Em muitos casos, Azure Machine Learning pode inferir que uma coluna contém um rótulo de classe, mas definindo esses metadados, você pode garantir que a coluna seja identificada corretamente. Definir essa opção não altera os valores de dados, somente a maneira como alguns algoritmos de aprendizado de máquina manipulam os dados.

    • Peso: Use essa opção com dados numéricos para indicar que os valores de coluna representam os pesos para uso em operações de treinamento ou pontuação de aprendizado de máquina. Apenas uma coluna de peso pode estar presente em um conjunto de um e a coluna deve ser numérica.

    Dica

    Você tem dados que não se ajustam a essas categorias? Por exemplo, seu conjunto de seus conjuntos de seus pode conter valores como identificadores exclusivos que não são úteis como variáveis. Às vezes, as IDs podem causar problemas quando usadas em um modelo.

    Felizmente, "nos bastidores" Azure Machine Learning mantém todos os seus dados, de modo que você não precisa excluir essas colunas do DataSet. Quando você precisa executar operações em um conjunto especial de colunas, basta remover todas as outras colunas temporariamente usando o módulo selecionar colunas no conjunto de módulos. Posteriormente, você pode mesclar as colunas de volta para o conjunto de um usando o módulo adicionar colunas .

  3. Use as opções a seguir para limpar as seleções anteriores e restaurar os metadados para os valores padrão.

    • Limpar recurso: Use esta opção para remover o sinalizador de recurso.

      Como todas as colunas são tratadas inicialmente como recursos, para módulos que executam operações matemáticas, talvez seja necessário usar essa opção para impedir que colunas numéricas sejam tratadas como variáveis.

    • Limpar rótulo: Use esta opção para remover os metadados do rótulo da coluna especificada.

    • Limpar Pontuação: Use esta opção para remover os metadados de Pontuação da coluna especificada.

      Atualmente, a capacidade de marcar explicitamente uma coluna como uma pontuação não está disponível em Azure Machine Learning. No entanto, algumas operações resultam em uma coluna sendo sinalizada como uma pontuação internamente. Além disso, um módulo R personalizado pode gerar valores de pontuação.

    • Limpar peso: Use esta opção para remover os metadados de peso da coluna especificada.

  4. Para novos nomes de coluna, digite o novo nome da coluna ou das colunas selecionadas.

    • Os nomes de coluna podem usar apenas caracteres com suporte na codificação UTF-8. Cadeias de caracteres vazias, nulos ou nomes que consistem inteiramente de espaços não são permitidos.

    • Para renomear várias colunas, digite os nomes como uma lista separada por vírgulas na ordem dos índices de coluna.

    • Todas as colunas selecionadas devem ser renomeadas. Você não pode omitir ou ignorar colunas.

    Dica

    Se você precisar renomear várias colunas, poderá colar em uma cadeia de caracteres delimitada por vírgulas preparada com antecedência. Ou use os módulos Executar script R ou aplicar transformação SQL . Consulte a seção observações técnicas para ver o código e os exemplos.

  5. Execute o experimento.

Exemplos

Para obter exemplos de como Editar metadados é usado na preparação de dados e na criação de modelos, consulte o Galeria de ia do Azure:

  • Detecção de câncer de mama: os nomes de coluna são alterados após a junção aos conjuntos de os. A coluna ID do paciente também é sinalizada como categórica para garantir que ela não seja usada em um cálculo, mas em vez de ser tratada como um valor de cadeia de caracteres.

  • Análise de sentimentos do Twitter: demonstra como usar Editar metadados para garantir que as colunas sejam tratadas como recursos. Posteriormente no experimento, os metadados do recurso serão apagados.

  • Processamento e análise de dados: neste exemplo, Editar metadados é usado para definir novos nomes de coluna para dados que foram carregados de uma página da Web.

Notas técnicas

Esta seção contém problemas conhecidos, perguntas frequentes e alguns exemplos de soluções alternativas comuns.

Problemas conhecidos

  • Não há suporte para metadados personalizados. Não é possível usar metadados personalizados em Azure Machine Learning ou editar metadados de coluna fora de Editar metadados. Por exemplo, você não pode adicionar metadados indicando que uma coluna é um identificador exclusivo ou adicionar outros atributos descritivos. Azure Machine Learning dá suporte apenas aos atributos de metadados que são usados no R para trabalhar com fatores, recursos, pesos e rótulos.

  • Tipos de dados sem suporte. Não há suporte para os seguintes tipos de dados numéricos: duplo (Decimal) e carimbo de data/hora.

  • Identificando colunas de pontuação. Atualmente, não há nenhuma opção em Editar metadados para sinalizar uma coluna como contenção de Pontuação. No entanto, você pode usar o módulo Executar script R com um script semelhante ao seguinte para indicar que uma coluna contém pontuações:

    dataset <- maml.mapInputPort(1)   
    attr(dataset$x, "label.type")= "True Labels"  
    attr(dataset$y, "feature.channel")= "Multiclass Classification Scores"  
    attr(dataset$y, "score.type")= "Assigned Labels"  
    maml.mapOutputPort("dataset");
    
  • Problemas com formatos DateTime. O datetime tipo de dados subjacente usado pelo Azure Machine Learning é POSIXct .

    Se todas as datas em uma coluna puderem ser analisadas pelo analisador padrão, a coluna será importada e tratada como dados de cadeia de caracteres.

    Se você tentar converter uma coluna em DateTime usando o módulo Editar metadados e obter um erro, isso significa que a data não está em um formato que o .net aceita por padrão. Nesse caso, recomendamos que você use o módulo Executar script R ou o módulo aplicar transformação SQL para transformar sua coluna em um formato aceito pelo analisador padrão.

    Método DateTime. Parse

    Cadeias de caracteres de formato de data e hora padrão

Selecionando colunas usando índices de coluna

Em conjuntos de grandes demais, não é possível digitar manualmente ou selecionar todos os nomes de coluna. Usar o índice de coluna é um atalho que você pode usar para especificar várias colunas. Esta seção fornece algumas dicas sobre o uso de índices de coluna.

Por exemplo, abra o seletor de coluna, clique em com regras, selecione incluir e índices de coluna e digite um intervalo ou uma série de números da seguinte maneira:

  • Digite 1-20 para selecionar as primeiras 20 colunas
  • Digite 5-20 para selecionar um intervalo de colunas começando em 5 e incluindo a coluna 20.
  • Tipo 1,5,10,15 para selecionar colunas descontínuas
  • Digite 1-2, 5 para selecionar as colunas 1, 2 e 5, ignorando as colunas 3 e 4
  • Você não pode digitar um valor de índice que seja maior que o número de colunas disponíveis no conjunto de valores.

Os experimentos a seguir fornecem alguns exemplos de outros métodos para selecionar e modificar várias colunas:

  • Classificação binária: detecção de câncer mama: os dados originais continham muitas colunas em branco geradas durante a importação de uma planilha. As colunas extras foram removidas especificando as colunas 1-11 no módulo dividir dados .

  • Baixar conjunto de dados de UCI: demonstra como você pode fornecer nomes de coluna como uma lista usando o módulo inserir dados manualmente e, em seguida, inserir a lista no DataSet como títulos, usando o módulo Executar script R .

  • Selecionar colunas de Regex: esse experimento fornece um módulo personalizado que permite aplicar uma expressão regular a nomes de coluna. Você pode usar esse módulo como uma entrada para Editar metadados.

Métodos alternativos para modificar nomes de coluna

Se você tiver muitas colunas para renomear, poderá usar o módulo Executar script R ou o módulo aplicar transformação SQL .

Usando o script R

Os conjuntos de dados usados por Azure Machine Learning são passados para esse módulo como um data. frame, o que significa que você pode usar a colnames() função r e outras funções de r relacionadas para listar ou alterar nomes de colunas.

Por exemplo, o código a seguir cria uma lista de novos nomes de coluna e, em seguida, aplica essa lista ao conjunto de dados de entrada para gerar novos cabeçalhos de coluna.

irisdata <- maml.mapInputPort(1);    
newnames <- c("CLASS", "SEPAL  LENGTH", "SEPAL WIDTH", "PETAL LENGTH", "PETAL WIDTH");
colnames(irisdata) = newnames
maml.mapOutputPort("irisdata");

O exemplo a seguir usa uma expressão regular em R para substituir globalmente todas as instâncias da cadeia de caracteres especificada nos nomes de coluna para irisdata :

# Map input dataset to variable
newirisdata <- maml.mapInputPort(1) # class: data.frame
names(newirisdata) <- gsub("col", "iris", names(newirisdata))
maml.mapOutputPort("newirisdata");

Como usar o SQL

O exemplo a seguir usa um conjunto de dados como entrada e, em seguida, altera os nomes de coluna usando a palavra- chave as.

SELECT col1 as [C1], 
  col2 as [C2], 
  col3 as [C3], 
  col4 as [C4],
  col5 as [C5] 
FROM t1;

Entrada esperada

Nome Tipo Descrição
Conjunto de dados Tabela de Dados Conjunto de dados de entrada

Parâmetros do módulo

Nome Intervalo Type Padrão Descrição
Coluna Qualquer ColumnSelection Escolha as colunas para as quais suas alterações devem ser aplicadas.
Tipo de dados Lista Tipo de dados do editor de metadados Inalterado Especifica no novo tipo de dados para a coluna.
Categóricos Lista Categóricos do editor de metadados Inalterado Indica se a coluna deve ser sinalizada como categórica.
Campos Lista Sinalizador do editor de metadados Inalterado Especifica se a coluna deve ser considerada um recurso ou rótulo pelos algoritmos de aprendizado.
Novos nomes de colunas any String Digite os novos nomes para as colunas.

Saída

Nome Tipo Descrição
Conjunto de dados de resultados Tabela de Dados Conjunto de dados com metadados alterados

Exceções

Exceção Descrição
Erro 0003 Ocorre uma exceção se um ou mais conjuntos de dados de entrada são nulos ou estão vazios.
Erro 0017 Ocorrerá uma exceção se uma ou mais colunas especificadas tem um tipo que não é suportado pelo módulo atual.
Erro 0020 Ocorre uma exceção se o número de colunas em alguns dos conjuntos de dados que são passados para o módulo é muito pequeno.
Erro 0031 Ocorre uma exceção se o número de colunas no conjunto de colunas é menor do que o necessário.
Erro 0027 Ocorrerá uma exceção quando dois objetos precisam ser do mesmo tamanho, mas eles não são.
Erro 0028 Ocorre uma exceção quando o conjunto da coluna tem nomes de coluna duplicados e não é permitido.
Erro 0037 Ocorre uma exceção se várias colunas de rótulos são especificadas e apenas uma é permitida.

Para obter uma lista de erros específicos para módulos do Studio (clássicos), consulte Machine Learning códigos de erro.

Para obter uma lista de exceções de API, consulte Machine Learning códigos de erro da API REST.

Confira também

Manusei
Transformação de dados
Lista de Módulo A-Z