Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Saiba como criar um modelo de classificação multiclasse usando o Construtor de Modelos para categorizar o nível de risco de violações de restaurante encontradas durante inspeções de integridade.
Neste tutorial, você aprenderá como:
- Preparar e entender os dados
- Criar um arquivo de configuração do Construtor de Modelos
- Escolha um cenário
- Carregar dados de um banco de dados
- Treinar o modelo
- Avaliar o modelo
- Usar o modelo para previsões
Pré-requisitos
Para obter uma lista de pré-requisitos e instruções de instalação, visite o guia de instalação do Construtor de Modelos.
Visão geral da classificação multiclasse do Model Builder
Este exemplo cria um aplicativo de console C# que categoriza o risco de violações de integridade usando um modelo de machine learning criado com o Construtor de Modelos. Você pode encontrar o código-fonte deste tutorial no repositório GitHub do dotnet/machinelearning-samples .
Criar um aplicativo de console
Crie um aplicativo de console C# chamado "RestaurantViolations".
Preparar e entender os dados
O conjunto de dados usado para treinar e avaliar o modelo de machine learning foi obtido originalmente do Departamento de Segurança de Restaurantes de Saúde Pública de São Francisco. Por conveniência, o conjunto de dados foi condensado para incluir apenas as colunas relevantes para treinar o modelo e fazer previsões. Visite o site a seguir para saber mais sobre o conjunto de dados.
Baixe o conjunto de dados Pontuações de Segurança do Restaurante e descompacte-o.
Cada linha no conjunto de dados contém informações sobre violações observadas durante uma inspeção do Departamento de Saúde e uma avaliação de risco da ameaça que essas violações apresentam à saúde e segurança pública.
| TipoDeInspeção | Descrição da Violação | RiskCategory |
|---|---|---|
| Rotina – Não agendada | Superfícies de contato alimentar inadequadamente limpas ou higienizadas | Risco moderado |
| Nova Propriedade | Infestação de vermes de alto risco | Alto risco |
| Rotina – Não agendada | Panos de limpeza sujos, armazenados de forma inadequada ou com uso de desinfetante inadequado | Baixo risco |
- InspectionType: o tipo de inspeção. Isso pode ser uma inspeção pela primeira vez para um novo estabelecimento, uma inspeção de rotina, uma inspeção de reclamação e muitos outros tipos.
- ViolationDescription: uma descrição da violação encontrada durante a inspeção.
- RiskCategory: a gravidade do risco que uma violação representa para a saúde pública e a segurança.
A coluna label é aquela que você deseja prever. Ao executar uma tarefa de classificação, a meta é atribuir uma categoria (texto ou numérico). Nesse cenário de classificação, a gravidade da violação recebe o valor de baixo, moderado ou alto risco. Portanto, RiskCategory é o rótulo. São features as entradas que você dá ao modelo para prever o label. Nesse caso, o InspectionType e o ViolationDescription são usados como recursos ou entradas para prever a RiskCategory.
Criar arquivo de configuração do Construtor de Modelos
Ao adicionar pela primeira vez o Construtor de Modelos à solução, ele solicitará que você crie um mbconfig arquivo. O mbconfig arquivo controla tudo o que você faz no Construtor de Modelos para permitir que você reabra a sessão.
- No Gerenciador de Soluções, clique com o botão direito do mouse no projeto RestaurantViolations e selecione Adicionar>Modelo de Machine Learning.
- Nomeie o
mbconfigprojeto RestaurantViolationsPrediction e clique no botão Adicionar .
Escolha um cenário
Para treinar seu modelo, selecione na lista de cenários de machine learning disponíveis fornecidos pelo Construtor de Modelos. Nesse caso, o cenário é a classificação de dados.
- Para este exemplo, a tarefa é a classificação multiclasse. Na etapa Cenário do Construtor de Modelos, selecione o cenário de classificação de dados .
Carregar os dados
O Construtor de Modelos aceita dados de um banco de dados do SQL Server ou de um arquivo local em csv, tsvou txt formato.
- Na etapa de dados da ferramenta Construtor de Modelos, selecione SQL Server na seleção de tipo de fonte de dados.
- Selecione o botão Escolher fonte de dados .
- Na caixa de diálogo Escolher Fonte de Dados , selecione Arquivo de Banco de Dados do Microsoft SQL Server.
- Desmarque a caixa de seleção Sempre use esta seleção e clique em Continuar.
- Na caixa de diálogo Propriedades da Conexão , selecione Procurar e selecione o arquivo de RestaurantScores.mdf baixado.
- Selecione OK.
- Escolha Violações na lista suspensa Tabela.
- Escolha RiskCategory na lista suspensa Coluna a ser prevista (Rótulo).
- Deixe as seleções padrão nas opções de dados avançados.
- Clique no botão Próxima etapa para ir para a etapa de treinamento no Construtor de Modelos.
Treinar o modelo
A tarefa de machine learning usada para treinar o modelo de classificação de problemas neste tutorial é a classificação multiclasse. Durante o processo de treinamento de modelo, o Construtor de Modelos treina modelos separados usando diferentes algoritmos e configurações de classificação multiclasse para encontrar o modelo de melhor desempenho para seu conjunto de dados.
O tempo necessário para o modelo treinar é proporcional à quantidade de dados. O Model Builder seleciona automaticamente um valor padrão para Tempo para treinar (segundos) com base no tamanho da fonte de dados.
- O Construtor de Modelos define o valor de Tempo para treinar (segundos) como 60 segundos. O treinamento por um período mais longo permite que o Construtor de Modelos explore um número maior de algoritmos e uma combinação de parâmetros na pesquisa do melhor modelo.
- Clique em Iniciar Treinamento.
Durante todo o processo de treinamento, os dados de progresso são exibidos na Training results seção da etapa de treinamento.
- O status exibe o status de conclusão do processo de treinamento.
- A melhor precisão exibe a precisão do modelo com melhor desempenho encontrado pelo Model Builder até o momento. Maior precisão significa que o modelo previu mais corretamente nos dados de teste.
- O melhor algoritmo exibe o nome do algoritmo de melhor desempenho executado encontrado pelo Construtor de Modelos até agora.
- O último algoritmo exibe o nome do algoritmo usado mais recentemente pelo Construtor de Modelos para treinar o modelo.
Depois que o treinamento for concluído, o mbconfig arquivo terá o modelo gerado chamado RestaurantViolationsPrediction.zip após o treinamento e dois arquivos C# com ele:
- RestaurantViolationsPrediction.consumption.cs: esse arquivo tem um método público que carregará o modelo e criará um mecanismo de previsão com ele e retornará a previsão.
- RestaurantViolationsPrediction.training.cs: esse arquivo consiste no pipeline de treinamento que o Construtor de Modelos criou para criar o melhor modelo, incluindo todos os hiperparâmetros que ele usou.
Clique no botão Próxima etapa para navegar até a etapa de avaliação.
Avaliar o modelo
O resultado da etapa de treinamento será um modelo que teve o melhor desempenho. Na etapa de avaliação da ferramenta Construtor de Modelos, na seção Melhor modelo , conterá o algoritmo usado pelo modelo de melhor desempenho na entrada Modelo , juntamente com métricas para esse modelo em Precisão.
Além disso, na janela Saída do Visual Studio, haverá uma tabela de resumo contendo os principais modelos e suas métricas.
Esta seção também permitirá que você teste seu modelo executando uma única previsão. Ele oferecerá caixas de texto para preencher valores e você poderá clicar no botão Prever para obter uma previsão do melhor modelo. Por padrão, isso será preenchido por uma linha aleatória em seu conjunto de dados.
(Opcional) Consumir o modelo
Esta etapa terá modelos de projeto que você pode usar para consumir o modelo. Esta etapa é opcional e você pode escolher o método que melhor atende às suas necessidades sobre como atender ao modelo.
- Aplicativo de Console
- Web API
Aplicativo de Console
Ao adicionar um aplicativo de console à sua solução, você será solicitado a nomear o projeto.
Nomeie o projeto de console RestaurantViolationsPrediction_Console.
Clique em Adicionar à solução para adicionar o projeto à sua solução atual.
Execute o aplicativo.
A saída gerada pelo programa deve ser semelhante ao snippet abaixo:
InspectionType: Routine - Unscheduled ViolationDescription: Moderate risk food holding temperature Predicted RiskCategory: Moderate Risk
Web API
Ao adicionar uma API Web à sua solução, você será solicitado a nomear o projeto.
Nomeie o projeto da API Web RestaurantViolationsPrediction_API.
Clique em Adicionar à solução* para adicionar o projeto à sua solução atual.
Execute o aplicativo.
Abra o PowerShell e insira o código a seguir em que PORT é a porta em que seu aplicativo está escutando.
$body = @{ InspectionType="Reinspection/Followup" ViolationDescription="Inadequately cleaned or sanitized food contact surfaces" } Invoke-RestMethod "https://localhost:<PORT>/predict" -Method Post -Body ($body | ConvertTo-Json) -ContentType "application/json"Se tiver êxito, a saída deverá ser semelhante ao texto abaixo. A saída tem a RiskCategory prevista como Risco Moderado e tem as pontuações de cada um dos rótulos de entrada – Baixo Risco, Alto Risco e Risco Moderado.
prediction score ---------- ----- Moderate Risk {0.055566575, 0.058012854, 0.88642055}
Parabéns! Você criou com êxito um modelo de machine learning para categorizar o risco de violações de integridade usando o Construtor de Modelos. Você pode encontrar o código-fonte deste tutorial no repositório GitHub do dotnet/machinelearning-samples .
Recursos adicionais
Para saber mais sobre os tópicos mencionados neste tutorial, visite os seguintes recursos:
