Kurz: Predikce cen pomocí regrese pomocí Tvůrce modelů
V tomto kurzu se dozvíte, jak pomocí ML.NET Tvůrce modelů sestavit regresní model k predikci cen. Konzolová aplikace .NET, kterou vyvíjíte v tomto kurzu, předpovídá jízdné taxíků na základě historických dat o jízdě taxíkem v New Yorku.
- Příprava a pochopení dat
- Vytvoření konfiguračního souboru Tvůrce modelů
- Volba scénáře
- Načtení dat
- Trénování modelu
- Vyhodnocení modelu
- Použití modelu pro předpovědi
Šablonu predikce ceny Tvůrce modelů lze použít pro jakýkoli scénář vyžadující číselnou hodnotu předpovědi. Mezi příklady scénářů patří predikce ceny domu, předpověď poptávky a prognózování prodeje.
Požadavky
Seznam požadavků a pokynů k instalaci najdete v průvodci instalací Model Builderu.
Vytvoření konzolové aplikace
Vytvořte konzolovou aplikaci C# s názvem TaxiFarePrediction. Ujistěte se, že Umístit řešení a projekt do stejného adresáře je nezaškrtnuto.
Příprava a pochopení dat
Vytvořte adresář s názvem Data v projektu pro ukládání souborů datové sady.
Datová sada používaná k trénování a vyhodnocení modelu strojového učení je původně ze sady dat taxislužby NYC TLC.
Chcete-li stáhnout sadu dat, přejděte na taxi-fare-train.csv odkaz ke stažení.
Po načtení stránky klikněte pravým tlačítkem na libovolné místo na stránce a vyberte Uložit jako.
Pomocí dialogového okna Uložit jako uložte soubor do složky Data, kterou jste vytvořili v předchozím kroku.
V Průzkumníku řešeníklikněte pravým tlačítkem na soubor taxi-fare-train.csv a vyberte Vlastnosti. V části Upřesnitzměňte hodnotu Kopírovat do výstupního adresáře na Kopírovat, pokud je novější.
Každý řádek v sadě dat taxi-fare-train.csv
obsahuje podrobnosti o cestách provedených taxíkem.
Otevření datové sady taxi-fare-train.csv
Zadaná datová sada obsahuje následující sloupce:
- vendor_id: ID dodavatele taxislužby je funkce.
- rate_code: Typ tarifu taxi jízdy je funkce.
- passenger_count: Počet cestujících na cestě je vlastnost.
- trip_time_in_secs: Čas v sekundách, který trvala cesta. Chcete předpovědět jízdné před dokončením jízdy. V tu chvíli nevíte, jak dlouho bude cesta trvat. Doba jízdy tedy není funkcí a tento sloupec z modelu vyloučíte.
- trip_distance: Vzdálenost cesty je funkce.
- payment_type: Způsob platby (hotovost nebo platební karta) je funkce.
- fare_amount: Celkové jízdné za taxi je uvedeno jako popisek.
label
je sloupec, který chcete předpovědět. Při provádění regresní úlohy je cílem předpovědět číselnou hodnotu. V tomto scénáři predikce cen se predikují náklady na jízdu taxíkem. Proto fare_amount je popisek. Identifikovaná features
jsou vstupy, které modelu poskytnete k predikci label
. V tomto případě se zbývající sloupce s výjimkou trip_time_in_secs používají jako funkce nebo vstupy k predikci množství jízdného.
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 TaxiFarePrediction a vyberte možnost Přidat>model pro strojové učení.
- Pojmenujte projekt
mbconfig
TaxiFarePredictiona klikněte na tlačítko Přidat.
Volba scénáře
Obrazovka scénáře tvůrce modelů
Pokud chcete model vytrénovat, musíte si vybrat ze seznamu dostupných scénářů strojového učení poskytovaných Tvůrcem modelů. V tomto případě je scénář Value prediction
.
- V kroku scénáře nástroje Tvůrce modelů vyberte scénář predikce hodnoty.
Výběr prostředí
Tvůrce modelů může spustit trénování v různých prostředích v závislosti na vybraném scénáři.
- Potvrďte, že je vybraná
Local (CPU)
položka, a klikněte na tlačítko Další krok.
Načtení dat
Tvůrce modelů přijímá data ze dvou zdrojů, databáze SQL Serveru nebo místního souboru ve formátu CSV nebo tsv.
- V datovém kroku nástroje Tvůrce modelů vyberte Soubor z výběru typu zdroje dat.
- Vyberte tlačítko Procházet vedle textového pole a v Průzkumníku souborů najděte a vyberte taxi-fare-test.csv v adresáři Data.
- Zvolte fare_amount ve sloupci v rozevíracím seznamu.
- Klikněte na odkaz Pokročilé možnosti dat.
- Na kartě Nastavení sloupce vyberte rozevírací seznam Účel pro sloupec trip_time_in_secs a vyberte Ignorovat, aby se během trénování vyloučila jako funkce. Kliknutím na tlačítko Uložit dialogové okno zavřete.
- Klikněte na tlačítko Další krok.
Trénování modelu
Úloha strojového učení použitá k trénování modelu předpovědi cen v tomto kurzu je regrese. Během procesu trénování modelu model Builder trénuje samostatné modely pomocí různých regresních algoritmů a nastavení, abyste našli nejlepší model 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.
- Ponechte výchozí hodnotu tak, jak je Doba trénování (sekund), pokud nechcete trénovat delší dobu.
- Vyberte 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 TaxiFarePrediction.zip
po trénování a dva soubory jazyka C#:
- TaxiFare.consumption.cs: Tento soubor má veřejnou metodu, která načte model a vytvoří s ním prediktivní modul a vrátí predikci.
- TaxiFare.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ý modelem s nejlepším výkonem v položce Model spolu s metrikami pro tento model v RSquared.
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ě.
Pokud s metrikami přesnosti nejste spokojení, je několik snadných způsobů, jak vyzkoušet a vylepšit přesnost modelu, zvýšit dobu trénování modelu nebo použít více dat. V opačném případě klikněte na Další krok a přejděte na krok spotřeby.
(Volitelné) Využití modelu
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 TaxiFare_Console.
Kliknutím na Přidat do řešení přidejte projekt do aktuálního řešení.
Spusťte aplikaci.
Výstup vygenerovaný programem by měl vypadat podobně jako v následujícím fragmentu kódu:
Predicted Fare: 15.020833
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 TaxiFare_API.
Kliknutím na Přidat do řešení* přidejte projekt do aktuálního řešení.
Spusťte aplikaci.
Otevřete PowerShell a zadejte následující kód, kde PORT je port, na kterém vaše aplikace naslouchá.
$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"
Pokud je výstup úspěšný, měl by vypadat podobně jako v následujícím textu:
score ----- 15.020833
Související obsah
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ů
- regrese
- Metriky regresního modelu
- Datová sada jízdy taxi NYC TLC