Oktatóanyag: Az éttermi állapot megsértésének súlyossága a Model Builderrel
Megtudhatja, hogyan hozhat létre többosztályos besorolási modellt a Model Builderrel az éttermi jogsértések kockázati szintjének kategorizálásához az egészségügyi vizsgálatok során.
Eben az oktatóanyagban az alábbiakkal fog megismerkedni:
- Az adatok előkészítése és értelmezése
- Modellkészítő konfigurációs fájljának létrehozása
- Forgatókönyv kiválasztása
- Adatok betöltése adatbázisból
- A modell betanítása
- A modell értékelése
- A modell használata előrejelzésekhez
Előfeltételek
Az előfeltételek és a telepítési utasítások listáját a Model Builder telepítési útmutatójában találja.
A Model Builder többosztályos besorolásának áttekintése
Ez a minta egy C# .NET Core-konzolalkalmazást hoz létre, amely a Model Builderrel létrehozott gépi tanulási modell használatával kategorizálja az állapotsértések kockázatát. Az oktatóanyag forráskódját a dotnet/machinelearning-samples GitHub-adattárban találja.
Konzolalkalmazás létrehozása
- Hozzon létre egy "RestaurantViolations" nevű C# .NET Core-konzolalkalmazást .
Az adatok előkészítése és értelmezése
A gépi tanulási modell betanításához és értékeléséhez használt adatkészlet eredetileg a San Francisco-i Közegészségügyi Minisztérium éttermi biztonsági pontszámaiból származik. Az egyszerűség kedvéért az adathalmazt úgy tömörítették, hogy csak a modell betanítása és az előrejelzések készítéséhez releváns oszlopok legyenek belefoglalva. Az adatkészletről további információt az alábbi webhelyen talál.
Töltse le a Restaurant Safety Scores adatkészletet , és csomagolja ki.
Az adathalmaz minden sora információkat tartalmaz az egészségügyi osztály vizsgálata során megfigyelt szabálysértésekről, valamint a közegészségügyet és a közbiztonságot érintő fenyegetések kockázatfelmérését.
InspectionType | ViolationDescription | RiskCategory |
---|---|---|
Rutin – Nem ütemezett | Nem megfelelően tisztított vagy megtisztított élelmiszer-érintkezési felületek | Mérsékelt kockázat |
Új tulajdonjog | Magas kockázatú csúcsfertőzés | Magas kockázat |
Rutin – Nem ütemezett | Nem tiszta, nem megfelelően tárolt vagy nem megfelelő fertőtlenítő törlőkendők | Alacsony kockázat |
- InspectionType: az ellenőrzés típusa. Ez lehet egy új létesítmény első alkalommal végzett vizsgálata, rutinvizsgálat, panaszvizsgálat és sok más típus.
- ViolationDescription : a vizsgálat során talált szabálysértés leírása.
- RiskCategory: a szabálysértés kockázatának súlyossága a közegészségre és a biztonságra nézve.
Az label
az oszlop, amelyet előre szeretne jelezni. Besorolási feladat végrehajtásakor a cél egy kategória (szöveg vagy numerikus) hozzárendelése. Ebben a besorolási forgatókönyvben a szabálysértés súlyossága alacsony, közepes vagy magas kockázatú. Ezért a RiskCategory a címke. Ezek features
azok a bemenetek, amelyeket a modellnek ad a előrejelzéséhez label
. Ebben az esetben az InspectionType és a ViolationDescription funkcióként vagy bemenetként szolgál a RiskCategory előrejelzéséhez.
Modellkészítő konfigurációs fájljának létrehozása
Amikor először hozzáadja a Model Buildert a megoldáshoz, a rendszer kérni fogja, hogy hozzon létre egy mbconfig
fájlt. A mbconfig
fájl nyomon követi a Model Builderben elvégezhető összes műveletet, hogy lehetővé tegye a munkamenet újbóli megnyitását.
- A Megoldáskezelő kattintson a jobb gombbal a RestaurantViolations projektre, és válassza aGépi tanulási modellhozzáadása>... lehetőséget.
- Adja a projektnek a
mbconfig
RestaurantViolationsPrediction nevet, majd kattintson a Hozzáadás gombra.
Forgatókönyv kiválasztása
A modell betanítása érdekében válasszon a Model Builder által biztosított elérhető gépi tanulási forgatókönyvek listájából. Ebben az esetben a forgatókönyv az Adatbesorolás.
- Ebben a példában a feladat többosztályos besorolás. A Modellkészítő Forgatókönyv lépésében válassza ki az Adatbesorolási forgatókönyvet.
Az adatok betöltése
A Model Builder SQL Server adatbázisból vagy helyi fájlból csv
fogad adatokat , tsv
vagy txt
formátumban.
- A Modellszerkesztő eszköz adatlépésében válassza ki a SQL Server lehetőséget az adatforrástípus kiválasztásából.
- Válassza az Adatforrás kiválasztása gombot.
- Az Adatforrás kiválasztása párbeszédpanelen válassza a Microsoft SQL Server Adatbázisfájl lehetőséget.
- Törölje a jelölést a Mindig használja ezt a kijelölést jelölőnégyzetet, és kattintson a Folytatás gombra.
- A Kapcsolat tulajdonságai párbeszédpanelen válassza a Tallózás lehetőséget, majd válassza ki a letöltött RestaurantScores.mdf fájlt.
- Válassza az OK lehetőséget.
- A Táblázat legördülő menüben válassza a Szabálysértések lehetőséget.
- Az Oszlop legördülő menüben válassza a RiskCategory (Kockázatkategória) lehetőséget az előrejelzéshez (Címke) legördülő listából.
- Hagyja meg az alapértelmezett beállításokat a Speciális adatok beállításban.
- A Következő lépés gombra kattintva lépjen a Betanított lépésre a Modellszerkesztőben.
A modell betanítása
Az oktatóanyagban a problémabesorolási modell betanítása során használt gépi tanulási feladat a többosztályos besorolás. A modellbetanítási folyamat során a Model Builder különböző többosztályos besorolási algoritmusokkal és beállításokkal tanítja be a különálló modelleket, hogy megtalálja az adathalmaz legjobban teljesítő modelljét.
A modell betanítása az adatok mennyiségével arányos. A Model Builder automatikusan kiválasztja a Time to train (másodperc) alapértelmezett értékét az adatforrás mérete alapján.
- A Model Builder a Betanított idő (másodperc) értékét 60 másodpercre állítja. A hosszabb ideig tartó betanítás lehetővé teszi, hogy a Model Builder nagyobb számú algoritmust és paraméterek kombinációját vizsgálja meg a legjobb modell keresése érdekében.
- Kattintson a Betanítás indítása gombra.
A betanítási folyamat során a folyamat előrehaladási adatai a Training results
betanítási lépés szakaszában jelennek meg.
- Az állapot megjeleníti a betanítási folyamat befejezési állapotát.
- A legjobb pontosság a Model Builder által eddig talált legjobban teljesítő modell pontosságát jeleníti meg. A nagyobb pontosság azt jelenti, hogy a modell helyesebben előrejelzett a tesztadatokon.
- A legjobb algoritmus megjeleníti a Model Builder által eddig legjobban teljesítő algoritmus nevét.
- Az utolsó algoritmus megjeleníti annak az algoritmusnak a nevét, amelyet a Model Builder legutóbb használt a modell betanítása érdekében.
A betanítás befejezése után a mbconfig
fájl a betanítás után meghívja RestaurantViolationsPrediction.zip
a létrehozott modellt, és két C#-fájlt is:
- RestaurantViolationsPrediction.consumption.cs: Ez a fájl egy nyilvános metódussal rendelkezik, amely betölti a modellt, és létrehoz vele egy előrejelzési motort, és visszaadja az előrejelzést.
- RestaurantViolationsPrediction.training.cs: Ez a fájl a Model Builder által létrehozott betanítási folyamatból áll, amely a legjobb modellt hozza létre, beleértve a használt hiperparamétereket is.
Kattintson a Tovább lépés gombra az értékelési lépéshez való navigáláshoz.
A modell értékelése
A betanítási lépés eredménye egy olyan modell lesz, amely a legjobb teljesítményt nyújtotta. A Model Builder eszköz kiértékelési lépésében, a Legjobb modell szakaszban a Modell bejegyzésben a legjobban teljesítő modell által használt algoritmust, valamint az adott modell metrikáit fogja tartalmazni a Pontosság területen.
Emellett a Visual Studio Output (Kimenet ) ablakában megjelenik egy összegző táblázat, amely a felső modelleket és azok metrikáit tartalmazza.
Ez a szakasz azt is lehetővé teszi, hogy egyetlen előrejelzés végrehajtásával tesztelje a modellt. A program szövegmezőket kínál az értékek kitöltéséhez, és az Előrejelzés gombra kattintva a legjobb modellből kaphat előrejelzést. Ez alapértelmezés szerint az adathalmaz egy véletlenszerű sorával lesz kitöltve.
(Nem kötelező) A modell felhasználása
Ebben a lépésben olyan projektsablonok lesznek, amelyekkel felhasználhatja a modellt. Ez a lépés nem kötelező, és kiválaszthatja az igényeinek leginkább megfelelő módszert a modell kiszolgálásához.
- Konzolalkalmazás
- Webes API
Konzolalkalmazás
Amikor konzolalkalmazást ad hozzá a megoldáshoz, a rendszer kérni fogja, hogy nevezze el a projektet.
Nevezze el a konzolprojektet RestaurantViolationsPrediction_Console.
Kattintson a Hozzáadás a megoldáshoz elemre a projekt aktuális megoldáshoz való hozzáadásához.
Futtassa az alkalmazást.
A program által létrehozott kimenetnek az alábbi kódrészlethez hasonlóan kell kinéznie:
InspectionType: Routine - Unscheduled ViolationDescription: Moderate risk food holding temperature Predicted RiskCategory: Moderate Risk
Webes API
Amikor webes API-t ad hozzá a megoldáshoz, a rendszer kérni fogja, hogy nevezze el a projektet.
Nevezze el a webes API-projektet RestaurantViolationsPrediction_API.
Kattintson a Hozzáadás a megoldáshoz* elemre a projekt aktuális megoldáshoz való hozzáadásához.
Futtassa az alkalmazást.
Nyissa meg a PowerShellt, és írja be a következő kódot, ahol a PORT az a port, amelyen az alkalmazás figyel.
$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"
Ha sikeres, a kimenetnek az alábbi szöveghez hasonlóan kell kinéznie. A kimenetben az előrejelzett RiskCategory (Kockázatkategória ) közepes kockázatú , és az egyes bemeneti címkék pontszámai ( Alacsony kockázat, Magas kockázat és Közepes kockázat).
prediction score ---------- ----- Moderate Risk {0.055566575, 0.058012854, 0.88642055}
Gratulálunk! Sikeresen létrehozott egy gépi tanulási modellt, amely kategorizálja az állapotsértések kockázatát a Model Builder használatával. Az oktatóanyag forráskódját a dotnet/machinelearning-samples GitHub-adattárban találja.
További források
Ha többet szeretne megtudni az oktatóanyagban említett témakörökről, tekintse meg az alábbi forrásanyagokat:
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: