Megosztás a következőn keresztül:


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.

Megjegyzé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 anyag változhat.

Á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/értékeléséhez.
  • 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 mlnet classification futtatása egy besorolási modellt fog betanítani. Akkor válassza ezt a parancsot, ha azt szeretné, hogy egy ml-modell az adatokat 2 vagy több osztályba (például hangulatelemzésbe) kategorizálja.

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 gépi tanulási 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(z) mlnet recommendation végrehajtása egy ajánlásmodell betanítását fogja elvégezni. Válassza ezt a parancsot, ha azt szeretné, hogy egy gépi tanulási modell értékelés alapján (például termékajánlás) javasolja az 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

mlnet forecasting futtatása 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 mlnet train futtatása egy modellt fog betanítani egy "mbconfig" fájl alapján, amelyet a Model Builder hozott létre. 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>

Adatkészlet

--dataset | -d (sztring)

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

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

  • B: A betanítási adathalmaz fájlja: Ha a felhasználó adatkészleteket is biztosít a modellérvényesítéshez (a --test-dataset használatával és opcionálisan --validation-dataset), akkor az --dataset argumentum azt jelenti, hogy csak a "betanítási adathalmaz" szerepel. Ha például 80% – 20% 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" 80% lesz az adatokból, a "tesztadatkészlet" pedig 20% az adatokból.

Adatkészlet tesztelése

--test-dataset | -t (sztring)

A tesztadatkészletfájlra mutató fájl elérési útja, például 80% – 20% módszer használata esetén, 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.

Alapvetően, a validation dataset plusz és test dataset használatakor az érvényesítési fázis 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éldául:

  • training-dataset fájlnak 75% adatnak kell lennie.
  • validation-dataset fájlnak 15%-t kell tartalmaznia az adatokból.
  • A test-dataset fájlban 10% adatnak kell lennie.

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 karakterlánc)

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 ésregressziós problémák esetén használatos.

Elemek oszlopa

--item-col (int vagy karakterlánc)

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 karakterlánc)

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 karakterlánc)

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 (például "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.

Vonat idő

--train-time (sztring)

Alapértelmezés szerint a maximális feltárási vagy betanítási idő 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őkorlát túlléphető, ha 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 teljes betanítási adatkészlet a memóriába kerül betöltésre.

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 használatára kényszeríti a betanítás során. off: Kényszeríti a gyorsítótár mellőzésé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.

Bőbeszédűség

--verbosity | -v (sztring)

A szabványos 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 parancssori felület 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 hogy az idő % befejeződött.

Segítség

-h |--help

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

Lásd még