Kurz: klasifikace závažnosti porušení stavu restaurací pomocí Tvůrce modelůTutorial: Classify the severity of restaurant health violations with Model Builder

Naučte se vytvářet model klasifikace s více třídami pomocí Tvůrce modelů ke kategorizaci úrovně rizika porušení v restauracích, která byla zjištěna během kontrol stavu.Learn how to build a multiclass classification model using Model Builder to categorize the risk level of restaurant violations found during health inspections.

V tomto kurzu se naučíte:In this tutorial, you learn how to:

  • Příprava a pochopení datPrepare and understand the data
  • Zvolte scénářChoose a scenario
  • Načtení dat z databázeLoad data from a database
  • Výuka modeluTrain the model
  • Vyhodnocení modeluEvaluate the model
  • Použití modelu pro předpovědiUse the model for predictions

Poznámka

Tvůrce modelů je aktuálně ve verzi Preview.Model Builder is currently in Preview.

PožadavkyPrerequisites

Seznam požadavků a pokyny k instalaci najdete v Průvodci instalací modelu modelů.For a list of prerequisites and installation instructions, visit the Model Builder installation guide.

Přehled klasifikace více tříd tvůrce modelůModel Builder multiclass classification overview

Tato ukázka vytvoří konzolovou aplikaci C# .NET Core, která kategorizuje riziko porušení stavu pomocí modelu strojového učení sestaveného pomocí Tvůrce modelů.This sample creates a C# .NET Core console application that categorizes the risk of health violations using a machine learning model built with Model Builder. Zdrojový kód pro tento kurz najdete v úložišti GitHub /machinelearning-Samples .You can find the source code for this tutorial at the dotnet/machinelearning-samples GitHub repository.

Vytvoření konzolové aplikaceCreate a console application

  1. Vytvořte C# konzolovou aplikaci .NET Core nazvanou "RestaurantViolations".Create a C# .NET Core console application called "RestaurantViolations". Ujistěte se, že umístění řešení a projekt ve stejném adresáři není zaškrtnuté (vs 2019), nebo je zaškrtnuté políčko vytvořit adresář pro řešení (vs 2017).Make sure Place solution and project in the same directory is unchecked (VS 2019), or Create directory for solution is checked (VS 2017).

Příprava a pochopení datPrepare and understand the data

Datová sada, která se používá ke studiu a vyhodnocení modelu Machine Learning, je původně od Francisco oddělení San veřejného zdravotního hodnocení z oblasti bezpečnosti restaurace.The data set used to train and evaluate the machine learning model is originally from the San Francisco Department of Public Health Restaurant Safety Scores. Pro usnadnění pohodlí byla datová sada zhuštěná tak, aby obsahovala pouze sloupce, které jsou relevantní pro výuku modelu a předpovědi.For convenience, the dataset has been condensed to only include the columns relevant to train the model and make predictions. Další informace o této datové saděnajdete na následujícím webu.Visit the following website to learn more about the dataset.

Stáhněte si datovou sadu výsledků pro bezpečnost restaurace a rozbalte ji.Download the Restaurant Safety Scores dataset and unzip it.

Každý řádek v datové sadě obsahuje informace o porušeních zjištěných během kontroly ze zdravotního oddělení a posouzení rizika ohrožení bezpečnosti veřejného zdraví a bezpečnosti.Each row in the dataset contains information regarding violations observed during an inspection from the Health Department and a risk assessment of the threat those violations present to public health and safety.

InspectionTypeInspectionType ViolationDescriptionViolationDescription RiskCategoryRiskCategory
Rutina – neplánovanáRoutine - Unscheduled Nedostatečné vyčištěné nebo upravené kontaktní plochy v potravináchInadequately cleaned or sanitized food contact surfaces Střední rizikoModerate Risk
Nové vlastnictvíNew Ownership Vysoce rizikové napadení škůdciHigh risk vermin infestation Vysoké rizikoHigh Risk
Rutina – neplánovanáRoutine - Unscheduled Vymazání tkanin není čisté nebo správně uložené nebo nedostatečného upraveného.Wiping cloths not clean or properly stored or inadequate sanitizer Nízké rizikoLow Risk
  • InspectionType: typ kontroly.InspectionType: the type of inspection. Může to být buď první kontrola pro nové zařízení, rutinní kontrola, kontrola stížnosti a mnoho dalších typů.This can either be a first-time inspection for a new establishment, a routine inspection, a complaint inspection, and many other types.
  • ViolationDescription: byl zjištěn popis porušení během kontroly.ViolationDescription: a description of the violation found during inspection.
  • RiskCategory: závažnost rizika, které je porušením, představuje veřejný stav a bezpečnost.RiskCategory: the risk severity a violation poses to public health and safety.

label je sloupec, který chcete předpovědět.The label is the column you want to predict. Při provádění úlohy klasifikace je cílem přiřadit kategorii (text nebo číselnou).When performing a classification task, the goal is to assign a category (text or numerical). V tomto scénáři klasifikace je závažnost porušení přiřazena hodnotě nízké, střední nebo vysoké rizikovosti.In this classification scenario, the severity of the violation is assigned the value of low, moderate, or high risk. Proto je RiskCategory jmenovka.Therefore, the RiskCategory is the label. features jsou vstupy, které modelu udělíte pro předpověď label.The features are the inputs you give the model to predict the label. V tomto případě se InspectionType a ViolationDescription používají jako funkce nebo vstupy pro předpověď RiskCategory.In this case, the InspectionType and ViolationDescription are used as features or inputs to predict the RiskCategory.

Zvolte scénářChoose a scenario

Průvodce tvůrcem modelů v aplikaci Visual Studio

Pokud chcete svůj model naučit, vyberte si ze seznamu dostupných scénářů strojového učení, které poskytuje tvůrce modelů.To train your model, select from the list of available machine learning scenarios provided by Model Builder. V takovém případě se jedná o scénář klasifikace.In this case, the scenario is Issue Classification.

  1. V Průzkumník řešeníklikněte pravým tlačítkem myši na projekt RestaurantViolations a vyberte Přidat > Machine Learning.In Solution Explorer, right-click the RestaurantViolations project, and select Add > Machine Learning.
  2. Pro tuto ukázku je scénářem klasifikace s více třídami.For this sample, the scenario is multiclass classification. V kroku scénář v Tvůrci modelů vyberte scénář klasifikace problému .In the Scenario step of Model Builder, select the Issue Classification scenario.

Načtení datLoad the data

Tvůrce modelů přijímá data z databáze SQL Server nebo místního souboru ve formátu csv nebo tsv.Model Builder accepts data from a SQL Server database or a local file in csv or tsv format.

  1. V kroku data nástroje Tvůrce modelů vyberte v rozevíracím seznamu zdroj dat možnost SQL Server .In the data step of the Model Builder tool, select SQL Server from the data source dropdown.
  2. Vyberte tlačítko vedle textového pole připojit k SQL Server databázi .Select the button next to the Connect to SQL Server database text box.
    1. V dialogovém okně Vybrat data vyberte Microsoft SQL Server databázový soubor.In the Choose Data dialog, select Microsoft SQL Server Database File.
    2. Zrušte zaškrtnutí políčka vždy použít tento výběr a vyberte pokračovat.Uncheck the Always use this selection checkbox and select Continue.
    3. V dialogovém okně Vlastnosti připojení vyberte Procházet a vyberte stažený soubor RestaurantScores. mdf .In the Connection Properties dialog, select Browse and select the downloaded RestaurantScores.mdf file.
    4. Vyberte OK.Select OK.
  3. V rozevíracím seznamu název tabulky vyberte možnost porušení .Choose Violations from the Table Name dropdown.
  4. V rozevíracím seznamu sloupec pro předpověď (popisek) vyberte RiskCategory .Choose RiskCategory in the Column to Predict (Label) dropdown.
  5. Ponechte výchozí výběry sloupců, InspectionType a ViolationDescription, zaškrtněte rozevírací seznam vstupní sloupce (funkce) .Leave the default column selections, InspectionType and ViolationDescription, checked in the Input Columns (Features) dropdown.
  6. Vyberte odkaz výuka , který se přesune k dalšímu kroku v Tvůrci modelů.Select the Train link to move to the next step in Model Builder.

