Modelo de validação cruzada

Cruza estimativas de parâmetros para modelos de classificação ou regressão dividindo os dados

Categoria: Machine Learning / Avaliar

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 usar o módulo modelo cross-validate no Azure Machine Learning Studio (clássico). A validação cruzada é uma técnica importante frequentemente usada na aprendizagem automática para avaliar a variabilidade de um conjunto de dados e a fiabilidade de qualquer modelo treinado usando esses dados.

O módulo Modelo Validado Cross-Validate toma como entrada um conjunto de dados rotulado, juntamente com um modelo de classificação ou regressão não treinado. Divide o conjunto de dados em alguns subconjuntos (dobras), constrói um modelo em cada dobra e, em seguida, devolve um conjunto de estatísticas de precisão para cada dobra. Ao comparar as estatísticas de precisão de todas as dobras, pode interpretar a qualidade do conjunto de dados e entender se o modelo é suscetível a variações nos dados.

Validado também devolve resultados e probabilidades previstos para o conjunto de dados, para que possa avaliar a fiabilidade das previsões.

Como funciona a validação cruzada

  1. A validação cruzada divide aleatoriamente os dados de treino em várias divisórias, também chamadas dobras.

    • O algoritmo é padrão de 10 dobras se não tiver dividido previamente o conjunto de dados.
    • Para dividir o conjunto de dados num número diferente de dobras, pode utilizar o módulo de partição e amostra e indicar quantas dobras utilizar.
  2. O módulo põe de lado os dados na dobra 1 para usar para validação (isto às vezes é chamado de dobra de retenção), e usa as restantes dobras para treinar um modelo.

    Por exemplo, se criar cinco dobras, o módulo gerará cinco modelos durante a validação cruzada, cada modelo treinado com 4/5 dos dados, e testado no restante 1/5.

  3. Durante o teste do modelo para cada dobra, são avaliadas estatísticas de precisão múltiplas. Quais as estatísticas utilizadas dependem do tipo de modelo que está a avaliar. Diferentes estatísticas são usadas para avaliar modelos de classificação vs. modelos de regressão.

  4. Quando o processo de construção e avaliação está completo para todas as dobras, o Modelo Cross-Valide gera um conjunto de métricas de desempenho e obteve resultados para todos os dados. Você deve rever estas métricas para ver se qualquer dobra única tem particularmente alta ou baixa precisão

Vantagens da validação cruzada

Uma forma diferente, e muito comum de avaliar um modelo, é dividir os dados num conjunto de treino e teste utilizando Dados Divididos,e depois validar o modelo nos dados de treino. No entanto, a validação cruzada oferece algumas vantagens:

  • A validação cruzada utiliza mais dados de teste.

    A validação cruzada mede o desempenho do modelo com os parâmetros especificados num espaço de dados maior. Ou seja, a validação cruzada utiliza todo o conjunto de dados de treino para treino e avaliação, em vez de alguma parte. Em contraste, se validar um modelo utilizando dados gerados a partir de uma divisão aleatória, normalmente avalia o modelo apenas em 30% ou menos dos dados disponíveis.

    No entanto, como os comboios de validação cruzada e validam o modelo várias vezes ao longo de um conjunto de dados maior, é muito mais intensivo computacionalmente e demora muito mais tempo do que validar numa divisão aleatória.

  • A validação cruzada avalia o conjunto de dados, bem como o modelo.

    A validação cruzada não mede apenas a precisão de um modelo, mas também lhe dá uma ideia de quão representativo é o conjunto de dados e quão sensível o modelo pode ser às variações dos dados.

Como utilizar o modelo de validação cruzada

Há duas maneiras principais de usar a validação cruzada.

A validação cruzada pode demorar muito tempo a ser executada se utilizar muitos dados. Por isso, poderá utilizar o Modelo Cross-Valide na fase inicial de construção e teste do seu modelo, para avaliar a bondade dos parâmetros do modelo (assumindo que o tempo de computação é tolerável), e depois treinar e avaliar o seu modelo utilizando os parâmetros estabelecidos com os módulos Train Model e Assess Model.

Validação cruzada simples

Neste cenário, treina-se e testa o modelo utilizando o Modelo Cross Validate.

  1. Adicione o módulo Modelo De Validação Cruzada à sua experiência. Pode encontrá-lo no Azure Machine Learning Studio (clássico), na categoria Machine Learning, em Avaliação.

  2. Ligue a saída de qualquer modelo de classificação ou regressão.

    Por exemplo, se estiver a utilizar uma máquina de ponta de duas classes para classificação, configufique o modelo com os parâmetros que pretende e, em seguida, arraste um conector da porta modelo destreinada do classificador para a porta correspondente do Modelo Validado Cross Valide.

    Dica

    O modelo não precisa de ser treinado porque o Modelo Cross-Validate treina automaticamente o modelo como parte da avaliação.

  3. Na porta dataset do Modelo Validado Cruzado, ligue qualquer conjunto de dados de formação rotulado.

  4. No painel propriedades do modelo de validação cruzada, clique no seletor de colunas de lançamento e escolha a coluna única que contém a etiqueta de classe ou o valor previsível.

  5. Desave um valor para o parâmetro de sementes Aleatórias se quiser ser capaz de repetir os resultados da validação cruzada em sucessivas execuções nos mesmos dados.

  6. Execute a experimentação.

  7. Consulte a secção resultados para obter uma descrição dos relatórios.

    Para obter uma cópia do modelo para reutilização posterior, clique em linha com a saída do módulo que contém o algoritmo (por exemplo, a Máquina de Dois Bayes Point), e clique em Guardar como Modelo Treinado.

Validação cruzada com uma varredura de parâmetros

Neste cenário, utiliza-se hiperparímetros tune model para identificar o melhor modelo, conduzindo uma varredura de parâmetros e, em seguida, utilize o Modelo Cross Validate para verificar a sua fiabilidade. Esta é a maneira mais fácil de ter a Azure Machine Learning a identificar o melhor modelo e depois gerar métricas para ele.

  1. Adicione o conjunto de dados para a formação de modelos e adicione um dos módulos de aprendizagem automática que cria um modelo de classificação ou regressão.

  2. Adicione o módulo De Hiperparametros Tune Model à sua experiência. Pode encontrá-lo na categoria machine learning, em Comboio.

  3. Fixe o modelo de classificação ou regressão à entrada do modelo não treinado dos Hiperparmetros Tune Model.

  4. Adicione o módulo Modelo De Validação Cruzada à sua experiência. Pode encontrá-lo no Azure Machine Learning Studio (clássico), na categoria Machine Learning, em Avaliação.

  5. Localize a melhor saída de modelo treinado de Hiperparametros Tune Modele conecte-o à entrada do modelo não treinado do Modelo Validado Cross.

  6. Ligue os dados de formação à entrada do conjunto de dados de treino do Modelo Validado Cross.

  7. Execute a experimentação.

  8. Depois de rever os resultados e as pontuações de avaliação, para obter uma cópia do melhor modelo para posterior reutilização, basta clicar com o botão certo no módulo Tune Model Hyperparameters, selecione O melhor modelo treinadoe, em seguida, clique em Guardar como Modelo Treinado.

Nota

Poderá obter resultados diferentes se utilizar a entrada no módulo De Hiperparametros Tune Model para conjunto de dados de validação opcional.

Isto porque, quando utiliza esta opção, está de facto a especificar um conjunto de dados de treino estático e a testar o conjunto de dados. Assim, o processo de validação cruzada também utiliza os conjuntos de dados de treino e teste especificados, em vez de dividir os dados em grupos n para treino e teste. No entanto, as métricas são geradas numa base n-fold.

Resultados

Depois de todas as iterações estarem completas, o Modelo Cross-Valide cria pontuações para todo o conjunto de dados, bem como métricas de desempenho que pode utilizar para avaliar a qualidade do modelo.

Resultados pontuados

A primeira saída do módulo fornece os dados de origem para cada linha, juntamente com alguns valores previstos e probabilidades relacionadas.

Para ver estes resultados, na experiência, clique com o botão certo no módulo Modelo Validado, selecione Resultados Pontuadose clique em Visualizar.

Nome da coluna nova Descrição
Atribuições dobráveis Indica o índice baseado em 0 da dobra a que cada linha de dados foi atribuída durante a validação cruzada.
Etiquetas Classificadas Esta coluna é adicionada no final do conjunto de dados, e contém o valor previsto para cada linha
Probabilidades Pontuadas Esta coluna é adicionada no final do conjunto de dados, e indica a probabilidade estimada do valor em Etiquetas Pontuadas.

Resultados da avaliação

