A ML.NET parancssori felület parancshivatkozása

A classification, regressionés recommendation a parancsok a ML.NET CLI-eszköz által biztosított fő parancsok. Ezek a parancsok lehetővé teszik, hogy jó minőségű ML.NET modelleket hozzon létre a besorolási, regressziós és javaslatmodellekhez automatizált gépi tanulás (AutoML) használatával, valamint a modell futtatásához/pontozásához használt C# példakódot. Emellett a modell betanítására szolgáló C#-kód is létrejön a modell algoritmusának és beállításainak kutatásához.

Feljegyzés

Ez a cikk ML.NET parancssori felületre és ML.NET AutoML-re hivatkozik, amelyek jelenleg előzetes verzióban érhetők el, és az anyagok változhatnak.

Áttekintés

Példahasználat:

mlnet regression --dataset "cars.csv" --label-col price

Az mlnet ML-feladatparancsok (classification, regression, recommendationés forecasting) a következő objektumokat generálják:

  • A szerializált modell .zip ("legjobb modell") használatra kész.
  • C#-kód a létrehozott modell futtatásához/pontszámához.
  • C# kód a modell létrehozásához használt betanítási kóddal.

Az első két eszköz közvetlenül használható a végfelhasználói alkalmazásokban (ASP.NET Core webalkalmazás, szolgáltatások, asztali alkalmazások stb.) a modellel kapcsolatos előrejelzések készítéséhez.

A harmadik objektum, a betanítási kód bemutatja, hogy milyen ML.NET API-kódot használt a parancssori felület a létrehozott modell betanításához, hogy megvizsgálhassa a modell adott algoritmusát és beállításait.

Példák

A besorolási probléma legegyszerűbb parancssori felületi parancsa (az AutoML a megadott adatokból következtet a konfiguráció nagy részére):

mlnet classification --dataset "customer-feedback.tsv" --label-col Sentiment

Egy másik egyszerű parancssori felületi parancs a regressziós problémához:

mlnet regression --dataset "cars.csv" --label-col Price

Besorolási modell létrehozása és betanítása betanított adatkészlettel, tesztadatkészlettel és további testreszabási explicit argumentumokkal:

mlnet classification --dataset "/MyDataSets/Population-Training.csv" --test-dataset "/MyDataSets/Population-Test.csv" --label-col "InsuranceRisk" --cache on --train-time 600

Parancsbeállítások

Az mlnet ML-feladatparancsok (classification, , regression, recommendationforecastingés train) több modellt képeznek be a megadott adatkészlet és ML.NET parancssori felület beállításai alapján. Ezek a parancsok a legjobb modellt is kiválasztják, szerializált .zip fájlként mentik a modellt, és létrehoznak egy kapcsolódó C#-kódot a pontozáshoz és a betanításhoz.

Besorolási beállítások

A futtatás mlnet classification betanított egy besorolási modellt. Akkor válassza ezt a parancsot, ha azt szeretné, hogy egy ml-modell 2 vagy több osztályba (például hangulatelemzés) kategorizálja az adatokat.

mlnet classification

--dataset <path> (REQUIRED)

--label-col <col> (REQUIRED)

--cache <option>

--has-header (Default: true)

--ignore-cols <cols>

--log-file-path <path>

--name <name>

-o, --output <path>

--test-dataset <path>

--train-time <time> (Default: 30 minutes, in seconds)

--validation-dataset <path>

-v, --verbosity <v>

-?, -h, --help

Regressziós beállítások

A futtatás mlnet regression egy regressziós modellt tanít be. Válassza ezt a parancsot, ha azt szeretné, hogy egy ml-modell numerikus értéket jelez előre (például ár-előrejelzés).

mlnet regression

--dataset <path> (REQUIRED)

--label-col <col> (REQUIRED)

--cache <option>

--has-header (Default: true)

--ignore-cols <cols>

--log-file-path <path>

--name <name>

-o, --output <path>

--test-dataset <path>

--train-time <time> (Default: 30 minutes, in seconds)

--validation-dataset <path>

-v, --verbosity <v>

-?, -h, --help

Javaslati lehetőségek

A futtatás mlnet recommendation egy javaslatmodell betanítása. Akkor válassza ezt a parancsot, ha azt szeretné, hogy egy gépi tanulási modell értékelés alapján (például termékjavaslat) ajánljon elemeket a felhasználóknak.

mlnet recommendation

--dataset <path> (REQUIRED)

--item-col <col> (REQUIRED)

--rating-col <col> (REQUIRED)

--user-col <col> (REQUIRED)

--cache <option>

--has-header (Default: true)

--log-file-path <path>

--name <name>

-o, --output <path>

--test-dataset <path>

--train-time <time> (Default: 30 minutes, in seconds)

--validation-dataset <path>

-v, --verbosity <v>

-?, -h, --help

Az érvénytelen beviteli beállítások miatt a PARANCSSOR-eszköz kibocsátja az érvényes bemenetek listáját és egy hibaüzenetet.

Előrejelzési lehetőségek

A futtatás mlnet forecasting egy idősorozat-előrejelzési modellt tanít be. Akkor válassza ezt a parancsot, ha azt szeretné, hogy egy gépi tanulási modell az előzményadatok (például értékesítési előrejelzés) alapján előre jelezhesse az értéket.

mlnet forecasting

--dataset <dataset> (REQUIRED)

--horizon <horizon> (REQUIRED)

--label-col <label-col> (REQUIRED)

--time-col <time-col> (REQUIRED)

--cache <Auto|Off|On>

--has-header

--log-file-path <log-file-path>

--name <name>

-o, --output <output>

--test-dataset <test-dataset>

--train-time <train-time>

-v, --verbosity <verbosity>

Betanításai lehetőségek

A futtatás mlnet train egy modell betanítása a Model Builderből létrehozott "mbconfig" fájl alapján. A parancs működéséhez a betanítási adatoknak ugyanabban a könyvtárban kell lenniük, mint az "mbconfig" fájl.

-training-config <training-config> (REQUIRED)

--log-file-path <log-file-path>

-v, --verbosity <verbosity>

Adathalmaz

--dataset | -d (sztring)

Ez az argumentum az alábbi lehetőségek egyikének adja meg a fájlútmutatót:

  • V: A teljes adathalmazfájl: Ha ezt a lehetőséget használja, és a felhasználó nem biztosít --test-dataset , akkor --validation-dataseta modell ellenőrzéséhez belsőleg keresztérvényesítési (k-fold stb.) vagy automatizált adatmegosztási módszereket használ. Ebben az esetben a felhasználónak csak meg kell adnia az adathalmaz fájlútvonalát.

  • B: A betanítási adatkészletfájl: Ha a felhasználó adatkészleteket is biztosít a modellérvényesítéshez (a használatával --test-dataset és opcionálisan --validation-dataset), akkor az --dataset argumentum azt jelenti, hogy csak a "betanítási adathalmaz" van megadva. Ha például 80%-os – 20%-os megközelítést használ a modell minőségének ellenőrzésére és a pontossági metrikák beszerzésére, a "betanítási adatkészlet" az adatok 80%-át, a "tesztadatkészlet" pedig az adatok 20%-át fogja megkapni.

Adatkészlet tesztelése

--test-dataset | -t (sztring)

A tesztadatkészletfájlra mutató fájl elérési útja, például ha 80%-os – 20%-os megközelítést használ, amikor rendszeres ellenőrzéseket végez a pontossági metrikák beszerzéséhez.

Ha használja --test-dataset, akkor --dataset is szükség van rá.

Az --test-dataset argumentum nem kötelező, kivéve, ha az --validation-datasetet használja. Ebben az esetben a felhasználónak a három argumentumot kell használnia.

Érvényesítési adatkészlet

--validation-dataset | -v (sztring)

Az érvényesítési adatkészletfájlra mutató fájl elérési útja. Az érvényesítési adatkészlet minden esetben nem kötelező.

Ha a következőt validation datasethasználja, a viselkedésnek a következőnek kell lennie:

  • Az test-dataset argumentumokra és --dataset az argumentumokra is szükség van.

  • Az validation-dataset adatkészlet a modellválasztás előrejelzési hibájának becslésére szolgál.

  • Ez test-dataset a végső kiválasztott modell általánosítási hibájának értékelésére szolgál. Ideális esetben a tesztkészletet "tárolóban" kell tartani, és csak az adatelemzés végén szabad kihozni.

A plusz használata validation dataset esetén az test datasetérvényesítési fázis alapvetően két részre oszlik:

  1. Az első részben csak a modelleket tekintheti meg, és kiválaszthatja a legjobban teljesítő megközelítést az érvényesítési adatok használatával (=érvényesítés)
  2. Ezután megbecsülheti a kiválasztott megközelítés pontosságát (=teszt).

Ezért az adatok elkülönítése 80/10/10 vagy 75/15/10 lehet. Példa:

  • training-dataset fájlnak az adatok 75%-ával kell rendelkeznie.
  • validation-dataset fájlnak az adatok 15%-ával kell rendelkeznie.
  • test-dataset fájlnak az adatok 10%-ával kell rendelkeznie.

Mindenesetre ezeket a százalékos értékeket a felhasználó határozza meg a parancssori felület használatával, aki a már felosztott fájlokat adja meg.

Címkeoszlop

--label-col (int vagy sztring)

Ezzel az argumentummal egy adott objektív/céloszlop (az előrejelezni kívánt változó) adható meg az adathalmaz fejlécében megadott oszlopnévvel vagy az adathalmaz fájljában lévő oszlop numerikus indexével (az oszlopindex értékei 0-val kezdődnek).

Ez az argumentum besorolási és regressziós problémák esetén használatos.

Elemoszlop

--item-col (int vagy sztring)

Az elemoszlop tartalmazza a felhasználók által értékelt elemek listáját (az elemek ajánlottak a felhasználóknak). Ez az oszlop az adathalmaz fejlécében megadott névvel vagy az adathalmaz fájljában lévő oszlop numerikus indexével adható meg (az oszlopindex értékei 0-nál kezdődnek).

Ez az argumentum csak a javaslati tevékenységhez használható.

Minősítési oszlop

--rating-col (int vagy sztring)

A minősítési oszlop tartalmazza a felhasználók által az elemeknek adott minősítések listáját. Ez az oszlop az adathalmaz fejlécében megadott névvel vagy az adathalmaz fájljában lévő oszlop numerikus indexével adható meg (az oszlopindex értékei 0-nál kezdődnek).

Ez az argumentum csak a javaslati tevékenységhez használható.

Felhasználói oszlop

--user-col (int vagy sztring)

A felhasználói oszlop azon felhasználók listáját tartalmazza, amelyek értékeléseket adnak az elemeknek. Ez az oszlop az adathalmaz fejlécében megadott névvel vagy az adathalmaz fájljában lévő oszlop numerikus indexével adható meg (az oszlopindex értékei 0-nál kezdődnek).

Ez az argumentum csak a javaslati tevékenységhez használható.

Oszlopok figyelmen kívül hagyása

--ignore-columns (sztring)

Ezzel az argumentummal figyelmen kívül hagyhatja az adathalmazfájl meglévő oszlopait, hogy a betanítási folyamatok ne töltődhessenek be és ne használják őket.

Adja meg azokat az oszlopneveket, amelyeket figyelmen kívül szeretne hagyni. Több oszlopnév elválasztásához használjon ", " (szóközzel rendelkező vessző) vagy " (szóköz) elemet. Idézőjeleket használhat a szóközt tartalmazó oszlopnevekhez (pl. "bejelentkezve").

Példa:

--ignore-columns email, address, id, logged_in

Fejléccel rendelkezik

--has-header (bool)

Adja meg, hogy az adathalmazfájl(ok)nak van-e fejlécsora. A lehetséges értékek a következők:

  • true
  • false

A ML.NET parancssori felület megpróbálja észlelni ezt a tulajdonságot, ha a felhasználó nem adja meg ezt az argumentumot.

Betanított idő

--train-time (sztring)

Alapértelmezés szerint a maximális feltárási / vonatidő 30 perc.

Ez az argumentum beállítja a folyamat maximális idejét (másodpercben) több oktató és konfiguráció vizsgálatára. A konfigurált idő túlléphető, ha a megadott idő túl rövid (mondjuk 2 másodperc) egyetlen iterációhoz. Ebben az esetben a tényleges idő az egyetlen modellkonfiguráció egyetlen iterációban való előállításához szükséges idő.

Az iterációkhoz szükséges idő az adathalmaz méretétől függően változhat.

Gyorsítótár

--cache (sztring)

Gyorsítótárazás esetén a rendszer a teljes betanítási adatkészletet betölti a memóriába.

A kis és közepes adathalmazok esetében a gyorsítótár használata jelentősen javíthatja a betanítási teljesítményt, ami azt jelenti, hogy a betanítási idő rövidebb lehet, mint amikor nem használja a gyorsítótárat.

A nagy adathalmazok esetében azonban az összes adat betöltése a memóriába negatív hatással lehet, mivel előfordulhat, hogy kijön a memóriából. Ha nagy adathalmazfájlokkal végzett betanítást, és nem gyorsítótárat használ, ML.NET adattömböket fog streamelni a meghajtóról, amikor több adatot kell betöltenie a betanítás során.

A következő értékeket adhatja meg:

on: A gyorsítótár betanításkor való használatára kényszeríti. off: Kényszeríti a gyorsítótár használatát betanításkor. auto: Az AutoML-heurisztikusoktól függően a gyorsítótárat a rendszer használja vagy sem. A kis/közepes adathalmazok általában gyorsítótárat használnak, a nagy adathalmazok pedig nem fogják használni a gyorsítótárat, ha a választást auto választja.

Ha nem adja meg a paramétert --cache , a rendszer alapértelmezés szerint a gyorsítótár-konfigurációt auto használja.

Név

--name (sztring)

A létrehozott kimeneti projekt vagy megoldás neve. Ha nincs megadva név, a rendszer a nevet sample-{mltask} használja.

A ML.NET modellfájl (.ZIP fájl) is ugyanazt a nevet kapja.

Kimeneti elérési út

--output | -o (sztring)

Gyökérhely/mappa a létrehozott kimenet elhelyezéséhez. Az alapértelmezett az aktuális könyvtár.

Részletesség

--verbosity | -v (sztring)

A standard kimenet részletességi szintjét állítja be.

Az engedélyezett értékek a következők:

  • q[uiet]
  • m[inimal] (alapértelmezés szerint)
  • diag[nostic] (naplózási információk szintje)

Alapértelmezés szerint a CLI-eszköznek minimális visszajelzést (minimal) kell mutatnia munka közben, például megemlítve, hogy működik, és ha lehetséges, mennyi idő maradt, vagy az idő hány százaléka fejeződött be.

Help

-h |--help

Kiírja a parancs súgóját az egyes parancsparaméterek leírásával.

Lásd még