Dokumentacja poleceń interfejsu wiersza polecenia ML.NET
Polecenia classification
, regression
i recommendation
to główne polecenia udostępniane przez narzędzie interfejsu wiersza polecenia ML.NET. Te polecenia umożliwiają generowanie modeli ML.NET dobrej jakości dla modeli klasyfikacji, regresji i rekomendacji przy użyciu zautomatyzowanego uczenia maszynowego (AutoML), a także przykładowego kodu języka C# do uruchamiania/oceniania tego modelu. Ponadto kod języka C# do trenowania modelu jest generowany w celu zbadania algorytmu i ustawień modelu.
Notatka
Ten artykuł dotyczy ML.NET CLI (interfejsu wiersza polecenia) i ML.NET AutoML, które są obecnie dostępne w wersji zapoznawczej, a materiały mogą ulec zmianie.
Przegląd
Przykładowe użycie:
mlnet regression --dataset "cars.csv" --label-col price
Polecenia zadań mlnet
ML (classification
, regression
, recommendation
i forecasting
) generują następujące zasoby:
- Model serializowany .zip ("najlepszy model") gotowy do użycia.
- Kod języka C# do uruchamiania/oceniania wygenerowanego modelu.
- Kod języka C# z kodem szkoleniowym używanym do generowania tego modelu.
Pierwsze dwa zasoby mogą być bezpośrednio używane w aplikacjach użytkowników końcowych (ASP.NET Core aplikacji internetowej, usługach, aplikacjach klasycznych i nie tylko), aby dokonywać prognoz z modelem.
Trzecim zasobem jest kod trenowania, który pokazuje, jaki kod interfejsu API ML.NET był używany przez CLI do trenowania wygenerowanego modelu, co pozwala na zbadanie konkretnego algorytmu i ustawień modelu.
Przykłady
Najprostsze polecenie interfejsu wiersza polecenia dla problemu klasyfikacji (AutoML wywnioskuje większość konfiguracji z podanych danych):
mlnet classification --dataset "customer-feedback.tsv" --label-col Sentiment
Kolejne proste polecenie CLI dla problemu regresji:
mlnet regression --dataset "cars.csv" --label-col Price
Utwórz i wytrenuj model klasyfikacji, wykorzystując zestaw danych treningowych, zestaw danych testowych oraz dalsze dostosowanie poprzez jawne argumenty.
mlnet classification --dataset "/MyDataSets/Population-Training.csv" --test-dataset "/MyDataSets/Population-Test.csv" --label-col "InsuranceRisk" --cache on --train-time 600
Opcje poleceń
Polecenia zadań mlnet
ML (classification
, regression
, recommendation
, forecasting
i train
) szkolą wiele modeli na podstawie dostarczonego zestawu danych i opcji interfejsu wiersza polecenia ML.NET. Te polecenia wybierają również najlepszy model, zapisują model jako serializowany plik .zip i generują powiązany kod języka C# na potrzeby oceniania i trenowania.
Opcje klasyfikacji
Uruchomienie mlnet classification
spowoduje trenowanie modelu klasyfikacji. Wybierz to polecenie, jeśli model uczenia maszynowego ma kategoryzować dane do 2 lub więcej klas (np. analiza tonacji).
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
Opcje regresji
Uruchomienie mlnet regression
spowoduje wytrenowanie modelu regresji. Wybierz to polecenie, jeśli chcesz, aby model uczenia maszynowego przewidywał wartość liczbową (np. przewidywanie cen).
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
Opcje rekomendacji
Uruchomienie mlnet recommendation
spowoduje trenowanie modelu rekomendacji. Wybierz to polecenie, jeśli chcesz, aby model uczenia maszynowego polecał elementy użytkownikom na podstawie ocen (np. rekomendacji dotyczących produktu).
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
Nieprawidłowe opcje wprowadzania powodują, że narzędzie interfejsu wiersza polecenia emituje listę prawidłowych danych wejściowych i komunikat o błędzie.
Opcje prognozowania
Uruchomienie mlnet forecasting
spowoduje wytrenowanie modelu prognozowania szeregów czasowych. Wybierz to polecenie, jeśli chcesz, aby model uczenia maszynowego przewidywał wartość na podstawie danych historycznych (na przykład prognozowania sprzedaży).
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>
Opcje dotyczące pociągów
Uruchomienie mlnet train
wytrenuje model na podstawie pliku "mbconfig" wygenerowanego z narzędzia Model Builder. Aby to polecenie działało, dane szkoleniowe muszą znajdować się w tym samym katalogu co plik "mbconfig".
-training-config <training-config> (REQUIRED)
--log-file-path <log-file-path>
-v, --verbosity <verbosity>
Zbiór danych
--dataset | -d
(ciąg)
Ten argument udostępnia ścieżkę pliku do jednej z następujących opcji:
A: Cały plik zestawu danych: Jeśli jest używana ta opcja, a użytkownik nie udostępnia
--test-dataset
i--validation-dataset
, następnie krzyżowe sprawdzanie poprawności (k-fold itp.) lub zautomatyzowane metody podziału danych będą używane wewnętrznie do walidacji modelu. W takim przypadku użytkownik będzie musiał po prostu podać ścieżkę pliku zestawu danych.B: plik treningowego zestawu danych: Jeśli użytkownik dostarcza również zestawy danych do walidacji modelu (przy użyciu
--test-dataset
i opcjonalnie--validation-dataset
), to argument--dataset
oznacza tylko posiadanie "treningowego zestawu danych". Na przykład w przypadku użycia podejścia 80% - 20% w celu zweryfikowania jakości modelu i uzyskania metryk dokładności, "zestaw danych treningowych" będzie zawierał 80% danych, a "zestaw danych testowych" będzie zawierał 20% danych.
Testowy zestaw danych
--test-dataset | -t
(ciąg)
Ścieżka pliku wskazująca plik zestawu danych testowego, na przykład w przypadku korzystania z metody 80% – 20% podczas regularnego sprawdzania poprawności w celu uzyskania metryk dokładności.
W przypadku korzystania z --test-dataset
wymagane jest również --dataset
.
Argument --test-dataset
jest opcjonalny, chyba że jest używany parametr --validation-dataset. W takim przypadku użytkownik musi użyć trzech argumentów.
Zestaw danych weryfikacji
--validation-dataset | -v
(ciąg)
Ścieżka pliku wskazująca plik zestawu danych walidacyjnych. Zestaw danych weryfikacji jest opcjonalny w każdym przypadku.
W przypadku korzystania z validation dataset
zachowanie powinno być następujące:
Wymagane są również argumenty
test-dataset
i--dataset
.Zestaw danych
validation-dataset
służy do szacowania błędu przewidywania dla wyboru modelu.test-dataset
służy do oceny błędu uogólniania ostatecznego wybranego modelu. Najlepiej zestaw testów powinien być przechowywany w sejfie i wyjmowany dopiero pod koniec analizy danych.
Zasadniczo w przypadku korzystania z validation dataset
oraz test dataset
faza walidacji jest podzielona na dwie części:
- W pierwszej części wystarczy przyjrzeć się modelom i wybrać najlepsze rozwiązanie przy użyciu danych weryfikacji (=walidacja)
- Następnie szacujesz dokładność wybranego podejścia (=test).
W związku z tym rozdzielenie danych może być 80/10/10 lub 75/15/10. Na przykład:
- Plik
training-dataset
powinien zawierać 75% danych. - Plik
validation-dataset
powinien zawierać 15% danych. - Plik
test-dataset
powinien mieć 10% danych.
W każdym razie te wartości procentowe zostaną ustalone przez użytkownika przy użyciu interfejsu wiersza polecenia, który udostępni pliki już podzielone.
Kolumna etykiety
--label-col
(int lub string)
Przy użyciu tego argumentu można określić konkretną kolumnę celu/celu (zmienną, którą chcesz przewidzieć) przy użyciu nazwy kolumny ustawionej w nagłówku zestawu danych lub indeksu liczbowego kolumny w pliku zestawu danych (wartości indeksu kolumny zaczynają się od 0).
Ten argument jest używany do klasyfikacji i regresji problemów.
Kolumna elementu
--item-col
(int lub string)
Kolumna elementu zawiera listę elementów, które użytkownicy oceniają (elementy są zalecane dla użytkowników). Tę kolumnę można określić przy użyciu nazwy kolumny ustawionej w nagłówku zestawu danych lub indeksu liczbowego kolumny w pliku zestawu danych (wartości indeksu kolumny zaczynają się od 0).
Ten argument jest używany tylko dla zadania rekomendacji .
Kolumna klasyfikacji
--rating-col
(int lub string)
Kolumna klasyfikacji zawiera listę ocen, które są przekazywane do elementów przez użytkowników. Tę kolumnę można określić przy użyciu nazwy kolumny ustawionej w nagłówku zestawu danych lub indeksu liczbowego kolumny w pliku zestawu danych (wartości indeksu kolumny zaczynają się od 0).
Ten argument jest używany tylko dla zadania {rekomendacja } {}.
Kolumna użytkownika
--user-col
(int lub string)
Kolumna użytkownika zawiera listę użytkowników, którzy dają oceny elementom. Tę kolumnę można określić przy użyciu nazwy kolumny ustawionej w nagłówku zestawu danych lub indeksu liczbowego kolumny w pliku zestawu danych (wartości indeksu kolumny zaczynają się od 0).
Ten argument jest używany tylko w kontekście rekomendacji w zadaniu.
Ignoruj kolumny
--ignore-columns
(ciąg)
Za pomocą tego argumentu można zignorować istniejące kolumny w pliku zestawu danych, aby nie były ładowane i używane przez procesy trenowania.
Określ nazwy kolumn, które chcesz zignorować. Użyj znaku ", " (przecinek z spacją) lub " (spacja), aby oddzielić wiele nazw kolumn. Można użyć cudzysłowów dla nazw kolumn zawierających białe znaki (np. "zalogowany").
Przykład:
--ignore-columns email, address, id, logged_in
Ma nagłówek
--has-header
(wartość logiczna)
Określ, czy pliki zestawu danych mają wiersz nagłówka. Możliwe wartości to:
true
false
Interfejs wiersza polecenia ML.NET spróbuje wykryć tę właściwość, jeśli ten argument nie zostanie określony przez użytkownika.
Czas pociągu
--train-time
(ciąg znaków)
Domyślnie maksymalny czas eksploracji lub szkolenia wynosi 30 minut.
Ten argument określa maksymalny czas (w sekundach) dla procesu eksplorowania wielu trenerów i konfiguracji. Skonfigurowany limit czasu może zostać przekroczony, jeśli jest zbyt krótki (powiedzmy 2 sekundy) dla pojedynczej iteracji. W takim przypadku rzeczywisty czas jest wymagany do utworzenia jednej konfiguracji modelu w jednej iteracji.
Czas potrzebny na iterację może się różnić w zależności od rozmiaru zestawu danych.
Pamięć podręczna
--cache
(ciąg)
Jeśli używasz buforowania, cały zestaw danych treningowych zostanie załadowany do pamięci.
W przypadku małych i średnich zestawów danych użycie pamięci podręcznej może znacząco poprawić wydajność trenowania, co oznacza, że czas trenowania może być krótszy niż w przypadku, gdy nie używasz pamięci podręcznej.
Jednak w przypadku dużych zestawów danych ładowanie wszystkich danych do pamięci może mieć negatywne skutki, ponieważ istnieje ryzyko przekroczenia dostępnej pamięci. Podczas trenowania z dużymi plikami zestawów danych i braku użycia pamięci podręcznej, ML.NET będzie przesyłać strumieniowo fragmenty danych z dysku, kiedy trzeba załadować więcej danych podczas trenowania.
Możesz określić następujące wartości:
on
: Wymusza użycie pamięci podręcznej podczas treningu.
off
: wymusza, aby pamięć podręczna nie była używana podczas trenowania.
auto
: w zależności od heurystyki zautomatyzowanego uczenia maszynowego pamięć podręczna będzie używana lub nie. Zazwyczaj małe/średnie zestawy danych będą korzystać z pamięci podręcznej, a duże zestawy danych nie będą z niej korzystać, jeśli wybierzesz opcję auto
.
Jeśli nie określisz parametru --cache
, domyślnie będzie używana konfiguracja auto
pamięci podręcznej.
Nazwa
--name
(ciąg)
Nazwa utworzonego projektu wyjściowego lub rozwiązania. Jeśli żadna nazwa nie zostanie określona, zostanie użyta nazwa sample-{mltask}
.
Plik modelu ML.NET (plik .ZIP) również otrzyma taką samą nazwę.
Ścieżka wyjściowa
--output | -o
(ciąg)
Lokalizacja/folder główny do umieszczania wygenerowanych danych wyjściowych. Wartość domyślna to bieżący katalog.
Rozwlekłość
--verbosity | -v
(ciąg)
Ustawia poziom szczegółowości wyświetlania standardowych danych wyjściowych.
Dozwolone wartości to:
q[uiet]
-
m[inimal]
(domyślnie) -
diag[nostic]
(poziom informacji rejestrowania)
Domyślnie narzędzie wiersza polecenia powinno wyświetlać minimalną informację zwrotną (minimal
) podczas pracy, na przykład informować, że działa, i jeśli to możliwe, ile czasu pozostało lub jaki % czasu został ukończony.
Pomoc
-h |--help
Wyświetla pomoc dla polecenia, zawierającą opis parametrów dla każdego z poleceń.