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

  1. 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

  1. Hozzon létre egy Data (Adatok ) nevű könyvtárat a projektben az adatkészletfájlok tárolásához.

  2. 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.

    1. Az adatkészlet letöltéséhez lépjen a taxi-fare-train.csv letöltési hivatkozásra.

    2. 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.

    3. A Mentés másként párbeszédpanelen mentse a fájlt az előző lépésben létrehozott Adatok mappába.

  3. 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.

  1. 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 labelelő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.

  1. A Megoldáskezelő kattintson a jobb gombbal a TaxiFarePrediction projektre, és válassza aGépi tanulási modellhozzáadása>... lehetőséget.
  2. Nevezze el a mbconfigprojektet TaxiFarePrediction néven, és kattintson a Hozzáadás gombra.

Forgatókönyv kiválasztása

A Modellszerkesztő forgatókönyvének képernyője

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: .

  1. 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.

  1. 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.

  1. 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.
  2. 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
  3. Az oszlopban válassza a fare_amountaz előrejelzéshez (Címke) legördülő menüt.
  4. Kattintson a Speciális adatok beállításai hivatkozásra.
  5. 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.
  6. 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.

  1. 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.
  2. 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.

  1. Nevezze el a konzolprojektet TaxiFare_Console.

  2. Kattintson a Hozzáadás a megoldáshoz elemre a projekt aktuális megoldáshoz való hozzáadásához.

  3. 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.

  1. Nevezze el a webes API-projektet TaxiFare_API.

  2. Kattintson a Hozzáadás a megoldáshoz* elemre a projekt aktuális megoldáshoz való hozzáadásához.

  3. Futtassa az alkalmazást.

  4. 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"
    
  5. 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: