Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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.
- V Průzkumníku řešení klikněte pravým tlačítkem na projekt RestaurantViolations a vyberte Přidat>model strojového učení.
- Pojmenujte
mbconfigprojekt 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.
- 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.
- 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 Serveru.
- 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 pro predikci (štítek) zvolte RiskCategory.
- V rozšířených možnostech dat ponechte výchozí výběry.
- 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.
- 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.
- 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.
Pojmenujte projekt konzoly RestaurantViolationsPrediction_Console.
Kliknutím na Přidat do řešení přidejte projekt do aktuálního řešení.
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.
Pojmenujte projekt webového rozhraní API RestaurantViolationsPrediction_API.
Kliknutím na Přidat do řešení* přidejte projekt do aktuálního řešení.
Aplikaci spusťte.
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"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í:
- Scénáře Tvůrce modelů
- Klasifikace s více třídami
- Metriky modelu klasifikace s více třídami