Modelo de validação cruzada

Este artigo descreve como usar o componente Validação Cruzada de Modelo do designer do Azure Machine Learning. A validação cruzada é uma técnica usada com frequência no machine learning para avaliar a variabilidade de um conjunto de dados e a confiabilidade dos modelos treinado com esses dados.

O componente Validação Cruzada de Modelo usa como entrada um conjunto de dados rotulado com um modelo de classificação ou regressão não treinado. Ele divide o conjunto de dados em subconjuntos (dobras), cria um modelo em cada dobra e retorna um conjunto de estatísticas de precisão para cada dobra. Comparando as estatísticas de precisão de todas as dobras, você pode interpretar a qualidade do conjunto de dados. Assim, você pode entender se o modelo é suscetível a variações nos dados.

O módulo Validação Cruzada de Modelo também retorna resultados previstos e probabilidades para o conjunto de dados para que você possa avaliar a confiabilidade das previsões.

Como a validação cruzada funciona

  1. A validação cruzada divide aleatoriamente os dados de treinamento em dobras.

    O algoritmo padroniza para 10 dobras se anteriormente você não particionou do conjunto de dados. Para dividir o conjunto de dados em um número diferente de dobras, você pode usar o componente Partição e Amostra e indicar quantas dobras deseja usar.

  2. O componente separa os dados na dobra 1 para uso na validação. (Às vezes, essa é chamada de dobra de controle.) O componente usa as dobras restantes para treinar um modelo.

    Por exemplo, se você cria cinco dobras, o componente gera cinco modelos durante a validação cruzada. O componente treina cada modelo usando quatro quintos dos dados. Ele testa cada modelo usando o quinto restante.

  3. Durante os testes do modelo para cada dobra, o componente avalia várias estatísticas de precisão. As estatísticas que o componente usa dependem do tipo de modelo que você está avaliando. Estatísticas diferentes são usadas para avaliar modelos de classificação e modelos de regressão.

  4. Quando o processo de compilação e avaliação é concluído para todas as dobras, o módulo Validação Cruzada de Modelo gera um conjunto de métricas de desempenho e resultados pontuados para todos os dados. Examine essas métricas para ver se alguma dobra tem precisão alta ou baixa.

Vantagens da validação cruzada

Uma forma diferente e comum de avaliar um modelo é dividir os dados em um conjunto de treinamento e de teste usando Dividir Dados e validar o modelo com os dados de treinamento. Mas a validação cruzada oferece algumas vantagens:

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

    A validação cruzada mede o desempenho do modelo com os parâmetros especificados em um espaço de dados maior. Ou seja, ela usa todo o conjunto de dados de treinamento para o treinamento e a avaliação, em vez de uma parte dele. Por outro lado, se você valida um modelo usando dados gerados com uma divisão aleatória, normalmente você o avalia apenas em 30% ou menos dos dados disponíveis.

    No entanto, como a validação cruzada treina e valida o modelo várias vezes em um conjunto de dados maior, ela apresenta um consumo computacional intensivo. Ela demora muito mais do que validar em uma divisão aleatória.

  • A validação cruzada avalia o conjunto de dados e o modelo.

    Ela não mede somente a precisão de um modelo. Ela também dá uma ideia de quão representativo o conjunto de dados é e de quão sensível o modelo pode ser a variações nos dados.

Como usar o módulo Validação Cruzada de Modelo

A validação cruzada pode levar muito tempo para ser executada quando o conjunto de dados é grande. Portanto, você pode usar Validação Cruzada de Modelo na fase inicial de compilação e teste do modelo. Nessa fase, você pode avaliar a qualidade dos parâmetros do modelo (presumindo o tempo de computação seja tolerável). Em seguida, você pode treinar e avaliar seu modelo usando os parâmetros estabelecidos com os componentes Treinar Modelo e Avaliar Modelo.

Nesse cenário, você treina e testa o modelo usando o módulo Validação Cruzada de Modelo.

  1. Adicione o componente Validação Cruzada de Modelo ao pipeline. Você pode encontrá-lo no designer do Azure Machine Learning, na categoria Pontuação e Avaliação de Modelo.

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

    Por exemplo, se você estiver usando a Árvore de Decisão Aumentada de Duas Classes para classificação, configure o modelo com os parâmetros desejados. Em seguida, arraste um conector da porta Modelo não treinado do classificador para a porta correspondente de Validação Cruzada de Modelo.

    Dica

    Você não precisa treinar o modelo, porque Validação Cruzada de Modelo faz isso automaticamente como parte da avaliação.

  3. Na porta Conjunto de dados de Validação Cruzada de Modelo, conecte qualquer conjunto de dados de treinamento rotulado.

  4. No painel direito de Validação Cruzada de Modelo, clique em Editar coluna. Selecione a coluna única que contém o rótulo de classe ou o valor previsível.

  5. Defina um valor para o parâmetro Semente aleatória se quiser repetir os resultados da validação cruzada em execuções sucessivas nos mesmos dados.

  6. Envie o pipeline.

  7. Veja na seção Resultados uma descrição dos relatórios.

Resultados

Após todas as iterações serem concluídas, Validação Cruzada de Modelo cria pontuações para todo o conjunto de dados. O módulo também cria métricas de desempenho que você pode usar para avaliar a qualidade do modelo.

Resultados classificados

A primeira saída do componente fornece os dados de origem para cada linha, bem como alguns valores previstos e as probabilidades relacionadas.

Para exibir os resultados, no pipeline, clique com o botão direito do mouse no componente Validação Cruzada de Modelo. Selecione Visualizar resultados pontuados.

Nome da nova coluna Descrição
Rótulos classificados Essa coluna é adicionada ao final do conjunto de dados. Ela contém o valor previsto para cada linha.
Probabilidades pontuadas Essa coluna é adicionada ao final do conjunto de dados. Indica a probabilidade estimada do valor em Rótulos pontuados.
Número da dobra Indica o índice de base zero da dobra à qual cada linha de dados foi atribuída durante a validação cruzada.

Resultados de avaliação

O segundo relatório é agrupado por dobras. Lembre-se de que, durante a execução, Validação Cruzada de Modelo divide aleatoriamente os dados de treinamento em n dobras (por padrão, 10). Em cada iteração do conjunto de dados, Validação Cruzada de Modelo usa uma dobra como um conjunto de dados de validação. Ele usa as n-1 dobras restantes para treinar o modelo. Cada um dos n modelos é testado em relação aos dados em todas as outras dobras.

Neste relatório, as dobras são listadas pelo valor do índice em ordem crescente. Para ordenar segundo qualquer outra coluna, salve os resultados como um conjunto de dados.

Para exibir os resultados, no pipeline, clique com o botão direito do mouse no componente Validação Cruzada de Modelo. Selecione Visualizar resultados da avaliação por dobra.

Nome da coluna Descrição
Número da dobra Um identificador para cada dobra. Se você criou cinco dobras, haveria cinco subconjuntos de dados numerados de 0 a 4.
Número de exemplos na dobra O número de linhas atribuídas a cada dobra. Eles devem ser aproximadamente iguais.

O componente também inclui as seguintes métricas para cada dobra, dependendo do tipo de modelo que você está avaliando:

  • Modelos de classificação: precisão, recall, pontuação F, AUC, precisão

  • Modelos de regressão: erro médio absoluto, raiz do erro quadrático médio, erro relativo absoluto, erro quadrático relativo e coeficiente de determinação

Observações técnicas

  • É uma melhor prática normalizar os conjuntos de dados antes de usá-los para validação cruzada.

  • O módulo Validação Cruzada de Modelo apresenta um consumo muito mais intensivo de computação e demora mais para ser concluído do que se você validasse o modelo usando um conjunto de dados dividido aleatoriamente. Isso ocorre porque Validação Cruzada de Modelo treina e valida o modelo várias vezes.

  • Não é necessário dividir o conjunto de dados em conjuntos de treinamento e de teste quando você usa a validação cruzada para medir a precisão do modelo.

Próximas etapas

Confira o conjunto de componentes disponíveis no Azure Machine Learning.