Oktatóanyag: Árak előrejelzése regresszióval a Model Builderrel
Megtudhatja, hogyan hozhat létre regressziós modellt a ML.NET Model Builder használatával az árak előrejelzéséhez. Az oktatóanyagban fejlesztett .NET-konzolalkalmazás előrejelzi a taxidíjakat a new york-i taxidíjak előzményadatai alapján.
A Model Builder ár-előrejelzési sablonja bármely numerikus előrejelzési értéket igénylő forgatókönyvhez használható. Példaforgatókönyvek: lakásárak előrejelzése, kereslet előrejelzése és értékesítési előrejelzés.
Eben az oktatóanyagban az alábbiakkal fog megismerkedni:
- Az adatok előkészítése és értelmezése
- Model Builder konfigurációs fájl létrehozása
- Forgatókönyv kiválasztása
- Az adatok betöltése
- 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.
Konzolalkalmazás létrehozása
- Hozzon létre egy "TaxiFarePrediction" nevű C# .NET Core-konzolalkalmazást . Győződjön meg arról, hogy a Megoldás és projekt elhelyezése ugyanabban a könyvtárbannincs bejelölve (VS 2019).
Az adatok előkészítése és értelmezése
Hozzon létre egy Data (Adatok ) nevű könyvtárat a projektben az adatkészletfájlok tárolásához.
A gépi tanulási modell betanítéséhez és kiértékeléséhez használt adatkészlet eredetileg az NYC TLC Taxi Trip adatkészletéből származik.
Az adatkészlet letöltéséhez lépjen a taxi-fare-train.csv letöltési hivatkozásra.
Amikor az oldal betöltődik, kattintson a jobb gombbal a lap tetszőleges pontjára, és válassza a Mentés másként parancsot.
A Mentés másként párbeszédpanelen mentse a fájlt az előző lépésben létrehozott Adatok mappába.
A Megoldáskezelő kattintson a jobb gombbal a taxi-fare-train.csv fájlra, és válassza a Tulajdonságok lehetőséget. A Speciális területen módosítsa a Másolás kimeneti könyvtárra értékét másolásra, ha újabb.
Az adatkészlet minden sora tartalmazza a taxi-fare-train.csv
taxi által megtett utak részleteit.
A taxi-fare-train.csv adatkészlet megnyitása
A megadott adatkészlet a következő oszlopokat tartalmazza:
- vendor_id: A taxiszolgáltató azonosítója egy funkció.
- rate_code: A taxiút díjtípusa egy funkció.
- passenger_count: Az utazás során tartózkodó utasok száma egy funkció.
- trip_time_in_secs: Mennyi időt vett igénybe az utazás. Az utazás befejezése előtt előre szeretné jelezni az utazás viteldíját. Abban a pillanatban nem tudod, mennyi ideig tart az út. Így az utazási idő nem funkció, és ezt az oszlopot ki fogja zárni a modellből.
- trip_distance: Az utazás távolsága funkció.
- payment_type: A fizetési mód (készpénz vagy hitelkártya) egy funkció.
- fare_amount: A teljes taxi viteldíj a címke.
Az label
az oszlop, amelyet előre szeretne jelezni. Regressziós feladat végrehajtásakor a cél egy numerikus érték előrejelzése. Ebben az ár-előrejelzési forgatókönyvben a taxizás költségeit előrejelzik. Ezért a fare_amount a címke. Az azonosítottak features
azok a bemenetek, amelyeket a modellnek ad a label
előrejelzéséhez. Ebben az esetben a többi oszlop a trip_time_in_secs kivételével funkciókként vagy bemenetként szolgál a viteldíj összegének előrejelzéséhez.
Model Builder 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 újra megnyissa a munkamenetet.
- A Megoldáskezelő kattintson a jobb gombbal a TaxiFarePrediction projektre, és válassza aGépi tanulási modellhozzáadása>... lehetőséget.
- Nevezze el a
mbconfig
projektet TaxiFarePrediction néven, és kattintson a Hozzáadás gombra.
Forgatókönyv kiválasztása
A modell betanítása érdekében a Model Builder által biztosított elérhető gépi tanulási forgatókönyvek listájából kell választania. Ebben az esetben a forgatókönyv a következő Value prediction
: .
- A Model Builder eszköz forgatókönyv lépésében válassza az Érték-előrejelzési forgatókönyv lehetőséget.
Válassza ki a környezetet
A Model Builder a kiválasztott forgatókönyvtől függően különböző környezeteken futtathatja a betanítást.
- Győződjön meg arról, hogy az
Local (CPU)
elem ki van jelölve, majd kattintson a Következő lépés gombra.
Az adatok betöltése
A Model Builder két forrásból, egy SQL Server adatbázisból vagy egy csv vagy tsv formátumú helyi fájlból fogad adatokat.
- A Model Builder eszköz adatlépésében válassza a Fájl lehetőséget az adatforrástípus kiválasztásából.
- Válassza a Tallózás gombot a szövegmező mellett, és a Fájlkezelő használatával tallózással válassza ki a taxi-fare-test.csv az Adatkönyvtárban
- Az oszlopban válassza a fare_amountaz előrejelzéshez (Címke) legördülő menüt.
- Kattintson a Speciális adatok beállításai hivatkozásra.
- Az Oszlopbeállítások lapon válassza a trip_time_in_secs oszlop Cél legördülő menüjét, majd a Mellőzés lehetőséget választva zárja ki funkcióként a betanítás során. A párbeszédpanel bezárásához kattintson a Mentés gombra.
- Kattintson a Következő lépés gombra.
A modell betanítása
Az oktatóanyagban az ár-előrejelzési modell betanításához használt gépi tanulási feladat a regresszió. A modellbetanítási folyamat során a Model Builder különböző regressziós algoritmusokkal és beállításokkal tanítja be a különböző 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 az adatforrás méretétől függően a betanított idő (másodperc) alapértelmezett értékét.
- Hagyja meg az alapértelmezett értéket a betanított idő (másodperc) értékének megfelelően, kivéve, ha hosszabb ideig szeretne betanítása.
- Válassza a Betanítás indítása lehetőséget.
A betanítási folyamat során a folyamatadatok 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 legjobb teljesítményt nyújtó modell pontosságát jeleníti meg. A nagyobb pontosság azt jelenti, hogy a modell helyesebben jelezhető előre a tesztadatokon.
- A legjobb algoritmus megjeleníti a Model Builder által eddig végzett 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 TaxiFarePrediction.zip
a létrehozott modellt, és két C#-fájlt is:
- TaxiFare.consumption.cs: Ez a fájl egy nyilvános metódussal rendelkezik, amely betölti a modellt, és létrehoz egy előrejelzési motort vele, és visszaadja az előrejelzést.
- TaxiFare.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 legjobb teljesítményt nyújtó modell által használt algoritmust, valamint az adott modell RSquared-beli metrikáit fogja tartalmazni.
Emellett a Visual Studio Output (Kimenet ) ablakában megjelenik egy összefoglaló táblázat, amely a legnépszerűbb 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. Szövegdobozokat kínál az értékek kitöltéséhez, az Előrejelzés gombra kattintva pedig a legjobb modellből kaphat előrejelzést. Ezt alapértelmezés szerint egy véletlenszerű sor tölti ki az adathalmazban.
Ha nem elégedett a pontossági metrikákkal, a modell pontosságának néhány egyszerű módja a modell betanítása vagy további adatok használata. Ellenkező esetben kattintson a Tovább lépésre a felhasználás lépéshez.
(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 TaxiFare_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:
Predicted Fare: 15.020833
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 TaxiFare_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 = @{ 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"
Ha sikeres, a kimenetnek az alábbi szöveghez hasonlóan kell kinéznie:
score ----- 15.020833
Következő lépések
Ez az oktatóanyag bemutatta, hogyan végezheti el az alábbi műveleteket:
- Az adatok előkészítése és értelmezése
- Forgatókönyv kiválasztása
- Az adatok betöltése
- A modell betanítása
- A modell értékelése
- A modell használata előrejelzésekhez
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: