Sdílet prostřednictvím


Kurz: Klasifikace závažnosti porušení stavu restaurace pomocí Tvůrce modelů

Zjistěte, jak vytvořit model klasifikace s více třídami pomocí Tvůrce modelů ke kategorizaci úrovně rizika porušení restaurací nalezených během kontrol stavu.

V tomto návodu se naučíte, jak:

  • Příprava a pochopení dat
  • 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 předpovědi

Požadavky

Seznam požadavků a pokynů k instalaci najdete v průvodci instalací Model Builderu.

Přehled vícetřídní klasifikace Model Builderu

Tato ukázka vytvoří konzolovou aplikaci jazyka C#, která kategorizuje riziko porušení stavu pomocí modelu strojového učení vytvořeného pomocí Tvůrce modelů. Zdrojový kód pro tento kurz najdete v úložišti dotnet/machinelearning-samples na GitHubu.

Vytvoření konzolové aplikace

Vytvořte konzolovou aplikaci jazyka C# s názvem RestaurantViolations.

Příprava a pochopení dat

Datová sada používaná k trénování a vyhodnocení modelu strojového učení je původně z bezpečnostních skóre veřejné zdravotnické restaurace v San Franciscu. Pro usnadnění je datová sada zhuštěná tak, aby zahrnovala 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 Bezpečnostní skóre restaurace a rozbalte ji.

Každý řádek v datové sadě obsahuje informace týkající se porušení pozorovaných během kontroly od zdravotnického oddělení a posouzení rizika ohrožení, které tato porušení představují pro veřejné zdraví a bezpečnost.

Typ kontroly Popis porušení RiskCategory
Rutina – nenaplánované Nedostatečně vyčištěné nebo sanitované kontaktní plochy potravin Střední riziko
Nové vlastnictví Vysoce riziková infestace škůdci Vysoké riziko
Rutina – nenaplánované Čisticí hadříky nejsou čisté, správně uložené nebo není dostatečný dezinfekční prostředek. Nízké riziko
  • Typ kontroly: typ kontroly. Může to být buď první kontrola nového zařízení, pravidelná kontrola, kontrola stížnosti a mnoho dalších typů.
  • ViolationDescription: popis porušení zjištěné během kontroly.
  • RiskCategory: závažnost rizika, které porušení představuje pro veřejné zdraví a bezpečnost.

label je sloupec, který chcete předpovědět. Při provádění klasifikačního úkolu je cílem přiřadit kategorii (text nebo číselnou hodnotu). V tomto scénáři klasifikace je závažnost porušení přiřazena hodnota nízké, střední nebo vysoké riziko. Proto je RiskCategory popisek. features jsou vstupy, které model používá k předpovědi label. V tomto případě se kontrolní typ a ViolationDescription používají jako funkce nebo vstupy k predikci RiskCategory.

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í souboru mbconfig. Soubor mbconfig sleduje všechno, co v Tvůrci modelů děláte, abyste mohli relaci znovu otevřít.

  1. V Průzkumníku řešení klikněte pravým tlačítkem na projekt RestaurantViolations a vyberte Přidat>model strojového učení.
  2. Pojmenujte mbconfig projekt RestaurantViolationsPrediction a klikněte na tlačítko Přidat .

Volba scénáře

Obrazovka scénáře tvůrce modelů

Pokud chcete model vytrénovat, vyberte ze seznamu dostupných scénářů strojového učení poskytovaných Tvůrcem modelů. V tomto případě se jedná o klasifikaci dat.

  1. Pro tuto ukázku je úkolem vícetřídová klasifikace. V kroku Scénář v Tvůrci modelů vyberte scénář klasifikace dat .

Načtení dat

Tvůrce modelů přijímá data z databáze SQL Serveru nebo místního souboru v csv, tsvnebo txt ve formátu.

  1. V datovém kroku nástroje Tvůrce modelů vyberte SQL Server z výběru typu zdroje dat.
  2. Vyberte tlačítko Zvolit zdroj dat .
    1. V dialogovém okně Zvolit zdroj dat vyberte soubor databáze microsoft SQL Serveru.
    2. Zrušte zaškrtnutí políčka Vždy použít tento výběr a klikněte na Pokračovat.
    3. V dialogovém okně Vlastnosti připojení vyberte Procházet a vyberte stažený soubor RestaurantScores.mdf .
    4. Vyberte OK.
  3. V rozevíracím seznamu Tabulka zvolte Porušení.
  4. V rozevíracím seznamu Sloupec pro predikci (štítek) zvolte RiskCategory.
  5. V rozšířených možnostech dat ponechte výchozí výběry.
  6. Kliknutím na tlačítko Další krok přejdete do kroku 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ému 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 klasifikačních algoritmů a nastavení s více třídami, abyste našli 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 pro Čas trénování (sekund) na základě velikosti zdroje dat.

  1. Tvůrce modelů nastaví hodnotu Time to train (seconds) na 60 sekund. Trénování po delší dobu umožňuje Tvůrci modelů prozkoumat větší počet algoritmů a kombinaci parametrů při hledání nejlepšího modelu.
  2. Klikněte na Zahájit trénování.

Během tréninkového procesu se údaje o postupu zobrazují v části Training results kroku tréninku.

  • Stav zobrazuje stav dokončení procesu trénování.
  • Nejlepší přesnost zobrazuje přesnost modelu s nejlepším výkonem, který dosud našel Tvůrce modelů. Vyšší přesnost znamená, že model předpověděl správně na testovacích datech.
  • Nejlepší algoritmus zobrazuje název algoritmu s nejlepším výkonem, který dosud našel Tvůrce modelů.
  • Poslední algoritmus zobrazuje název algoritmu, který naposledy použil Tvůrce modelů k trénování modelu.

Po dokončení trénování bude mít soubor mbconfig vygenerovaný model s názvem RestaurantViolationsPrediction.zip po trénování a dva soubory jazyka C#:

  • RestaurantViolationsPrediction.consumption.cs: Tento soubor má veřejnou metodu, která načte model a vytvoří s ním prediktivní modul a vrátí predikci.
  • RestaurantViolationsPrediction.training.cs: Tento soubor se skládá z trénovacího kanálu, se kterým Tvůrce modelů vytvořil nejlepší model, včetně všech 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ý nejvýkonnějším modelem v položce Model spolu s metrikami pro daný model v přesnosti.

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 k vyplnění hodnot a kliknutím na tlačítko Předpovědět můžete získat předpověď z nejlepšího modelu. Ve výchozím nastavení se vyplní náhodným řádkem v datové sadě.

(Volitelné) Spotřebovat model

Tento krok bude obsahovat šablony projektů, které můžete použít k využívání modelu. Tento krok je volitelný a můžete zvolit metodu, která nejlépe vyhovuje vašim potřebám při poskytování modelu.

  • Konzolová aplikace
  • Webové rozhraní API

Konzolová aplikace

Když do řešení přidáte konzolovou aplikaci, zobrazí se výzva k pojmenování projektu.

  1. Pojmenujte projekt konzoly RestaurantViolationsPrediction_Console.

  2. Kliknutím na Přidat do řešení přidejte projekt do aktuálního řešení.

  3. Aplikaci spusťte.

    Výstup vygenerovaný programem by měl vypadat podobně jako v následujícím fragmentu 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 vašeho řešení se zobrazí výzva k pojmenování projektu.

  1. Pojmenujte projekt webového rozhraní API RestaurantViolationsPrediction_API.

  2. Kliknutím na Přidat do řešení* přidejte projekt do aktuálního řešení.

  3. Aplikaci spusťte.

  4. 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"
    
  5. Pokud je výstup úspěšný, měl by vypadat podobně jako v následujícím textu. Výstup má predikovanou hodnotu RiskCategory jako střední riziko a má skóre každého ze vstupních popisků – Nízké riziko, Vysoké riziko a Střední riziko.

    prediction    score
    ----------    -----
    Moderate Risk {0.055566575, 0.058012854, 0.88642055}
    

Gratulujeme! Úspěšně jste vytvořili model strojového učení pro kategorizaci rizika porušení stavu pomocí Tvůrce modelů. Zdrojový kód pro tento kurz najdete v úložišti dotnet/machinelearning-samples na GitHubu.

Dodatečné zdroje

Další informace o tématech uvedených v tomto kurzu najdete v následujících zdrojích informací: