Samouczek: klasyfikowanie ważności naruszeń kondycji restauracji za pomocą narzędzia Model Builder

Dowiedz się, jak utworzyć model klasyfikacji wieloklasowej przy użyciu narzędzia Model Builder do kategoryzowania poziomu ryzyka naruszeń restauracji znalezionych podczas inspekcji kondycji.

Ten samouczek zawiera informacje na temat wykonywania następujących czynności:

  • Przygotowywanie i interpretacja danych
  • Tworzenie pliku konfiguracji konstruktora modeli
  • Wybieranie scenariusza
  • Ładowanie danych z bazy danych
  • Trenowanie modelu
  • Ocena modelu
  • Korzystanie z modelu na potrzeby przewidywań

Wymagania wstępne

Aby uzyskać listę wymagań wstępnych i instrukcji instalacji, odwiedź przewodnik instalacji konstruktora modeli.

Omówienie klasyfikacji wieloklasowej konstruktora modeli

Ten przykład tworzy aplikację konsolową platformy .NET Core w języku C#, która kategoryzuje ryzyko naruszeń kondycji przy użyciu modelu uczenia maszynowego utworzonego za pomocą narzędzia Model Builder. Kod źródłowy tego samouczka można znaleźć w repozytorium GitHub dotnet/machinelearning-samples .

Tworzenie aplikacji konsolowej

  1. Utwórz aplikację konsolową platformy .NET Core w języku C# o nazwie "RestaurantViolations".

Przygotowywanie i interpretacja danych

Zestaw danych używany do trenowania i oceny modelu uczenia maszynowego pochodzi z Departamentu Bezpieczeństwa Restauracji Zdrowia Publicznego w San Francisco. Dla wygody zestaw danych został skondensowany w celu uwzględnienia tylko kolumn istotnych do wytrenowania modelu i przewidywania. Odwiedź następującą witrynę internetową, aby dowiedzieć się więcej o zestawie danych.

Pobierz zestaw danych Scores bezpieczeństwa restauracji i rozpakuj go.

Każdy wiersz w zestawie danych zawiera informacje dotyczące naruszeń zaobserwowanych podczas inspekcji z Departamentu Zdrowia oraz ocenę ryzyka zagrożenia, które te naruszenia są obecne dla zdrowia publicznego i bezpieczeństwa.

Typ inspekcji Opis naruszenia Kategoria ryzyka
Rutynowe — nieplanowane Odpowiednio oczyszczone lub oczyszczone powierzchnie kontaktowe żywności Umiarkowane ryzyko
Nowa własność Zarażeniem wysokiego ryzyka Wysokie ryzyko
Rutynowe — nieplanowane Wiping szmatki nie są czyste lub prawidłowo przechowywane lub nieodpowiednie środki odczyszczania Niskie ryzyko
  • InspectionType: typ inspekcji. Może to być inspekcja po raz pierwszy dla nowego zakładu, rutynowej kontroli, kontroli skargi i wielu innych typów.
  • ViolationDescription: opis naruszenia znalezionego podczas inspekcji.
  • RiskCategory: ważność ryzyka naruszenia stanowi zagrożenie dla zdrowia publicznego i bezpieczeństwa.

Jest label to kolumna, którą chcesz przewidzieć. Podczas wykonywania zadania klasyfikacji celem jest przypisanie kategorii (tekst lub wartość liczbowa). W tym scenariuszu klasyfikacji ważność naruszenia jest przypisywana wartość niskiego, umiarkowanego lub wysokiego ryzyka. W związku z tym kategoria RiskCategory jest etykietą. Są features to dane wejściowe, które dają modelowi do przewidywania wartości label. W takim przypadku klasy InspectionType i ViolationDescription są używane jako funkcje lub dane wejściowe do przewidywania kategorii ryzyka.

Tworzenie pliku konfiguracji konstruktora modelu

Podczas pierwszego dodawania konstruktora modeli do rozwiązania zostanie wyświetlony monit o utworzenie mbconfig pliku. Plik mbconfig śledzi wszystko, co robisz w narzędziu Model Builder, aby umożliwić ponowne otwarcie sesji.

  1. W Eksplorator rozwiązań kliknij prawym przyciskiem myszy projekt RestaurantViolations, a następnie wybierz pozycję Dodaj>model uczenia maszynowego....
  2. Nadaj projektowi mbconfig nazwę RestaurantViolationsPrediction i kliknij przycisk Dodaj .

Wybieranie scenariusza

Ekran scenariusza konstruktora modeli

Aby wytrenować model, wybierz z listy dostępnych scenariuszy uczenia maszynowego dostarczonych przez narzędzie Model Builder. W tym przypadku scenariusz to Klasyfikacja danych.

  1. W tym przykładzie zadanie to klasyfikacja wieloklasowa. W kroku Scenariusz w narzędziu Model Builder wybierz scenariusz klasyfikacji danych .

Ładowanie danych

Program Model Builder akceptuje dane z bazy danych SQL Server lub pliku lokalnego w formacie csv, tsvlub txt .

  1. W kroku danych narzędzia Model Builder wybierz pozycję SQL Server z wybranego typu źródła danych.
  2. Wybierz przycisk Wybierz źródło danych .
    1. W oknie dialogowym Wybieranie źródła danych wybierz pozycję Microsoft SQL Server Plik bazy danych.
    2. Usuń zaznaczenie pola wyboru Zawsze używaj tego zaznaczenia i kliknij przycisk Kontynuuj.
    3. W oknie dialogowym Właściwości połączenia wybierz pozycję Przeglądaj i wybierz pobrany plik RestaurantScores.mdf .
    4. Wybierz przycisk OK.
  3. Wybierz pozycję Naruszenia z listy rozwijanej Tabela .
  4. Wybierz pozycję RiskCategory (Kategoria ryzyka) na liście rozwijanej Kolumna, aby przewidzieć (etykietę).
  5. Pozostaw domyślne opcje w obszarze Zaawansowane opcje danych.
  6. Kliknij przycisk Dalej, aby przejść do kroku trenowania w narzędziu Model Builder.

Trenowanie modelu

Zadanie uczenia maszynowego używane do trenowania modelu klasyfikacji problemów w tym samouczku to klasyfikacja wieloklasowa. Podczas procesu trenowania modelu konstruktor modeli szkoli oddzielne modele przy użyciu różnych algorytmów klasyfikacji wieloklasowej i ustawień w celu znalezienia najlepszego modelu dla zestawu danych.

Czas wymagany do trenowania modelu jest proporcjonalny do ilości danych. Konstruktor modelu automatycznie wybiera wartość domyślną czasu trenowania (w sekundach) na podstawie rozmiaru źródła danych.

  1. Konstruktor modelu ustawia wartość Czas trenowania (w sekundach) na 60 sekund. Trenowanie przez dłuższy czas umożliwia konstruktorowi modeli eksplorowanie większej liczby algorytmów i kombinacji parametrów w wyszukiwaniu najlepszego modelu.
  2. Kliknij przycisk Rozpocznij szkolenie.

W trakcie procesu trenowania dane postępu są wyświetlane w Training results sekcji kroku trenowania.

  • Stan wyświetla stan ukończenia procesu trenowania.
  • Najlepsza dokładność przedstawia dokładność najlepiej działającego modelu znalezionego do tej pory przez konstruktora modeli. Wyższa dokładność oznacza, że model przewidywał prawidłowoj dane testowe.
  • Najlepszy algorytm wyświetla nazwę najlepiej działającego algorytmu znalezionego do tej pory przez konstruktora modeli.
  • Ostatni algorytm wyświetla nazwę algorytmu ostatnio używanego przez konstruktora modeli do trenowania modelu.

