Javaslatmodell betanítása a Model Builder használatával

Megtudhatja, hogyan taníthat be egy javaslatmodellt a Model Builder használatával a filmek ajánlásához.

Ebben az oktatóanyagban ön:

  • 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
  • Adatok betöltése
  • A modell betanítása
  • A modell kiértékelése
  • A modell felhasználása

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.

C#-osztálytár létrehozása

Hozzon létre egy C# osztálykódtárat "MovieRecommender" néven.

Az adatok előkészítése és értelmezése

A javaslati problémák többféleképpen is közelíthetők meg, például a filmek listájának ajánlása vagy a kapcsolódó termékek listájának ajánlása, de ebben az esetben előre jelezheti, hogy a felhasználó milyen minősítést (1-5) ad egy adott filmnek, és azt javasolja, hogy a film magasabb, mint egy meghatározott küszöbérték (minél magasabb az értékelés, annál nagyobb a valószínűsége annak, hogy egy felhasználó kedvel egy adott filmet).

Kattintson a jobb gombbal a recommendation-ratings-train.csv, és válassza a "Hivatkozás (vagy cél) mentése..." lehetőséget.

Az adathalmaz minden sora tartalmaz egy filmbesorolással kapcsolatos információt.

userId movieId értékelés Időbélyeg
1 1 4 964982703
  • userId: A felhasználó azonosítója
  • movieId A film azonosítója
  • minősítési: A felhasználó által a filmre készített értékelés
  • időbélyeg: A felülvizsgálat időbélyege

Model Builder konfigurációs fájl létrehozása

Amikor először hozzáadja a Model Buildert a megoldáshoz, arra kéri, 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őben kattintson a jobb gombbal a MovieRecommender projektre, és válassza a > Machine Learning Modelhozzáadása lehetőséget.
  2. A párbeszédpanelen nevezze el a Model Builder-projektet MovieRecommender, majd kattintson a Hozzáadáselemre.

Forgatókönyv kiválasztása

Model Builder-forgatókönyv képernyő

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 a mintában a feladat az ajánlás. A Model Builder eszköz forgatókönyv-lépésében válassza ki a Javaslat forgatókönyvet.

Környezet kiválasztása

A Model Builder a kiválasztott forgatókönyvtől függően különböző környezeteken futtathatja a betanítást.

Válassza Helyi lehetőséget környezetként, majd kattintson a Következő lépés gombra.

Adatok betöltése

  1. A Model Builder eszköz adatlépésében válassza a Mappa kijelölése szövegmező melletti gombot.
  2. A Fájlkezelővel tallózhat és kiválaszthatja a letöltött fájlt – recommendation-ratings-train.csv.
  3. A Következő lépés gombra kattintva lépjen a Modellszerkesztő eszköz következő lépésére.
  4. Az adatok betöltése után az oszlopban legördülő menüben válassza a Minősítésilehetőséget.
  5. A Felhasználó oszlop legördülő menüjében válassza a "userId" lehetőséget.
  6. Az Elem oszlop legördülő listájában válassza a movieIdlehetőséget.

A modell betanítása

A javaslatmodell betanításához használt gépi tanulási algoritmus a Matrix Factorization. A modellbetanítási folyamat során a Model Builder különböző beállításokat használ az algoritmushoz, hogy megtalálja az adathalmaz legjobban teljesítő modelljét.

A modell betanítása során szükséges idő arányos az adatok mennyiségével. A Model Builder automatikusan kiválaszt egy alapértelmezett értéket idő a betanulásra (másodpercben) az adatforrás mérete alapján.

  1. A Model Builder a betanítás (másodperc) értékét 60 másodpercre állítja. A hosszabb ideig tartó betanítás lehetővé teszi, hogy a Model Builder nagyobb számú algoritmust és paraméterek kombinációját vizsgálja meg a legjobb modell keresése érdekében.
  2. Kattintson a(z) Betanítás indításagombra.

A betanítási folyamat során az előrehaladási adatok a tréning lépés Training results szakaszában jelennek meg.

  • Az állapot megjeleníti a betanítási folyamat befejezési állapotát.
  • Az eddigi legjobban teljesítő modell r négyzetértéke a Model Builder alapján. Az alacsonyabb R-négyzet azt jelenti, hogy a modell pontosabban előrejelzi a tesztadatokat.
  • A legjobb algoritmus megjeleníti a Model Builder által eddig 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 MovieRecommender.zip nevű létrehozott modellt és két C#-fájlt tartalmaz:

  • MovieRecommender.consumption.cs: Ez a fájl egy nyilvános metódussal rendelkezik, Predict, amely betölti a modellt, és egy PredictionEngine-t hoz létre az előrejelzések készítéséhez. PredictionEngine egy egyszerű API, amely egyetlen adatpéldányon készít előrejelzéseket.
  • MovieRecommender.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 Következő lépés gombra a kiértékelő lépéshez való navigáláshoz.

A modell kié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 szakasz az Modell bejegyzésben tartalmazza az a legjobb teljesítményt nyújtó modell által használt algoritmust, valamint az adott modell metrikáit, például az RSquaredértéket.

Emellett a Visual Studio Kimeneti ablakában megjelenik egy összefoglaló táblázat, amely a legnépszerűbb modelleket és azok metrikáit tartalmazza.

Ebben a szakaszban egyetlen előrejelzés végrehajtásával is tesztelheti a modellt. Szövegmezőket biztosít a funkcióoszlopok értékeinek beviteléhez, és kiválaszthatja a Előrejelzés lehetőséget, hogy a legjobb modellt használva kapjon előrejelzést. Ezt alapértelmezés szerint az adathalmaz első sora tölti ki.

(Nem kötelező) A modell felhasználása

Ebben a lépésben 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. Válassza Hozzáadás a konzolsablon megoldási lehetőséget.

  2. Nevezze el a konzolprojektet MovieRecommender_Console.

  3. Kattintson a Hozzáadás a projekthez gombra a projekt hozzáadásához az aktuális megoldáshoz.

  4. Futtassa az alkalmazást.

    A program által generált kimenetnek az alábbi kódrészlethez hasonlóan kell kinéznie:

    UserId: 1
    MovieId: 1
    Rating: 4
    
    Predicted Rating: 4.577113
    

Webes API

Amikor webes API-t ad hozzá a megoldáshoz, a rendszer kérni fogja, hogy nevezze el a projektet.

  1. Válassza a Hozzáadás a webes API-sablon megoldásához lehetőséget.

  2. Nevezze el a Web API-projektet MovieRecommender_WebApi.

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

  4. Futtassa az alkalmazást.

  5. Nyissa meg a PowerShellt, és írja be a következő kódot, amelyben az alkalmazás által figyelt PORT portot adja meg.

    $body = @{
        UserId=1.0
        MovieId=1.0
    }
    
    Invoke-RestMethod "https://localhost:<PORT>/predict" -Method Post -Body ($body | ConvertTo-Json) -ContentType "application/json"
    
  6. Ha sikeres, a kimenetnek az alábbi szöveghez hasonlóan kell kinéznie. A pontszám kimenet lesz a kért felhasználói azonosító és filmazonosító előrejelzett értékelése.

    score
    -----
    4.577113
    

Gratulálok! Sikeresen létrehozott egy gépi tanulási modellt a Model Builder használatával, hogy kategorizálja az egészségügyi szabályszegések kockázatát. Az oktatóanyag forráskódját a dotnet/machinelearning-samples GitHub-adattárban találja.

További erőforrások

Az oktatóanyagban említett témakörökről az alábbi forrásokból tudhat meg többet: