Ajustar hiperparâmetros do modelo
Este artigo descreve como usar o componente Tune Model Hyperparameters no designer do Azure Machine Learning. O objetivo é determinar os hiperparâmetros ideais para um modelo de aprendizado de máquina. O componente cria e testa vários modelos usando diferentes combinações de configurações. Ele compara métricas em todos os modelos para obter as combinações de configurações.
Os termos parâmetro e hiperparâmetro podem ser confusos. Os parâmetros do modelo são o que você define no painel direito do componente. Basicamente, esse componente executa uma varredura de parâmetros sobre as configurações de parâmetros especificadas. Ele aprende um conjunto ideal de hiperparâmetros, que podem ser diferentes para cada árvore de decisão, conjunto de dados ou método de regressão específico. O processo de encontrar a configuração ideal às vezes é chamado de ajuste.
O componente suporta o seguinte método para encontrar as configurações ideais para um modelo: trem integrado e afinação. Nesse método, você configura um conjunto de parâmetros a serem usados. Em seguida, deixe o componente iterar em várias combinações. O componente mede a precisão até encontrar um "melhor" modelo. Com a maioria dos componentes do aluno, você pode escolher quais parâmetros devem ser alterados durante o processo de treinamento e quais devem permanecer fixos.
Dependendo de quanto tempo você deseja que o processo de ajuste seja executado, você pode decidir testar exaustivamente todas as combinações. Ou você pode encurtar o processo estabelecendo uma grade de combinações de parâmetros e testando um subconjunto aleatório da grade de parâmetros.
Esse método gera um modelo treinado que você pode salvar para reutilização.
Gorjeta
Você pode fazer uma tarefa relacionada. Antes de começar a ajustar, aplique a seleção de recursos para determinar as colunas ou variáveis que têm o maior valor de informação.
Como configurar o Tune Model Hyperparameters
Aprender os hiperparâmetros ideais para um modelo de aprendizado de máquina requer um uso considerável de pipelines.
Treinar um modelo usando uma varredura de parâmetros
Esta seção descreve como executar uma varredura de parâmetros básicos, que treina um modelo usando o componente Tune Model Hyperparameters.
Adicione o componente Ajustar Hiperparâmetros do Modelo ao seu pipeline no designer.
Conecte um modelo não treinado à entrada mais à esquerda.
Nota
Os hiperparâmetros do Tune Model só podem ser conectados a componentes de algoritmo de aprendizado de máquina integrados e não podem suportar modelos personalizados criados em Create Python Model.
Adicione o conjunto de dados que você deseja usar para treinamento e conecte-o à entrada intermediária do Tune Model Hyperparameters.
Opcionalmente, se você tiver um conjunto de dados marcado, poderá conectá-lo à porta de entrada mais à direita (conjunto de dados de validação opcional). Isso permite medir a precisão durante o treinamento e o ajuste.
No painel direito de Tune Model Hyperparameters, escolha um valor para o modo de varredura de parâmetros. Esta opção controla como os parâmetros são selecionados.
Grade inteira: Quando você seleciona essa opção, o componente percorre uma grade predefinida pelo sistema, para tentar diferentes combinações e identificar o melhor aluno. Essa opção é útil quando você não sabe quais podem ser as melhores configurações de parâmetros e deseja tentar todas as combinações possíveis de valores.
Varredura aleatória: Quando você seleciona essa opção, o componente seleciona aleatoriamente valores de parâmetros em um intervalo definido pelo sistema. Você deve especificar o número máximo de execuções que deseja que o componente execute. Essa opção é útil quando você deseja aumentar o desempenho do modelo usando as métricas de sua escolha, mas ainda assim conservar recursos de computação.
Para Coluna Rótulo, abra o seletor de coluna para escolher uma única coluna de rótulo.
Escolha o número de execuções:
- Número máximo de execuções em varredura aleatória: Se você escolher uma varredura aleatória, poderá especificar quantas vezes o modelo deve ser treinado, usando uma combinação aleatória de valores de parâmetros.
Em Ranking, escolha uma única métrica para usar para classificar os modelos.
Quando você executa uma varredura de parâmetros, o componente calcula todas as métricas aplicáveis para o tipo de modelo e as retorna no relatório de resultados da varredura. O componente usa métricas separadas para modelos de regressão e classificação.
No entanto, a métrica escolhida determina como os modelos são classificados. Apenas o modelo superior, classificado pela métrica escolhida, é produzido como um modelo treinado para usar na pontuação.
Para Random seed, insira um número inteiro como um pseudo estado gerador de números aleatórios usado para selecionar aleatoriamente valores de parâmetros em um intervalo predefinido. Este parâmetro só é efetivo se o modo de varredura de parâmetros for Varredura aleatória.
Envie o pipeline.
Resultados do ajuste de hiperparâmetros
Quando a formação estiver concluída:
Para exibir os resultados da varredura, clique com o botão direito do mouse no componente e selecione Visualizar ou clique com o botão direito do mouse na porta de saída esquerda do componente a ser visualizado.
Os resultados da varredura incluem todas as métricas de varredura de parâmetros e precisão que se aplicam ao tipo de modelo, e a métrica selecionada para classificação determina qual modelo é considerado "melhor".
Para salvar um instantâneo do modelo treinado, selecione a guia Saídas+logs no painel direito do componente Modelo de trem . Selecione o ícone Registrar conjunto de dados para salvar o modelo como um componente reutilizável.
Notas técnicas
Esta seção contém detalhes e dicas de implementação.
Como funciona uma varredura de parâmetros
Ao configurar uma varredura de parâmetros, você define o escopo da sua pesquisa. A pesquisa pode usar um número finito de parâmetros selecionados aleatoriamente. Ou pode ser uma pesquisa exaustiva sobre um espaço de parâmetro que você define.
Varredura aleatória: esta opção treina um modelo usando um número definido de iterações.
Você especifica um intervalo de valores para iterar e o componente usa um subconjunto escolhido aleatoriamente desses valores. Os valores são escolhidos com substituição, o que significa que os números previamente escolhidos aleatoriamente não são removidos do conjunto de números disponíveis. Assim, a chance de qualquer valor ser selecionado permanece a mesma em todos os passes.
Grade inteira: A opção de usar a grade inteira significa que cada combinação é testada. Esta opção é a mais completa, mas requer mais tempo.
Controlar a duração e a complexidade da formação
A iteração em muitas combinações de configurações pode ser demorada, portanto, o componente fornece várias maneiras de restringir o processo:
- Limite o número de iterações usadas para testar um modelo.
- Limite o espaço do parâmetro.
- Limite o número de iterações e o espaço de parâmetros.
Recomendamos que você faça o pipeline com as configurações para determinar o método mais eficiente de treinamento em um determinado conjunto de dados e modelo.
Escolher uma métrica de avaliação
No final do teste, o modelo apresenta um relatório que contém a precisão de cada modelo para que você possa revisar os resultados da métrica:
- Um conjunto uniforme de métricas é usado para todos os modelos de classificação binária.
- A precisão é usada para todos os modelos de classificação multiclasse.
- Um conjunto diferente de métricas é usado para modelos de regressão.
No entanto, durante o treinamento, você deve escolher uma única métrica para usar no ranking dos modelos que são gerados durante o processo de ajuste. Você pode achar que a melhor métrica varia, dependendo do problema do seu negócio e do custo de falsos positivos e falsos negativos.
Métricas usadas para classificação binária
A precisão é a proporção entre os resultados verdadeiros e o total de casos.
Precisão é a proporção de resultados verdadeiros para resultados positivos.
Recall é a fração de todos os resultados corretos sobre todos os resultados.
O F-score é uma medida que equilibra precisão e recordação.
AUC é um valor que representa a área sob a curva quando falsos positivos são plotados no eixo x e verdadeiros positivos são plotados no eixo y.
A perda média de log é a diferença entre duas distribuições de probabilidade: a verdadeira e a do modelo.
Métricas usadas para regressão
O erro absoluto médio calcula a média de todos os erros no modelo, onde erro significa a distância do valor previsto do valor real. É muitas vezes abreviado como MAE.
A raiz do erro quadrado médio mede a média dos quadrados dos erros e, em seguida, toma a raiz desse valor. É muitas vezes abreviado como RMSE.
O erro absoluto relativo representa o erro como uma percentagem do valor real.
O erro quadrado relativo normaliza o erro quadrado total dividindo pelo erro quadrado total dos valores previstos.
Coeficiente de determinação é um número único que indica quão bem os dados se ajustam a um modelo. Um valor de um significa que o modelo corresponde exatamente aos dados. Um valor zero significa que os dados são aleatórios ou não podem ser ajustados ao modelo. É frequentemente chamado de r2, R2 ou r-quadrado.
Componentes que não suportam uma varredura de parâmetros
Quase todos os alunos no Azure Machine Learning dão suporte à validação cruzada com uma varredura de parâmetros integrada, que permite escolher os parâmetros com os quais fazer pipeline. Se o/a aluno/a não suportar a definição de um intervalo de valores, pode continuar a utilizá-lo na validação cruzada. Nesse caso, um intervalo de valores permitidos é selecionado para a varredura.
Próximos passos
Consulte o conjunto de componentes disponíveis para o Azure Machine Learning.