Po zakończeniu mbconfig trenowania plik będzie miał wygenerowany model o nazwie RestaurantViolationsPrediction.zip po trenowaniu i dwóch plikach języka C#:

  • RestaurantViolationsPrediction.consumption.cs: Ten plik ma publiczną metodę, która załaduje model i utworzy aparat przewidywania z nim i zwróci przewidywanie.
  • RestaurantViolationsPrediction.training.cs: Ten plik składa się z potoku trenowania, z którego program Model Builder wymyślił tworzenie najlepszego modelu, w tym wszelkich używanych hiperparametrów.

Kliknij przycisk Dalej, aby przejść do kroku oceny.

Ocena modelu

Wynikiem kroku trenowania będzie jeden model, który miał najlepszą wydajność. W kroku oceny narzędzia Model Builder w sekcji Najlepszy model będzie zawierać algorytm używany przez najlepiej działający model we wpisie Model wraz z metrykami dla tego modelu w obszarze Dokładność.

Ponadto w oknie Dane wyjściowe programu Visual Studio będzie dostępna tabela podsumowania zawierająca najważniejsze modele i ich metryki.

Ta sekcja umożliwia również przetestowanie modelu przez wykonanie pojedynczego przewidywania. Spowoduje to oferowanie pól tekstowych do wypełnienia wartości i kliknięcie przycisku Przewidywanie w celu uzyskania przewidywania z najlepszego modelu. Domyślnie zostanie to wypełnione przez losowy wiersz w zestawie danych.

(Opcjonalnie) Korzystanie z modelu

Ten krok będzie zawierać szablony projektów, których można użyć do korzystania z modelu. Ten krok jest opcjonalny i można wybrać metodę najlepiej dopasowaną do Twoich potrzeb dotyczących sposobu obsługi modelu.

  • Aplikacja konsolowa
  • Interfejs API sieci Web

Aplikacja konsolowa

Podczas dodawania aplikacji konsolowej do rozwiązania zostanie wyświetlony monit o nadenie nazwy projektu.

  1. Nadaj projektowi konsoli nazwę RestaurantViolationsPrediction_Console.

  2. Kliknij pozycję Dodaj do rozwiązania, aby dodać projekt do bieżącego rozwiązania.

  3. Uruchom aplikację.

    Dane wyjściowe wygenerowane przez program powinny wyglądać podobnie do poniższego fragmentu kodu:

    InspectionType: Routine - Unscheduled
    ViolationDescription: Moderate risk food holding temperature
    
    Predicted RiskCategory: Moderate Risk
    

Interfejs API sieci Web

Podczas dodawania internetowego interfejsu API do rozwiązania zostanie wyświetlony monit o nadenie nazwy projektu.

  1. Nadaj projektowi internetowego interfejsu API nazwę RestaurantViolationsPrediction_API.

  2. Kliknij pozycję Dodaj do rozwiązania*, aby dodać projekt do bieżącego rozwiązania.

  3. Uruchom aplikację.

  4. Otwórz program PowerShell i wprowadź następujący kod, w którym port to port, na którym nasłuchuje aplikacja.

    $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. W przypadku powodzenia dane wyjściowe powinny wyglądać podobnie do poniższego tekstu. Dane wyjściowe mają przewidywaną kategorię RiskCategory jako Umiarkowane ryzyko i mają wyniki każdego z etykiet wejściowych — Niskie ryzyko, Wysokie ryzyko i Umiarkowane ryzyko.

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

Gratulacje! Pomyślnie utworzono model uczenia maszynowego w celu kategoryzowania ryzyka naruszeń kondycji przy użyciu narzędzia Model Builder. Kod źródłowy tego samouczka można znaleźć w repozytorium dotnet/machinelearning-samples GitHub.

Dodatkowe zasoby

Aby dowiedzieć się więcej o tematach wymienionych w tym samouczku, odwiedź następujące zasoby: