Mi a Model Builder, és hogyan működik?

ML.NET Model Builder egy intuitív grafikus Visual Studio-bővítmény egyéni gépi tanulási modellek létrehozásához, betanításához és üzembe helyezéséhez. Automatizált gépi tanulást (AutoML) használ a különböző gépi tanulási algoritmusok és beállítások megismeréséhez, hogy segítsen megtalálni a forgatókönyvnek leginkább megfelelőt.

A Model Builder használatához nincs szükség gépi tanulási szakértelemre. Mindössze néhány adatra és egy megoldandó problémára van szüksége. A Model Builder létrehozza a kódot, hogy hozzáadja a modellt a .NET-alkalmazáshoz.

A Model Builder forgatókönyvének képernyője

Model Builder-projekt létrehozása

A Model Builder első indításakor a rendszer megkéri, hogy nevezze el a projektet, majd létrehoz egy mbconfig konfigurációs fájlt a projekten belül. A mbconfig fájl nyomon követi a Model Builderben elvégezhető összes műveletet, hogy újra megnyissa a munkamenetet.

A betanítás után a *.mbconfig fájlban három fájl jön létre:

  • Model.consumption.cs: Ez a fájl tartalmazza a ModelInput modell felhasználásához létrehozott sémákat és ModelOutput sémákat Predict .
  • Model.training.cs: Ez a fájl tartalmazza a Model Builder által a modell betanításához kiválasztott betanítási folyamatot (adatátalakítások, algoritmusok, algoritmus hiperparaméterek). Ezt a folyamatot használhatja a modell újratanításához.
  • Model.zip: Ez egy szerializált zip-fájl, amely a betanított ML.NET modellt jelöli.

A fájl létrehozásakor mbconfig a rendszer egy nevet kér. A rendszer ezt a nevet alkalmazza a használati, betanítási és modellfájlokra. Ebben az esetben a használt név a Modell.

Eset

Számos különböző forgatókönyvet hozhat létre a Model Builderben, hogy gépi tanulási modellt hozzon létre az alkalmazáshoz.

A forgatókönyv az adatokkal használni kívánt előrejelzés típusának leírása. Példa:

  • A jövőbeli termékértékesítések mennyiségének előrejelzése az előzmény értékesítési adatok alapján.
  • A véleményeket az ügyfelek véleménye alapján pozitívnak vagy negatívnak minősítheti.
  • Észleli, hogy egy banki tranzakció hamis-e.
  • Az ügyfelek visszajelzési problémáinak átirányítása a vállalat megfelelő csapatához.

Az egyes forgatókönyvek egy másik gépi tanulási feladatra képeznek le, amely a következőket tartalmazza:

Task Eset
Bináris besorolás Az adatok besorolása
Többosztályos besorolás Az adatok besorolása
Képbesorolás Képbesorolás
Szövegbesorolás Szövegbesorolás
Regresszió Érték előrejelzése
Ajánlás Ajánlás
Előrejelzés Előrejelzés

A hangulatok pozitívként vagy negatívként való besorolásának forgatókönyve például a bináris besorolási feladat alá esne.

Az ML.NET által támogatott különböző gépi tanulási feladatokról további információt a ML.NET gépi tanulási feladatai című témakörben talál.

Melyik gépi tanulási forgatókönyv a megfelelő számomra?

A Model Builderben ki kell választania egy forgatókönyvet. A forgatókönyv típusa attól függ, hogy milyen típusú előrejelzést szeretne készíteni.

Táblázatos

Az adatok besorolása

A besorolás az adatok kategóriákba való kategorizálására szolgál.

Mintabemenet

Példakimenet

SepalLength SepalWidth Szirom hossza Sziromszélesség Species (Verseny)
5,1 3,5 1.4 0,2 setosa
Előrejelzett fajok
setosa
Érték előrejelzése

A regressziós feladat alá tartozó érték-előrejelzés számok előrejelzésére szolgál.

Regressziós példákat, például ár-előrejelzést, értékesítési előrejelzést és prediktív karbantartást bemutató ábra

Mintabemenet

Példakimenet

vendor_id rate_code passenger_count trip_time_in_secs trip_distance payment_type fare_amount
CMT 0 0 1271 3,8 CRD 17.5
Előrejelzett viteldíj
4,5

Ajánlás

A javaslati forgatókönyv előrejelzi a javasolt elemek listáját egy adott felhasználó számára, attól függően, hogy a kedveléseik és a nem kedvelésük mennyire hasonlít a többi felhasználóhoz".

A javaslati forgatókönyvet akkor használhatja, ha több felhasználóval és "termékekkel" rendelkezik, például megvásárolni kívánt elemeket, filmeket, könyveket vagy tv-műsorokat, valamint a felhasználók "minősítéseit" is.

Mintabemenet

Példakimenet

UserId ProductId Minősítés
0 2 4.2
Előrejelzett minősítés
4,5
Előrejelzés

Az előrejelzési forgatókönyv előzményadatokat használ egy idősorozattal vagy szezonális összetevővel.

Az előrejelzési forgatókönyv használatával előre jelezheti egy termék keresletét vagy eladását.

Mintabemenet

Példakimenet

Dátum SaleQty
1/1/1970 1000
3 napos előrejelzés
[1000,1001,1002]

Számítógépes látástechnológia

Képbesorolás

A rendszerkép-besorolás különböző kategóriák képeinek azonosítására szolgál. Például különböző típusú terepek vagy állatok vagy gyártási hibák.

A képbesorolási forgatókönyvet akkor használhatja, ha rendelkezik képkészlettel, és a képeket különböző kategóriákba szeretné sorolni.

Mintabemenet

Példakimenet

Álló ugrat profilnézete

Előrejelzett címke
Kutya
Objektumészlelés

Az objektumészlelés a képeken belüli entitások megkeresésére és kategorizálására szolgál. Például egy képen lévő autók és személyek keresése és azonosítása.

Objektumészlelést akkor használhat, ha a képek több különböző típusú objektumot tartalmaznak.

Mintabemenet

Példakimenet

Álló ugrat profilnézete

Az álló pugák profilnézete határolókerettel és kutyacímkével

Természetes nyelvek feldolgozása

Szövegbesorolás

A szövegbesorolás kategorizálja a nyers szövegbevitelt.

A szövegbesorolási forgatókönyvet akkor használhatja, ha dokumentumokkal vagy megjegyzésekkel rendelkezik, és különböző kategóriákba szeretné sorolni őket.

Példa bemenet

Példakimenet

Áttekintés
Nagyon tetszik ez a steak!
Hangulat
Pozitív

Környezet

A gépi tanulási modellt helyileg taníthatja be a gépén vagy az Azure felhőjében, a forgatókönyvtől függően.

Helyi betanításkor a számítógép erőforrásainak (CPU, memória és lemez) korlátain belül kell dolgoznia. A felhőben végzett betanítása során az erőforrásokat felskálázhatja a forgatókönyv igényeinek megfelelően, különösen nagy adathalmazok esetén.

Eset Helyi PROCESSZOR Helyi GPU Azure
Az adatok besorolása ✔️
Érték előrejelzése ✔️
Ajánlás ✔️
Előrejelzés ✔️
Képbesorolás ✔️ ✔️ ✔️
Objektumészlelés ✔️
Szövegbesorolás ✔️ ✔️

Adatok

Miután kiválasztotta a forgatókönyvet, a Model Builder megkéri, hogy adjon meg egy adathalmazt. Az adatok a forgatókönyvhöz legjobb modell betanítása, kiértékelése és kiválasztása céljából használhatók.

A Model Builder lépéseit bemutató diagram

A Model Builder .tsv, .csv, .txt és SQL-adatbázisformátumokban támogatja az adathalmazokat. Ha .txt fájllal rendelkezik, az oszlopokat el kell különíteni ,az , ;vagy \t.

Ha az adathalmaz képekből áll, a támogatott fájltípusok .jpg a következők: és .png.

További információ: Betanítási adatok betöltése a Model Builderbe.

Válassza ki a megjósolni kívánt kimenetet (címke)

Az adathalmaz betanítási példák sorait és attribútumoszlopokat tartalmazó táblázat. Minden sor a következő:

  • egy címke (az előrejelezni kívánt attribútum)
  • szolgáltatások (a címke előrejelzéséhez bemenetként használt attribútumok)

A házárak előrejelzési forgatókönyvében a funkciók a következőek lehetnek:

  • A ház alapterülete.
  • A hálószobák és fürdőszobák száma.
  • Az irányítószám.

A címke a történelmi ház ára, hogy a sor négyzet felvétel, hálószoba, és fürdőszoba értékek és irányítószám.

A házárak adatait tartalmazó sorok és oszlopok táblázata a szobák méretéből és az árcímkéből álló funkciókkal

Példaadatkészletek

Ha még nem rendelkezik saját adatokkal, próbálja ki az alábbi adatkészletek egyikét:

Eset Példa Adatok Címke Funkciók
Osztályozás Értékesítési anomáliák előrejelzése termékértékesítési adatok Termékértékesítés Month
A webhely megjegyzéseinek hangulatának előrejelzése webhely megjegyzésadatai Címke (0 negatív hangulat esetén, 1 pozitív esetén) Megjegyzés, év
Hamis hitelkártya-tranzakciók előrejelzése hitelkártyaadatok Osztály (1 ha csalárd, 0 egyébként) Amount, V1-V28 (anonimizált funkciók)
A probléma típusának előrejelzése egy GitHub-adattárban GitHub-probléma adatai Terület Cím, leírás
Érték előrejelzése Taxi viteldíjának előrejelzése taxi viteldíj adatai Viteldíj Utazási idő, távolság
Képbesorolás A virág kategóriájának előrejelzése virágos képek A virág típusa: százszorszép, pitypang, rózsa, napraforgó, tulipán Maga a képadatok
Ajánlás Olyan filmek előrejelzése, amelyeket valaki kedvelni fog filmbesorolások Felhasználók, filmek Minősítések

Betanítás

Miután kiválasztotta a forgatókönyvet, a környezetet, az adatokat és a címkét, a Model Builder betanozza a modellt.

Mi az a betanítás?

A betanítás egy automatikus folyamat, amellyel a Model Builder megtanítja a modellnek, hogyan válaszolhat a forgatókönyvével kapcsolatos kérdésekre. A betanítása után a modell olyan bemeneti adatokkal készíthet előrejelzéseket, amelyeket korábban nem látott. Ha például előrejelzi a lakásárakat, és egy új ház jelenik meg a piacon, előrejelezheti annak eladási árát.

Mivel a Model Builder automatizált gépi tanulást (AutoML) használ, nincs szükség semmilyen bemenetre vagy hangolásra a betanítás során.

Mennyi ideig kell betanulnom?

A Model Builder az AutoML használatával több modellt is megvizsgál, hogy megtalálja a legjobban teljesítő modellt.

A hosszabb betanítási időszakok lehetővé teszik az AutoML számára, hogy több modellt fedezzen fel szélesebb körű beállításokkal.

Az alábbi táblázat összefoglalja, hogy egy helyi gépen milyen átlagosan mennyi idő szükséges egy példaadatkészlet megfelelő teljesítményéhez.

Adathalmaz mérete Átlagos betanított idő
0 – 10 MB 10 mp
10 –100 MB 10 perc
100 – 500 MB 30 perc
500 – 1 GB 60 perc
1 GB+ 3+ óra

Ezek a számok csak útmutatók. A képzés pontos hossza a következőtől függ:

  • A modell bemeneteként használt funkciók (oszlopok) száma.
  • Az oszlopok típusa.
  • Az ML-feladat.
  • A betanításhoz használt gép processzor-, lemez- és memóriateljesítménye.

Általában azt javasoljuk, hogy több mint 100 sort használjon olyan adathalmazokként, amelyeknél kevesebb van, nem biztos, hogy eredményt ad.

Értékelés

A kiértékelés a modell jó állapotának mérésére szolgáló folyamat. A Model Builder a betanított modell használatával készít előrejelzéseket új tesztadatokkal, majd méri, hogy milyen jók az előrejelzések.

A Model Builder felosztja a betanítási adatokat egy betanítási csoportra és egy tesztkészletre. A betanítási adatok (80%) a modell betanítására szolgálnak, a tesztadatok (20%) pedig vissza lesznek tartva a modell kiértékeléséhez.

Hogyan megérteni a modell teljesítményét?

Egy forgatókönyv gépi tanulási feladatra képez le. Minden ml-tevékenység saját értékelési metrikákkal rendelkezik.

Érték előrejelzése

Az érték-előrejelzési problémák alapértelmezett metrikája az RSquared, az RSquared értéke 0 és 1 között van. Az 1 a lehető legjobb érték, vagyis minél közelebb van az RSquared értéke 1-hez, annál jobb a modell teljesítménye.

Az egyéb jelentett metrikák, például az abszolút veszteség, a négyzetes veszteség és az RMS-veszteség további metrikák, amelyek felhasználhatók annak megértésére, hogy a modell hogyan teljesít, és összehasonlítja azt más érték-előrejelzési modellekkel.

Besorolás (2 kategória)

A besorolási problémák alapértelmezett metrikája a pontosság. A pontosság határozza meg a modell által a tesztadatkészleten végzett helyes előrejelzések arányát. Minél közelebb van a 100%-hoz vagy az 1,0-hoz, annál jobb.

Más jelentett metrikák, például az AUC (a görbe alatti terület), amelyek a valódi pozitív arányt mérik, és a hamis pozitív aránynak 0,50-nél nagyobbnak kell lennie ahhoz, hogy a modellek elfogadhatók legyenek.

A pontosság és a visszahívás közötti egyensúly szabályozásához további metrikák, például az F1 pontszám használható.

Besorolás (3+ kategória)

A többosztályos besorolás alapértelmezett metrikája a Mikro pontosság. Minél közelebb van a Mikro pontosság 100%-hoz vagy 1,0-hoz, annál jobb.

A többosztályos besorolás egy másik fontos mérőszáma a makró pontossága, amely a Mikro pontossághoz hasonlóan minél közelebb van az 1,0-hoz, annál jobb. A pontosságnak az alábbi két típusára érdemes gondolni:

  • Mikropontosság: Milyen gyakran kerül besorolásra egy bejövő jegy a megfelelő csapathoz?
  • Makró pontossága: Egy átlagos csapat esetében milyen gyakran helyes egy bejövő jegy a csapat számára?

További információ a kiértékelési metrikákról

További információ: modellértékelési metrikák.

Javulás

Ha a modell teljesítmény-pontszáma nem olyan jó, mint amilyennek szeretné, a következőkre van lehetőség:

  • Hosszabb ideig taníts be. Az automatizált gépi tanulási motor több algoritmussal és beállítással kísérletezik.

  • Adjon hozzá további adatokat. Néha az adatok mennyisége nem elegendő egy kiváló minőségű gépi tanulási modell betanítása érdekében. Ez különösen igaz az olyan adathalmazokra, amelyek kevés példával rendelkeznek.

  • Egyensúlyba hozhatja az adatokat. Besorolási feladatok esetén győződjön meg arról, hogy a betanítási csoport kiegyensúlyozott a kategóriák között. Ha például négy osztálya van 100 betanítási példához, és a két első osztályt (címke1 és címke2) 90 rekordhoz használja, a másik kettőt (tag3 és tag4) azonban csak a fennmaradó 10 rekordon használja, a kiegyensúlyozott adatok hiánya miatt a modell nehezen tudja megfelelően előrejelezni a címke3-at vagy a címke4-et.

Felhasználás

A kiértékelési fázis után a Model Builder egy modellfájlt és egy kódot ad ki, amellyel hozzáadhatja a modellt az alkalmazáshoz. ML.NET modellek zip-fájlként vannak mentve. A modell betöltéséhez és használatához használt kód új projektként lesz hozzáadva a megoldáshoz. A Model Builder emellett egy mintakonzolalkalmazást is hozzáad, amely futtatható a modell működés közbeni megtekintéséhez.

A Model Builder emellett lehetővé teszi a modellt használó projektek létrehozását is. A Model Builder jelenleg a következő projekteket hozza létre:

  • Konzolalkalmazás: Létrehoz egy .NET-konzolalkalmazást, amely előrejelzéseket készít a modellből.
  • Webes API: Létrehoz egy ASP.NET Core Web API-t, amely lehetővé teszi a modell internetes használatát.

A következő lépések

Telepítse a Model Builder Visual Studio bővítményt.

Próbálja ki az ár-előrejelzést vagy bármilyen regressziós forgatókönyvet.