Dividir dados usando a divisão recomendada

Este artigo descreve como usar a opção de divisão de recomendação no módulo dividir dados de Azure Machine Learning Studio (clássico). Essa opção é útil quando você precisa preparar conjuntos de testes de treinamento e teste para uso com um modelo de recomendação. Esses modelos não só exigem um formato específico, mas pode ser muito difícil dividir classificações, usuários e itens de forma equilibrada sem ferramentas especiais.

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.

A opção de divisão de recomendação facilita esse processo ao solicitar o tipo de modelo de recomendação com o qual você está trabalhando: por exemplo, você está recomendando itens, sugerindo uma classificação ou localizando usuários relacionados? Em seguida, ele divide o conjunto de um por critérios que você especificar, como como lidar com usuários frios ou itens frios.

Quando você divide os conjuntos de valores, o módulo retorna dois conjuntos de os, um destinado para treinamento e outro para teste ou avaliação de modelo. Se o conjunto de dados de entrada contém quaisquer dados extras por instância (como as classificações), ele é preservado na saída.

Para obter informações gerais sobre o particionamento de dados para experimentos de aprendizado de máquina, consulte

Outras opções no módulo dividir dados dão suporte a diferentes maneiras de dividir os dados:

Dividir um conjunto de um DataSet usado por um modelo de recomendação

A opção de divisão de recomendador é fornecida especificamente para os dados usados para treinar sistemas de recomendação.

Antes de usar essa opção, verifique se os dados estão em um formato compatível. O divisor de recomendação funciona sob a suposição de que o conjunto de os consiste apenas em pares de item de usuário ou em processamentos de classificação de usuário-item . Para obter detalhes, consulte requisitos de dados de entrada neste artigo.

  1. Adicione o módulo dividir dados ao seu experimento e conecte-o como entrada para o conjunto que você deseja dividir.

  2. Para o modo de divisão, selecione divisão de recomendação.

  3. Defina as opções a seguir para controlar como os valores são divididos. Especifique um percentual representado como um número entre 0 e 1.

    • Fração de apenas usuários de treinamento: Especifique a fração de usuários que devem ser atribuídos somente ao conjunto de dados de treinamento. Isso significa que as linhas nunca seriam usadas para testar o modelo.

    • Fração das classificações de usuário de teste para treinamento: Especifique que uma parte das classificações de usuário que você coletou pode ser usada para treinamento.

    • Fração de usuários frios: usuários frios são usuários que o sistema não encontrou anteriormente. Geralmente, pelo fato de o sistema não ter informações sobre estes usuários, elas são importantes para treinamento, mas as previsões podem ser menos precisas.

    • Fração de itens frios: itens frios são itens que o sistema não encontrou anteriormente. Como o sistema não possui informações sobre esses itens, eles são importantes para treinamento, mas as previsões podem ser menos precisas.

    • Fração de usuários ignorados: essa opção permite que o recomendador ignore alguns usuários, o que permite treinar o modelo em um subconjunto de dados. Isso pode ser útil por motivos de desempenho. Especifique a porcentagem de usuários que devem ser ignorados.

    • Fração de itens ignorados: o divisor de recomendação pode ignorar alguns itens e treinar o modelo em um subconjunto de dados. Isso pode ser útil por motivos de desempenho. Especifique a porcentagem de itens a serem ignorados.

  4. Remover itens frios gerados ocasionalmente: essa opção normalmente é definida como zero para garantir que todas as entidades no conjunto de teste sejam incluídas no conjunto de treinamento.

    Um item é dito como sendo "ocasionalmente frio" se estiver coberto apenas pelo conjunto de testes e não foi explicitamente escolhido como frio. Esses itens podem ser produzidos pelas etapas (4) e (6) no algoritmo descrito na seção Como os dados recomendados são divididos.

  5. Semente aleatória para recomendador: especifique um valor de semente se desejar dividir os dados da mesma maneira a cada vez. Caso contrário, por padrão, os dados de entrada são divididos aleatoriamente, usando um valor de relógio do sistema como a semente.

  6. Execute o experimento.

Exemplos

Para obter exemplos de como dividir um conjunto de classificações e recursos usados para treinamento ou teste de um modelo de recomendação, recomendamos que você revise o guia detalhado fornecido com este experimento de exemplo na Galeria de ia do Azure: recomendação de filme

Observações técnicas

Esta seção contém detalhes de implementação, dicas e respostas para perguntas frequentes.

Requisitos para dados de entrada

O divisor de recomendação funciona sob a suposição de que o conjunto de os consiste apenas em pares de item de usuário ou em processamentos de classificação de usuário-item. Portanto, o módulo de divisão de dados não pode funcionar em DataSets com mais de três colunas, para evitar confusão com dados do tipo de recurso.

Se o conjunto de seus conjuntos de linhas tiver muitas colunas, você poderá receber esse erro:

Erro 0022: o número de colunas selecionadas no conjunto de dados de entrada não é igual a x

Como alternativa, você pode usar selecionar colunas no conjunto de linhas para remover algumas colunas. Você sempre pode adicionar as colunas novamente mais tarde, usando o módulo adicionar colunas .

Como alternativa, se o conjunto de seus conjuntos de seus recursos você deseja usar no modelo, divida o conjunto de um usando uma opção diferente e treine o modelo usando treinar modelo em vez de treinar o recomendador Matchbox.

Para obter informações detalhadas sobre os formatos de dados com suporte, consulte treinar recomendador Matchbox.

Dicas de uso

  • Um erro será gerado se o conjunto de registros não contiver pelo menos duas linhas.

  • Se você especifica um número como uma porcentagem, ou se usar uma cadeia de caracteres que contém o caractere "%", o valor é interpretado como uma porcentagem.

    Todos os valores de porcentagem devem estar dentro do intervalo (0, 100), sem incluir os valores 0 e 100.

  • Se você especificar um número ou porcentagem que é um número de ponto flutuante menor do que um, e não usar o símbolo de porcento (%), o número é interpretado como um valor proporcional.

Detalhes da implementação

O seguinte algoritmo é usado ao dividir dados nos conjuntos de treinamento e de teste para uso com um modelo de recomendação:

  1. A fração solicitada de itens ignorados é removida com todas as observações associadas.

  2. A fração solicitada de itens frios é movida para o conjunto de teste com todas as observações associadas.

  3. A fração solicitada de usuários ignorados que permanece após as primeiras duas etapas é removida com todas as observações associadas.

  4. A fração solicitada de usuários frios que permanece após as primeiras duas etapas é movida para o conjunto de testes com todas as observações associadas.

  5. A fração associada de usuários de apenas treinamento que permanece após as duas primeiras etapas é movida para o conjunto de treinamento com todas as observações associadas.

  6. Para cada usuário que permanece após todas as etapas anteriores, a fração solicitada das classificações do usuário de teste para treinamento é movida para o conjunto de treinamento, e a pendência é movida para o conjunto de teste.

    Pelo menos uma observação é sempre movida para o treinamento definido para cada usuário.

  7. Se necessário, as instâncias que são associadas com os itens frios produzidos ocasionalmente podem ser removidas do conjunto de teste.

    Um item é dito como sendo "ocasionalmente frio" se estiver coberto apenas pelo conjunto de teste, e não foi explicitamente escolhido como frio. Esses itens podem ser produzidos pelas etapas (4) e (6).

    O uso esperado dessa opção é que o número solicitado de usuários frios e itens é definido como zero. Isso garante que todas as entidades no conjunto de teste estão incluídas no conjunto de treinamento.

Consulte também

Dividir dados Particionar e dividir