Výuka modeluTrain the model

Úkolem strojového učení, který se používá ke studiu modelu klasifikace problému v tomto kurzu, je klasifikace s více třídami.The machine learning task used to train the issue classification model in this tutorial is multiclass classification. V průběhu procesu školení modelů vlacích sestaví model modelování samostatné modely pomocí různých algoritmů a nastavení třídy s více třídami, aby bylo možné najít nejlepší model pro datovou sadu.During the model training process, Model Builder trains separate models using different multiclass classification algorithms and settings to find the best performing model for your dataset.

Čas potřebný ke školení modelu je úměrný množství dat.The time required for the model to train is proportional to the amount of data. Tvůrce modelů automaticky vybere výchozí hodnotu pro čas do výuky (sekundy) na základě velikosti zdroje dat.Model Builder automatically selects a default value for Time to train (seconds) based on the size of your data source.

  1. I když tvůrce modelů nastaví hodnotu času na vlak (sekundy) až 10 sekund, narůstá na 30 sekund.Although Model Builder sets the value of Time to train (seconds) to 10 seconds, increase it to 30 seconds. Školení po delší dobu umožňuje tvůrci modelů prozkoumat větší počet algoritmů a kombinaci parametrů při hledání nejlepšího modelu.Training for a longer period of time allows Model Builder to explore a larger number of algorithms and combination of parameters in search of the best model.

  2. Vyberte Spustit školení.Select Start Training.

    V průběhu procesu školení se data o průběhu zobrazují v části Progress v kroku výuka.Throughout the training process, progress data is displayed in the Progress section of the train step.

    • Stav zobrazuje stav dokončení procesu školení.Status displays the completion status of the training process.
    • Nejlepší přesnost zobrazuje přesnost nejlepšího modelu, kterou najde tvůrce modelů, zatím.Best accuracy displays the accuracy of the best performing model found by Model Builder so far. Vyšší přesnost znamená, že model se v testovacích datech podrobnějším způsobem vypovídat.Higher accuracy means the model predicted more correctly on test data.
    • Nejlepší algoritmus zobrazuje název nejlepšího algoritmu nalezeného tvůrcem modelu, zatím.Best algorithm displays the name of the best-performing algorithm found by Model Builder so far.
    • Poslední algoritmus zobrazuje název algoritmu naposledy, který tvůrce modelů použil k vytvoření výukového modelu.Last algorithm displays the name of the algorithm most recently used by Model Builder to train the model.
  3. Po dokončení školení vyberte odkaz vyhodnotit , který se přesune k dalšímu kroku.Once training is complete, select the Evaluate link to move to the next step.

Vyhodnocení modeluEvaluate the model

Výsledkem kroku školení je jeden model, který má nejlepší výkon.The result of the training step is the one model that had the best performance. V kroku vyhodnocení v Tvůrci modelů obsahuje oddíl Output algoritmus používaný modelem nejlepšího provádění v nejlepším záznamu modelu spolu se metrikami v nejvyšší přesnosti modelu.In the evaluate step of Model Builder, the output section contains the algorithm used by the best performing model in the Best Model entry along with metrics in Best Model Accuracy. Kromě toho se zobrazí Souhrnná tabulka obsahující až pět modelů, které se prozkoumaly a jejich metriky.Additionally, a summary table containing up to five models that were explored and their metrics is displayed.

Pokud nejste spokojeni s metrikami přesnosti, můžou se některé snadné způsoby, jak se pokusit zvýšit přesnost modelu, zvýšit množství času pro výuku modelu nebo použít více dat.If you're not satisfied with your accuracy metrics, some easy ways to try to improve model accuracy are to increase the amount of time to train the model or use more data. V opačném případě vyberte odkaz kód , který se přesune k poslednímu kroku v Tvůrci modelů.Otherwise, select the code link to move to the final step in Model Builder.

Přidejte kód, který provede předpovědiAdd the code to make predictions

Dva projekty jsou vytvořeny v důsledku školicího procesu.Two projects are created as a result of the training process.

  • RestaurantViolationsML. ConsoleApp: Konzolová aplikace C# .NET Core, která obsahuje kód pro školení modelů a ukázku kódu.RestaurantViolationsML.ConsoleApp: A C# .NET Core Console application that contains the model training and sample consumption code.
  • RestaurantViolationsML. model: .NET Standard knihovny tříd obsahující datové modely, které definují schéma vstupních a výstupních dat modelu, uloženou verzi modelu nejlepšího provádění během školení a pomocnou třídu nazvanou ConsumeModel k vytvoření předpovědi.RestaurantViolationsML.Model: A .NET Standard class library containing the data models that define the schema of input and output model data, the saved version of the best performing model during training, and a helper class called ConsumeModel to make predictions.
  1. V kroku Code v Tvůrci modelů vyberte Přidat projekty a přidejte do řešení automaticky generované projekty.In the code step of Model Builder, select Add Projects to add the autogenerated projects to the solution.

  2. Otevřete soubor program.cs v projektu RestaurantViolations .Open the Program.cs file in the RestaurantViolations project.

  3. Přidejte následující příkaz using pro odkaz na projekt RestaurantViolationsML. model :Add the following using statement to reference the RestaurantViolationsML.Model project:

    using RestaurantViolationsML.Model;
    
  4. Chcete-li vytvořit předpovědi pro nová data pomocí modelu, vytvořte novou instanci třídy ModelInput v rámci metody Main vaší aplikace.To make a prediction on new data using the model, create a new instance of the ModelInput class inside the Main method of your application. Všimněte si, že kategorie rizik není součástí vstupu.Notice that the risk category is not part of the input. Důvodem je to, že model vygeneruje předpověď pro něj.This is because the model generates the prediction for it.

    ModelInput input = new ModelInput
    {
        InspectionType = "Complaint",
        ViolationDescription = "Inadequate sewage or wastewater disposal"
    };
    
  5. Použijte metodu Predict z ConsumeModel třídy.Use the Predict method from the ConsumeModel class. Metoda Predict načte vyškolený model, vytvoří PredictionEngine pro model a použije ho k předpovědií nových dat.The Predict method loads the trained model, creates a PredictionEngine for the model, and uses it to make predictions on new data.

    // Make prediction
    ModelOutput result = ConsumeModel.Predict(input);
    
    // Print Prediction
    Console.WriteLine($"Inspection type: {input.InspectionType}");
    Console.WriteLine($"Violation description: {input.ViolationDescription}");
    Console.WriteLine($"Predicted risk category: {result.Prediction}");
    Console.ReadKey();
    
  6. Spusťte aplikaci.Run the application.

    Výstup generovaný programem by měl vypadat podobně jako následující fragment kódu:The output generated by the program should look similar to the snippet below:

    Inspection Type: Complaint
    Violation Description: Inadequate sewage or wastewater disposal
    Risk Category: Moderate Risk
    

Pokud potřebujete odkazovat na vygenerované projekty později v jiném řešení, můžete je najít v adresáři C:\Users\%USERNAME%\AppData\Local\Temp\MLVSTools.If you need to reference the generated projects at a later time inside of another solution, you can find them inside the C:\Users\%USERNAME%\AppData\Local\Temp\MLVSTools directory.

Blahopřejeme!Congratulations! Úspěšně jste vytvořili model strojového učení pro kategorizaci rizika narušení stavu pomocí Tvůrce modelů.You've successfully built a machine learning model to categorize the risk of health violations using Model Builder. Zdrojový kód pro tento kurz najdete v úložišti GitHub /machinelearning-Samples .You can find the source code for this tutorial at the dotnet/machinelearning-samples GitHub repository.

Další materiály a zdroje informacíAdditional resources

Další informace o tématech uvedených v tomto kurzu najdete v následujících zdrojích informací:To learn more about topics mentioned in this tutorial, visit the following resources: