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
, recommendation
forecasting
é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-dataset
a 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 dataset
haszná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:
- 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)
- 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.