O segundo relatório é agrupado por dobras. Lembre-se que, durante a execução, o Modelo Cross-Valide divide aleatoriamente os dados de treino em n folds (por defeito, 10). Em cada iteração sobre o conjunto de dados, o Modelo Cross-Valide utiliza uma dobra como conjunto de dados de validação e utiliza as restantes dobras n-1 para treinar um modelo. Cada um dos modelos n é testado com os dados em todas as outras dobras.

Neste relatório, as dobras são listadas pelo valor do índice, por ordem ascendente. Para encomendar em qualquer outra coluna pode guardar os resultados como conjunto de dados.

Para ver estes resultados, na experiência, clique com o botão certo no módulo Modelo Validado, selecione os resultados de avaliação por dobra, e clique em Visualizar.

Nome da coluna Descrição
Número dobrável Um identificador para cada dobra. Se criasse 5 dobras, haveria 5 subconjuntos de dados, numerados de 0 a 4.
Número de exemplos em dobra O número de linhas atribuídas a cada dobra. Devem ser aproximadamente iguais.
Modelo O algoritmo usado no modelo, identificado pelo nome API

Além disso, as seguintes métricas estão incluídas para cada dobra, dependendo do tipo de modelo que está a avaliar.

  • Modelos de classificação: Precisão, recordação, F-score, AUC, perda média de log, perda de registo de treino

  • Modelos de regressão: Probabilidade de registo negativo, erro absoluto médio, erro quadrado de raiz, erro absoluto relativo e coeficiente de determinação

Exemplos

Por exemplo, como a validação cruzada é utilizada na aprendizagem automática, consulte a Galeria Azure AI:

Notas técnicas

  • É uma boa prática normalizar conjuntos de dados antes de os utilizar para validação cruzada.

  • Como o Modelo Cross-Valide treina e valida o modelo várias vezes, é muito mais intensivo computacionalmente e demora mais tempo a ser concluído do que se validasse o modelo usando um conjunto de dados dividido aleatoriamente.

  • Recomendamos que utilize o Modelo Cross-Validate para estabelecer a bondade do modelo, dado os parâmetros especificados. Utilize hiperparmetros tune model para identificar os parâmetros ideais.

  • Não é necessário dividir o conjunto de dados em conjuntos de treino e testes quando utiliza validação cruzada para medir a precisão do modelo.

    No entanto, se um conjunto de dados de validação for fornecido a montante, o módulo utiliza os conjuntos de dados de treino e teste especificados em vez de se dividir em n folds. Ou seja, o primeiro conjunto de dados é usado para treinar o modelo para cada combinação de parâmetros, e os modelos são avaliados no conjunto de dados de validação. Consulte a secção sobre a utilização de uma varredura de parâmetros com validação cruzada.

  • Embora este artigo utilize versões mais antigas dos módulos, tem uma boa explicação do processo de validação cruzada: Como escolher parâmetros para otimizar os seus algoritmos em Azure Machine Learning

Entradas esperadas

Nome Tipo Descrição
Modelo destreinado Interface ILearner Modelo não treinado para validação cruzada no conjunto de dados
Conjunto de dados Tabela de Dados Conjunto de dados de entrada

Parâmetros do módulo

Nome Intervalo Tipo Predefinição Descrição
Coluna de etiqueta qualquer Seleção de Colunas Selecione a coluna que contém o rótulo a utilizar para validação
Sementes aleatórias qualquer Número inteiro 0 Valor de semente para gerador de números aleatórios

Este valor é opcional. Se não for especificado

Saídas

Nome Tipo Descrição
Resultados pontuados Tabela de Dados Resultados da pontuação
Resultados da avaliação por dobra Tabela de Dados Resultados da avaliação (por dobra e por completo)

Exceções

Exceção Descrição
Erro 0035 A exceção ocorre se não forem fornecidas funcionalidades para um determinado utilizador ou item.
Erro 0032 A exceção ocorre se o argumento não for um número.
Erro 0033 A exceção ocorre se o argumento for infinito.
Erro 0001 A exceção ocorre se uma ou mais colunas especificadas de conjunto de dados não puderem ser encontradas.
Erro 0003 A exceção ocorre se uma ou mais entradas forem nulas ou vazias.
Erro 0006 A exceção ocorre se o parâmetro for maior ou igual ao valor especificado.
Erro 0008 A exceção ocorre se o parâmetro não estiver ao alcance.
Erro 0013 A exceção ocorre se o aluno que é passado para o módulo tiver um tipo inválido.

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

Avaliar
Avaliar Recomendador
Lista de Módulos A-Z