Kurz: Klasifikace závažnosti porušení stavu restaurace pomocí Model Builderu
Zjistěte, jak pomocí Tvůrce modelů vytvořit klasifikační model s více třídami, abyste mohli kategorizovat úroveň rizika porušení předpisů v restauraci zjištěných během kontrol stavu.
V tomto kurzu se naučíte:
- Příprava dat a jejich pochopení
- Vytvoření konfiguračního souboru Tvůrce modelů
- Volba scénáře
- Načtení dat z databáze
- Trénování modelu
- Vyhodnocení modelu
- Použití modelu pro predikce
Požadavky
Seznam požadavků a pokyny k instalaci najdete v průvodci instalací Model Builderu.
Přehled klasifikace více tříd v Model Builderu
Tato ukázka vytvoří konzolovou aplikaci c# .NET Core, která kategorizuje riziko narušení zdraví pomocí modelu strojového učení vytvořeného pomocí Tvůrce modelů. Zdrojový kód pro tento kurz najdete v úložišti GitHubu dotnet/machinelearning-samples .
Vytvoření konzolové aplikace
- Vytvořte konzolovou aplikaci C# .NET Core s názvem "RestaurantViolations".
Příprava dat a jejich pochopení
Datová sada sloužící k trénování a vyhodnocení modelu strojového učení pochází původně ze San Francisca Department of Public Health Restaurant Safety Scores. Pro usnadnění je datová sada zhuštěná tak, aby obsahovala pouze sloupce relevantní pro trénování modelu a vytváření předpovědí. Další informace o datové sadě najdete na následujícím webu.
Stáhněte si datovou sadu Skóre bezpečnosti restaurace a rozbalte ji.
Každý řádek v datové sadě obsahuje informace týkající se porušení pozorovaných během kontroly z ministerstva zdravotnictví a posouzení rizika ohrožení veřejného zdraví a bezpečnosti, které tato porušení představují.
Typ kontroly | ViolationDescription | RiskCategory |
---|---|---|
Rutina – nenaplánované | Nedostatečně vyčištěné nebo upravené kontaktní plochy potravin | Střední riziko |
Nové vlastnictví | High risk vermin infestation | Vysoké riziko |
Rutina – nenaplánované | Otírání nečistých nebo řádně uložených utěrk nebo nedostatečné sanitizery | Nízké riziko |
- InspectionType: typ kontroly. Může se jednat o první kontrolu nové provozovny, pravidelnou inspekci, kontrolu stížnosti a mnoho dalších typů.
- ViolationDescription: popis porušení nalezeného během kontroly.
- RiskCategory: závažnost rizika, která porušení představuje pro veřejné zdraví a bezpečnost.
Je label
sloupec, který chcete předpovědět. Při provádění úlohy klasifikace je cílem přiřadit kategorii (textovou nebo číselnou). V tomto scénáři klasifikace se závažnosti porušení přiřadí hodnota nízké, střední nebo vysoké riziko. Proto je popisek RiskCategory . Jsou features
vstupy, které modelu předpovíte label
. V tomto případě se jako funkce nebo vstupy pro predikci RiskCategory používají InspectionType a ViolationDescription.
Vytvoření konfiguračního souboru Tvůrce modelů
Při prvním přidání Tvůrce modelů do řešení se zobrazí výzva k vytvoření mbconfig
souboru. Soubor mbconfig
uchovává přehled o všem, co v Model Builderu děláte, abyste mohli relaci znovu otevřít.
- V Průzkumník řešení klikněte pravým tlačítkem na projekt RestaurantViolations a vyberte Přidat>model strojového učení....
- Pojmenujte
mbconfig
projekt RestaurantViolationsPrediction a klikněte na tlačítko Přidat .
Volba scénáře
Pokud chcete model vytrénovat, vyberte ze seznamu dostupných scénářů strojového učení, které poskytuje Tvůrce modelů. V tomto případě se jedná o scénář Klasifikace dat.
- V této ukázce je úkolem klasifikace s více třídami. V kroku Scénář v Tvůrci modelů vyberte scénář klasifikace dat .
Načtení dat
Model Builder přijímá data z SQL Server databáze nebo místního souboru ve csv
formátu , tsv
nebo txt
.
- V datovém kroku nástroje Tvůrce modelů vyberte SQL Server z výběru typu zdroje dat.
- Vyberte tlačítko Zvolit zdroj dat .
- V dialogovém okně Zvolit zdroj dat vyberte Soubor databáze Microsoft SQL Server.
- Zrušte zaškrtnutí políčka Vždy použít tento výběr a klikněte na Pokračovat.
- V dialogovém okně Vlastnosti připojení vyberte Procházet a vyberte stažený soubor RestaurantScores.mdf .
- Vyberte OK.
- V rozevíracím seznamu Tabulka zvolte Porušení.
- V rozevíracím seznamu Sloupec chcete predikovat (Label) zvolte RiskCategory.
- V části Upřesnit možnosti dat ponechte výchozí výběr.
- Kliknutím na tlačítko Další krok přejděte na krok trénování v Tvůrci modelů.
Trénování modelu
Úloha strojového učení použitá k trénování modelu klasifikace problémů v tomto kurzu je klasifikace s více třídami. Během procesu trénování modelu Model Builder trénuje samostatné modely pomocí různých algoritmů a nastavení klasifikace s více třídami, aby našel model s nejlepším výkonem pro vaši datovou sadu.
Doba potřebná k trénování modelu je úměrná množství dat. Tvůrce modelů automaticky vybere výchozí hodnotu trénování (sekundy) na základě velikosti zdroje dat.
- Model Builder nastaví hodnotu Doba trénování (sekundy) na 60 sekund. Trénování po delší dobu umožňuje Model Builderu prozkoumat větší počet algoritmů a kombinaci parametrů při hledání nejlepšího modelu.
- Klikněte na Spustit trénování.
V průběhu trénování se v části kroku trénování zobrazují Training results
údaje o průběhu.
- Stav zobrazuje stav dokončení procesu trénování.
- Nejlepší přesnost zobrazuje přesnost modelu s nejlepším výkonem, který tvůrce modelů zatím zjistil. Vyšší přesnost znamená, že model předpověděl na testovacích datech správněji.
- Nejlepší algoritmus zobrazí název algoritmu s nejlepším výkonem, který tvůrce modelů zatím provedl.
- Poslední algoritmus zobrazuje název algoritmu, který tvůrce modelů naposledy použil k trénování modelu.
Po dokončení mbconfig
trénování bude soubor obsahovat vygenerovaný model s názvem RestaurantViolationsPrediction.zip
po trénování a dva soubory jazyka C#:
- RestaurantViolationsPrediction.consumption.cs: Tento soubor obsahuje veřejnou metodu, která načte model a vytvoří s ním prediktivní modul a vrátí předpověď.
- RestaurantViolationsPrediction.training.cs: Tento soubor se skládá z trénovacího kanálu, se kterým Model Builder vytvořil nejlepší model, včetně jakýchkoli hyperparametrů, které použil.
Kliknutím na tlačítko Další krok přejděte ke kroku vyhodnocení.
Vyhodnocení modelu
Výsledkem trénovacího kroku bude jeden model, který měl nejlepší výkon. V kroku vyhodnocení nástroje Tvůrce modelů bude v části Nejlepší model obsahovat algoritmus používaný modelem s nejlepším výkonem v položce Model spolu s metrikami pro tento model v části Přesnost.
Kromě toho v okně Výstup sady Visual Studio bude souhrnná tabulka obsahující hlavní modely a jejich metriky.
Tato část vám také umožní otestovat model provedením jedné předpovědi. Nabídne textová pole pro vyplnění hodnot a můžete kliknout na tlačítko Predict ( Předpovědět ) a získat předpověď z nejlepšího modelu. Ve výchozím nastavení se vyplní náhodným řádkem v datové sadě.
(Volitelné) Využití modelu
Tento krok bude obsahovat šablony projektů, které můžete použít k využití modelu. Tento krok je volitelný a můžete zvolit metodu, která nejlépe vyhovuje vašim potřebám, a určit způsob obsluhy modelu.
- Aplikace konzoly
- Webové rozhraní API
Aplikace konzoly
Při přidávání konzolové aplikace do řešení se zobrazí výzva k pojmenování projektu.
Projekt konzoly pojmenujte RestaurantViolationsPrediction_Console.
Kliknutím na Přidat do řešení přidejte projekt do aktuálního řešení.
Spusťte aplikaci.
Výstup vygenerovaný programem by měl vypadat podobně jako následující fragment kódu:
InspectionType: Routine - Unscheduled ViolationDescription: Moderate risk food holding temperature Predicted RiskCategory: Moderate Risk
Webové rozhraní API
Při přidávání webového rozhraní API do řešení se zobrazí výzva k pojmenování projektu.
Projekt webového rozhraní API pojmenujte RestaurantViolationsPrediction_API.
Kliknutím na Přidat do řešení* přidejte projekt do aktuálního řešení.
Spusťte aplikaci.
Otevřete PowerShell a zadejte následující kód, kde PORT je port, na kterém vaše aplikace naslouchá.
$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"
V případě úspěchu by výstup měl vypadat podobně jako následující text. Výstup obsahuje predikovanou kategorii RiskCategory jako Moderate Risk (Střední riziko ) a má skóre jednotlivých vstupních popisků – Low Risk (Nízké riziko), High Risk (Vysoké riziko) a Moderate Risk (Střední riziko).
prediction score ---------- ----- Moderate Risk {0.055566575, 0.058012854, 0.88642055}
Gratulujeme! Úspěšně jste vytvořili model strojového učení, který pomocí Tvůrce modelů kategorizuje riziko narušení zdraví. Zdrojový kód pro tento kurz najdete v úložišti GitHubu dotnet/machinelearning-samples .
Další materiály
Další informace o tématech uvedených v tomto kurzu najdete v následujících zdrojích informací: