Modelo de validação cruzada

Este artigo descreve como usar o componente Cross Validate Model no designer do Azure Machine Learning. A validação cruzada é uma técnica frequentemente usada no aprendizado de máquina para avaliar a variabilidade de um conjunto de dados e a confiabilidade de qualquer modelo treinado através desses dados.

O componente Cross Validate Model usa como entrada um conjunto de dados rotulado, juntamente com um modelo de classificação ou regressão não treinado. Ele divide o conjunto de dados em algum número de subconjuntos (dobras), constrói um modelo em cada dobra e, em seguida, retorna um conjunto de estatísticas de precisão para cada dobra. Ao comparar as estatísticas de precisão para todas as dobras, você pode interpretar a qualidade do conjunto de dados. Em seguida, é possível entender se o modelo é suscetível a variações nos dados.

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

Como funciona a validação cruzada

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

    O padrão do algoritmo é 10 dobras se você não tiver particionado anteriormente o 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 usar.

  2. O componente reserva os dados na dobra 1 para usar na validação. (Isso às vezes é chamado de dobra de holdout.) O componente usa as dobras restantes para treinar um modelo.

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

  3. Durante o teste 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. Diferentes estatísticas são usadas para avaliar modelos de classificação versus modelos de regressão.

  4. Quando o processo de construção e avaliação estiver concluído para todas as dobras, o Modelo de Validação Cruzada gera um conjunto de métricas de desempenho e resultados pontuados para todos os dados. Analise essas métricas para ver se uma única dobra tem alta ou baixa precisão.

Vantagens da validação cruzada

Uma maneira diferente e comum de avaliar um modelo é dividir os dados em um conjunto de treinamento e teste usando Split Data e, em seguida, validar o modelo nos 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, a validação cruzada usa todo o conjunto de dados de treinamento para treinamento e avaliação, em vez de uma parte. Por outro lado, se você validar um modelo usando dados gerados a partir de uma divisão aleatória, normalmente avaliará o modelo em apenas 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 é muito mais intensiva computacionalmente. Leva muito mais tempo do que validar em uma divisão aleatória.

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

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

Como usar o modelo de validação cruzada

A validação cruzada pode levar muito tempo para ser executada se o conjunto de dados for grande. Portanto, você pode usar o Cross Validate Model na fase inicial de criação e teste do seu modelo. Nessa fase, você pode avaliar a bondade dos parâmetros do modelo (assumindo que o tempo de computação é tolerável). Em seguida, você pode treinar e avaliar seu modelo usando os parâmetros estabelecidos com os componentes Train Model e Evaluate Model.

Nesse cenário, você treina e testa o modelo usando o modelo de validação cruzada.

  1. Adicione o componente Cross Validate Model ao seu pipeline. Você pode encontrá-lo no designer do Azure Machine Learning, na categoria Model Scoring & Evaluation .

  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 Impulsionada por Duas Classes para classificação, configure o modelo com os parâmetros desejados. Em seguida, arraste um conector da porta do modelo não treinado do classificador para a porta correspondente do modelo de validação cruzada.

    Gorjeta

    Você não precisa treinar o modelo, porque o modelo de validação cruzada treina automaticamente o modelo como parte da avaliação.

  3. Na porta do conjunto de dados do modelo de validação cruzada, conecte qualquer conjunto de dados de treinamento rotulado.

  4. No painel direito de Cross Validate Model, clique na coluna Editar. Selecione a única coluna que contém o rótulo da classe ou o valor previsível.

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

  6. Envie o pipeline.

  7. Consulte a seção Resultados para obter uma descrição dos relatórios.

Resultados

Depois que todas as iterações forem concluídas, o Modelo de Validação Cruzada criará pontuações para todo o conjunto de dados. Ele também cria métricas de desempenho que você pode usar para avaliar a qualidade do modelo.

Resultados pontuados

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

Para exibir os resultados, no pipeline, clique com o botão direito do mouse no componente Cross Validate Model. Selecione Visualizar resultados pontuados.

Nome da nova coluna Description
Etiquetas pontuadas Esta coluna é adicionada no final do conjunto de dados. Ele contém o valor previsto para cada linha.
Probabilidades pontuadas Esta coluna é adicionada no final do conjunto de dados. Ele indica a probabilidade estimada do valor em Rótulos Pontuados.
Número da dobra Indica o índice baseado em zero da dobra à qual cada linha de dados foi atribuída durante a validação cruzada.

Resultados da avaliação

O segundo relatório está agrupado por dobras. Lembre-se de que, durante a execução, o Modelo de Validação Cruzada divide aleatoriamente os dados de treinamento em n dobras (por padrão, 10). Em cada iteração sobre o conjunto de dados, o Modelo de Validação Cruzada usa uma dobra como um conjunto de dados de validação. Ele usa as dobras n-1 restantes para treinar um 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 por valor de índice, em ordem crescente. Para ordenar em qualquer outra coluna, você pode salvar os resultados como um conjunto de dados.

Para exibir os resultados, no pipeline, clique com o botão direito do mouse no componente Cross Validate Model. Selecione Visualizar resultados da avaliação por dobra.

Nome da coluna Description
Número da dobra Um identificador para cada dobra. Se você criasse cinco dobras, haveria cinco 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 mais ou menos 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, recordação, pontuação F, AUC, precisão

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

Notas técnicas

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

  • O modelo de validação cruzada é muito mais intensivo computacionalmente e leva mais tempo para ser concluído do que se você validasse o modelo usando um conjunto de dados dividido aleatoriamente. O motivo é que o Cross Validate Model treina e valida o modelo várias vezes.

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

Próximos passos

Consulte o conjunto de componentes disponíveis para o Azure Machine Learning.