Treinar e avaliar modelos no Model Builder
Nesta unidade, você vai aprender a treinar e avaliar modelos de machine learning no Model Builder.
Durante o treinamento, o Model Builder aplica algoritmos aos seus dados. Usando métricas de avaliação para o cenário específico, você mede o desempenho do modelo.
Treinamento no Model Builder
Agora que você selecionou o cenário, selecionou o ambiente de treinamento e carregou seus dados, é hora de começar a treinar seu modelo. O treinamento consiste na aplicação de algoritmos para o cenário escolhido ao seu conjuntos de dados para encontrar o melhor modelo. Abordaremos o que "melhor" significa na etapa de avaliação.
Na maioria dos casos, para treinar os modelos de machine learning no Model Builder, você só precisa fornecer a quantidade de tempo que deseja treinar.
Por quanto tempo devo treinar?
Períodos de treinamento mais longos permitem que o Model Builder explore mais modelos com uma variedade maior de configurações.
A tabela a seguir resume o tempo médio gasto para obter um bom desempenho para um conjunto de testes de um conjunto de dados de exemplo em um computador local usando a CPU:
Tamanho do conjunto de dados | Tempo médio para treinar |
---|---|
0 MB a 10 MB | 10 segundos |
10 MB a 100 MB | 10 minutos |
100 MB a 500 MB | 30 minutos |
500 MB a 1 GB | 60 minutos |
Mais de 1 GB | Mais de 3 horas |
Esses números são apenas um guia. O tamanho exato do treinamento depende:
- Do número de recursos (colunas) usados como entrada para o modelo.
- Do tipo de colunas.
- Da tarefa de machine learning.
- Do desempenho da CPU, da GPU, do disco e da memória do computador usado para o treinamento.
Dica
Use mais de 100 linhas como conjuntos de valores. Menos do que isso pode não produzir nenhum resultado.
Como o Model Builder encontra o melhor modelo?
Você provavelmente já ouviu que machine learning envolve matemática complexa. Então, como o Model Builder consegue treinar um modelo de machine learning se você forneceu apenas um cenário, um conjunto de dados e período que você deseja que o Model Builder treine?
O Model Builder usa AutoML (machine learning automatizado) para identificar o conjunto de transformações para preparar seus dados para treinamento, selecionar um algoritmo e ajustar as configurações (também conhecidas como hiperparâmetros) do algoritmo. Usando métricas de avaliação específicas para a tarefa de machine learning selecionada, o Model Builder consegue determinar qual modelo tem o "melhor" desempenho para os seus dados.
Código de treinamento e consumo
Depois que o modelo terminar de treinar, o Model Builder gera os arquivos a seguir e os adiciona ao seu projeto. Esses arquivos são aninhados em seu arquivo .mbconfig.
- <MODEL-NAME>.zip: o artefato do modelo de machine learning. Esse arquivo contém uma versão serializada do seu modelo.
- <MODEL-NAME>.training.cs: esse arquivo contém o pipeline de treinamento de modelo. Seu pipeline de treinamento de modelo é composto por transformações de dados e pelo algoritmo usado para treinar o seu modelo de machine learning. Para mais informações, confira as Transformação de dados e Como escolher um algoritmo ML.NET.
- <MODEL-NAME>.consumption.cs: esse arquivo contém as classes que definem o esquema de entrada e saída do modelo. Ele também contém o método
Predict
, que usa seu modelo para criar uma APIPredictionEngine
e fazer previsões.PredictionEngine
é uma API de conveniência que permite executar uma previsão em uma só instância de dados.
Avaliar o modelo
Agora que você encontrou o melhor modelo para os seus dados, é hora de testar o desempenho dele para fazer previsões. Uma forma de avaliar o desempenho de seu modelo é usando métricas.
As métricas de avaliação são específicas para o tipo de tarefa de machine learning que um modelo executa. Para cada tarefa, você pode examinar várias métricas para determinar o desempenho do modelo.
Esta tabela mostra as métricas de avaliação que o Model Builder usa para escolher o melhor modelo, com base no cenário:
Cenário | Métricas da avaliação | Procurar |
---|---|---|
Classificação de dados | Binário (Precisão)/Multiclasse (MicroAccuracy) | Quanto mais perto de 1,00, melhor |
Previsão de valor | R quadrado | Quanto mais perto de 1,00, melhor |
Classificação de imagens | Precisão | Quanto mais perto de 1,00, melhor |
Recomendação | R quadrado | Quanto mais perto de 1,00, melhor |
Detecção de objetos | Precisão | Quanto mais perto de 1,00, melhor |
Para obter mais informações sobre as métricas de avaliação do ML.NET, confira Métricas de avaliação de modelo.
Como escolher o modelo com as métricas mais altas
Seu modelo atingiu métricas de avaliação perfeita. Isso significa que você tem o modelo perfeito? Não exatamente. Na verdade, se você conseguir um modelo "perfeito", conforme especificado por suas métricas de avaliação, deverá ficar cético.
Em machine learning, há um conceito chamado de sobreajuste e é algo a que você deve estar atento. O sobreajuste é quando o seu modelo aprende os padrões em seu conjunto de dados de treinamento bem demais. Quando você tenta usar o modelo em dados novos, ele não fornece resultados precisos.
Eis um cenário que pode ajudar a ilustrar o sobreajuste. Imagine que você está estudando para uma prova. De alguma forma, você tem as perguntas e as respostas da prova com antecedência. Ao estudar para a prova, você se concentra em memorizar as respostas para as perguntas. Ao fazer a prova e receber os resultados, você obterá uma nota alta. Uma nota alta pode sinalizar que você conhece bem o assunto. Porém, se alguém fizesse uma pergunta sobre um dos assuntos que não estava diretamente na prova, você provavelmente erraria porque não aprendeu o assunto, apenas memorizou as respostas. O sobreajuste funciona de maneira semelhante.
Continue melhorando o seu modelo
Se você não estiver satisfeito com as métricas de avaliação do seu modelo, você pode tentar algumas coisas para melhorar o seu modelo:
- Fornecer observações de dados mais representativos: a experiência é o melhor professor. O conceito também se aplica à machine learning. Quanto mais observações de dados você puder fornecer, mais amplo será o conjunto de padrões que seu modelo pode reconhecer.
- Fornecer mais contexto: adicionar colunas que adicionam contexto aos seus dados ajuda o modelo a identificar padrões. Por exemplo, digamos que você esteja tentando prever o preço de uma casa e o único ponto de dados que você tem é o número de salas. Isso por si só pode não dizer muito. Porém, e se você souber que a casa está localizada em um bairro do subúrbio fora de uma grande área metropolitana, onde a renda familiar média é de US$ 80 mil e as escolas estão no 20º percentil superior? Agora você tem mais informações que podem ajudar a informar a decisão do modelo.
- Usar dados e recursos relevantes: embora mais exemplos de dados e recursos possam ajudar a melhorar a precisão do modelo, eles também podem introduzir ruído, pois nem todos os dados e recursos são relevantes. É importante entender quais recursos mais afetam as decisões do algoritmo.
- Explorar mais algoritmos: fornecer ao Model Builder mais tempo para permitir que ele explore mais algoritmos e hiperparâmetros pode ajudar a melhorar o seu modelo.
Na próxima unidade, você usará o Model Builder treinar um modelo de machine learning.