Samouczek: przewidywanie cen przy użyciu regresji za pomocą narzędzia Model Builder

Dowiedz się, jak używać ML.NET Model Builder do tworzenia modelu regresji w celu przewidywania cen. Aplikacja konsolowa platformy .NET opracowywana w tym samouczku przewiduje taryfy taksówek na podstawie historycznych danych taryfy taksówki w Nowym Jorku.

Szablon przewidywania cen konstruktora modelu może być używany w dowolnym scenariuszu wymagającym wartości przewidywania liczbowego. Przykładowe scenariusze to: przewidywanie cen domów, przewidywanie zapotrzebowania i prognozowanie sprzedaży.

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

  • Przygotowywanie i zrozumienie danych
  • Tworzenie pliku konfiguracji programu Model Builder
  • Wybieranie scenariusza
  • Ładowanie danych
  • Trenowanie modelu
  • Ocena modelu
  • Korzystanie z modelu na potrzeby przewidywań

Wymagania wstępne

Aby uzyskać listę wymagań wstępnych i instrukcji instalacji, zapoznaj się z przewodnikiem instalacji narzędzia Model Builder.

Tworzenie aplikacji konsolowej

  1. Utwórz aplikację konsolową platformy .NET Core w języku C# o nazwie "TaxiFarePrediction". Upewnij się, że pole Umieść rozwiązanie i projekt w tym samym katalogu jest niezaznaczone (VS 2019).

Przygotowywanie i zrozumienie danych

  1. Utwórz katalog o nazwie Dane w projekcie, aby przechowywać pliki zestawu danych.

  2. Zestaw danych używany do trenowania i oceniania modelu uczenia maszynowego pochodzi z zestawu danych NYC TLC Taxi Trip.

    1. Aby pobrać zestaw danych, przejdź do linku pobieraniataxi-fare-train.csv.

    2. Po załadowaniu strony kliknij prawym przyciskiem myszy dowolne miejsce na stronie i wybierz polecenie Zapisz jako.

    3. Użyj okna dialogowego Zapisz jako , aby zapisać plik w folderze Dane utworzonym w poprzednim kroku.

  3. W Eksplorator rozwiązań kliknij prawym przyciskiem myszy plik taxi-fare-train.csv i wybierz polecenie Właściwości. W obszarze Zaawansowane zmień wartość opcji Kopiuj do katalogu wyjściowego , aby skopiować, jeśli jest nowsza.

Każdy wiersz w taxi-fare-train.csv zestawie danych zawiera szczegóły podróży wykonanych przez taksówkę.

  1. Otwieranie zestawu danychtaxi-fare-train.csv

    Podany zestaw danych zawiera następujące kolumny:

    • vendor_id: Identyfikator dostawcy taksówki jest funkcją.
    • rate_code: Typ stawki przejazdu taksówką jest funkcją.
    • passenger_count: Liczba pasażerów w podróży jest funkcją.
    • trip_time_in_secs: Ilość czasu zajęła podróż. Chcesz przewidzieć taryfę podróży przed ukończeniem podróży. W tej chwili nie wiesz, jak długo będzie trwać podróż. W związku z tym czas podróży nie jest funkcją i wykluczysz tę kolumnę z modelu.
    • trip_distance: Odległość podróży jest funkcją.
    • payment_type: Metoda płatności (gotówka lub karta kredytowa) jest funkcją.
    • fare_amount: Łączna opłata za taksówkę to etykieta.

Jest label to kolumna, którą chcesz przewidzieć. Podczas wykonywania zadania regresji celem jest przewidywanie wartości liczbowej. W tym scenariuszu przewidywania cen przewidywany jest koszt przejazdu taksówką. W związku z tym fare_amount jest etykietą. Zidentyfikowane features są dane wejściowe, które dają modelowi w celu przewidywania wartości label. W takim przypadku pozostałe kolumny z wyjątkiem trip_time_in_secs są używane jako funkcje lub dane wejściowe, aby przewidzieć kwotę taryfy.

Tworzenie pliku konfiguracji programu Model Builder

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

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

Wybieranie scenariusza

Ekran scenariusza konstruktora modeli

Aby wytrenować model, należy wybrać z listy dostępnych scenariuszy uczenia maszynowego dostarczonych przez program Model Builder. W tym przypadku scenariusz to Value prediction.

  1. W kroku scenariusza narzędzia Model Builder wybierz pozycję Scenariusz przewidywania wartości .

Wybierz środowisko.

Program Model Builder może uruchomić szkolenie w różnych środowiskach w zależności od wybranego scenariusza.

  1. Upewnij się, że Local (CPU) element jest zaznaczony, a następnie kliknij przycisk Dalej .

Ładowanie danych

Narzędzie Model Builder akceptuje dane z dwóch źródeł, SQL Server bazy danych lub pliku lokalnego w formacie csv lub tsv.

  1. W kroku danych narzędzia Model Builder wybierz pozycję Plik z wybranego typu źródła danych.
  2. Wybierz przycisk Przeglądaj obok pola tekstowego i użyj Eksplorator plików do przeglądania i zaznacz taxi-fare-test.csv w katalogu Dane
  3. Wybierz pozycję fare_amount na liście rozwijanej Kolumna, aby przewidzieć (etykietę).
  4. Kliknij link Opcje danych zaawansowanych .
  5. Na karcie Ustawienia kolumny wybierz listę rozwijaną Cel dla kolumny trip_time_in_secs i wybierz pozycję Ignoruj , aby wykluczyć ją jako funkcję podczas trenowania. Kliknij przycisk Zapisz , aby zamknąć okno dialogowe.
  6. Kliknij przycisk Dalej.

Trenowanie modelu

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

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

  1. Pozostaw wartość domyślną w polu Czas trenowania (w sekundach), chyba że wolisz trenować przez dłuższy czas.
  2. Wybierz pozycję 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ść najlepszego modelu znalezionego przez konstruktora modeli do tej pory. Wyższa dokładność oznacza, że model przewidywał bardziej poprawnie dane testowe.
  • Najlepszy algorytm wyświetla nazwę najlepiej działającego algorytmu znalezionego do tej pory przez narzędzie Model Builder.
  • Ostatni algorytm wyświetla nazwę algorytmu ostatnio używanego przez program Model Builder do trenowania modelu.

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

  • TaxiFare.consumption.cs: Ten plik ma publiczną metodę, która załaduje model i utworzy aparat przewidywania z nim i zwróci prognozę.
  • TaxiFare.training.cs: Ten plik składa się z potoku trenowania, z którego wymyślił program Model Builder, aby utworzyć najlepszy model, w tym wszystkie używane hiperparametry.

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 wydajny model we wpisie Model wraz z metrykami dla tego modelu w usłudze RSquared.

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żliwi 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.

Jeśli nie jesteś zadowolony z metryk dokładności, niektóre łatwe sposoby wypróbowania i poprawy dokładności modelu to zwiększenie czasu trenowania modelu lub używania większej liczby danych. W przeciwnym razie kliknij przycisk Dalej, aby przejść do kroku zużycie.

(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żesz wybrać metodę, która najlepiej odpowiada Twoim potrzebom w zakresie 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ę TaxiFare_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:

    Predicted Fare: 15.020833
    

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ę TaxiFare_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 = @{
        Vendor_id="CMT"
        Rate_code=1.0
        Passenger_count=1.0
        Trip_distance=3.8
        Payment_type="CRD"
    }
    
    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:

    score
    -----
    15.020833
    

Następne kroki

W niniejszym samouczku zawarto informacje na temat wykonywania następujących czynności:

  • Przygotowywanie i interpretacja danych
  • Wybieranie scenariusza
  • Ładowanie danych
  • Trenowanie modelu
  • Ocena modelu
  • Korzystanie z modelu na potrzeby przewidywań

Dodatkowe zasoby

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