Справочник по командам интерфейса командной строки ML.NET

Команды classification, regression и recommendation являются основными командами, предоставляемыми программой командной строки ML.NET. Эти команды позволяют создать модель ML.NET хорошего качества для классификации и регрессии, а также модели рекомендации, используя автоматизированное машинное обучение (AutoML), а также пример кода на C# для выполнения и оценки модели. Кроме того, код C# для обучения модели создается для изучения алгоритма и параметров модели.

Примечание.

Эта статья относится к ML.NET CLI и ML.NET AutoML, которые в настоящее время находятся в предварительной версии, и материалы могут быть изменены.

Обзор

Пример использования:

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

Команды mlnet задач машинного обучения (classification, , recommendationregressionиforecasting) создают следующие ресурсы:

  • готовый к использованию ZIP-файл сериализованной модели ("модели высшего качества");
  • код C# для выполнения или оценки созданной модели.
  • код на C# с кодом обучения, используемый для создания этой модели.

Первые два ресурса можно использовать непосредственно в приложениях конечных пользователей (веб-приложениях и службах ASP.NET Core, классических приложениях и т. д.) для прогнозирования с помощью созданной модели.

Третий актив, код обучения, показывает, какой код API ML.NET использовало средство CLI для обучения созданной модели, поэтому можно определить конкретный алгоритм обучения и параметры модели.

Примеры

Самый простой пример команды CLI для задачи классификации (ядро AutoML выведет большую часть параметров из предоставленных данных):

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

Другой простой пример команды интерфейса командной строки для решения задачи регрессии:

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

Создание и обучение модели классификации с набором данных для обучения, проверочным набором данных и дальнейшей настройкой явных аргументов:

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

Параметры команды

mlnet Команды задач машинного обучения (classification, , regressionиforecastingrecommendationtrain) обучают несколько моделей на основе предоставленного набора данных и ML.NET параметров ИНТЕРФЕЙСА командной строки. Эти команды также выбирают оптимальную модель, сохраняют ее в виде сериализованного ZIP-файла и создают связанный код C# для оценки и обучения.

Параметры классификации

При запуске mlnet classification выполняется обучение модели классификации. Выберите эту команду, если требуется, чтобы модель машинного обучения Azure категоризировала данные по 2 или более классам (например, анализ тональности).

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

Параметры регрессии

При запуске mlnet regression выполняется обучение модели регрессии. Выберите эту команду, если требуется, чтобы модель машинного обучения Azure предсказывала числовое значение (например, прогноз цены).

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

Параметры рекомендации

При запуске mlnet recommendation выполняется обучение модели рекомендации. Выберите эту команду, если требуется, чтобы модель ML рекомендовала пользователям элементы на основе оценок (например, рекомендации продукта).

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

Недопустимые входные параметры приводят к тому, что средство CLI выдает список допустимых входных данных и сообщение об ошибке.

Параметры прогнозирования

Выполняется mlnet forecasting обучение модели прогнозирования временных рядов. Выберите эту команду, если требуется, чтобы модель машинного обучения прогнозировала значение на основе исторических данных (например, прогнозирование продаж).

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>

Параметры обучения

Запуск mlnet train обучит модель на основе файла mbconfig, созданного в построителе моделей. Для работы этой команды данные обучения должны находиться в том же каталоге, что и файл mbconfig.

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

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

-v, --verbosity <verbosity>

Набор данных

--dataset | -d (строка)

Этот аргумент содержит путь к файлу в одном из следующих форматов:

  • Ответ. Весь файл набора данных: если этот параметр используется и пользователь не предоставляет --test-dataset , а --validation-datasetзатем перекрестная проверка (k-fold и т. д.) или автоматизированные подходы разделения данных будут использоваться внутренне для проверки модели. В этом случае пользователю будет достаточно указать путь к файлу набора данных.

  • B. Файл набора данных для обучения: если пользователь также предоставляет наборы данных для проверки модели (использование --test-dataset и необязательно --validation-dataset), --dataset аргумент означает только "обучающий набор данных". Например при использовании подхода 80–20 % для валидации качества модели и получения показателей точности "набор данных для обучения" будет содержать 80 % данных, а на "проверочный набор данных" придется 20 % данных.

Проверочный набор данных

--test-dataset | -t (строка)

Путь к файлу набора данных теста, например при использовании подхода 80–20 % при выполнении регулярных валидаций для получения показателей точности.

При использовании --test-dataset параметр --dataset также является обязательным.

Аргумент --test-dataset является необязательным, если только не используется --validation-dataset. В этом случае пользователь должен использовать три аргумента.

Проверочный набор данных

--validation-dataset | -v (строка)

Путь к файлу валидационного набора данных. В любом случае валидационный набор данных является необязательным.

При использовании validation dataset должно быть следующее поведение:

  • Аргументы test-dataset и --dataset также являются обязательными.

  • Набор данных validation-dataset используется для оценки ошибки прогноза для выбора модели.

  • test-dataset используется для оценки ошибки обобщения конечной выбранной модели. В идеале проверочный набор должен храниться в "хранилище" и добавляться только в конце анализа данных.

Обычно при использовании validation dataset с test dataset этап валидации состоит из двух частей.

  1. В первой части вы просто смотрите на модели и выбираете наиболее эффективный подход с использованием проверочных данных (=валидация).
  2. Затем можно оценить точность выбранного подхода (= проверка).

Таким образом, разделение данных может быть задано как 80-10-10 или 75-15-10. Например:

  • Файл training-dataset должен содержать 75 % данных.
  • Файл validation-dataset должен содержать 15 % данных.
  • Файл test-dataset должен содержать 10 % данных.

В любом случае эти проценты выбираются с помощью интерфейса командной строки, который будет предоставлять уже разделенные файлы.

Столбец метки

--label-col (целочисленное или строковое значение)

С помощью этого аргумента можно задать определенную цель и целевой столбца (переменную, которую требуется спрогнозировать) с помощью имени столбца, заданного в заголовке набора данных, или числового индекса столбца в файле набора данных (значения индексов столбцов начинаются с 0).

Этот аргумент используется для классификации и регрессии.

Столбец элементов

--item-col (целочисленное или строковое значение)

В столбце элементов содержится список элементов, которые оцениваются пользователями (эти элементы рекомендуются пользователям). Этот столбец можно задать с использованием имени столбца, заданного в заголовке набора данных, или числового индекса столбца в файле набора данных (значения индексов столбцов начинаются с 0).

Этот аргумент используется только для задачи рекомендации.

Столбец оценок

--rating-col (целочисленное или строковое значение)

Столбец оценок содержит список оценок, присвоенных пользователями элементам. Этот столбец можно задать с использованием имени столбца, заданного в заголовке набора данных, или числового индекса столбца в файле набора данных (значения индексов столбцов начинаются с 0).

Этот аргумент используется только для задачи рекомендации.

Столбец пользователей

--user-col (целочисленное или строковое значение)

В столбце пользователей содержится список пользователей, которые присваивают оценки элементам. Этот столбец можно задать с использованием имени столбца, заданного в заголовке набора данных, или числового индекса столбца в файле набора данных (значения индексов столбцов начинаются с 0).

Этот аргумент используется только для задачи рекомендации.

Игнорировать столбцы

--ignore-columns (строка)

С помощью этого аргумента можно игнорировать существующие столбцы в файле набора данных; они не загружаются и не используются процессами обучения.

Укажите имена столбцов, которые требуется игнорировать. Используйте ", " (запятая с пробелом) или " " (пробел) для разделения нескольких имен столбцов. Можно использовать кавычки для имен столбцов, содержащих пробелы (например, "Вход в систему").

Пример:

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

Имеет заголовок

--has-header (логическое значение)

Укажите, содержат ли файлы набора данных строку заголовка. Возможны следующие значения:

  • true
  • false

Если этот аргумент не задан пользователем, интерфейс командной строки ML.NET попытается обнаружить это свойство.

Время обучения

--train-time (строка)

По умолчанию максимальное время исследования/обучения составляет 30 минут.

Этот аргумент задает максимальное время (в секундах) для процесса изучения различных учителей и конфигураций. Заданное время может быть превышено, если указанное время слишком мало (скажем, 2 секунды) для одной итерации. В этом случае фактическое время — это время, необходимое для создания одной модели конфигурации в одной итерации.

Требуемое время для итераций зависит от размера набора данных.

Cache

--cache (строка)

При использовании кэширования весь обучающий набор данных будет загружен в память.

Для малых и средних наборов данных с помощью кэша можно существенно улучшить производительность обучения; это означает, что время обучения может быть короче, чем в ситуации, если кэш не используется.

Тем не менее на большие наборы данных загрузка всех данных в память может повлиять отрицательно, так как может возникнуть нехватка памяти. В случае обучения с большими файлами набора данных без использования кэша ML.NET будет потоком передавать блоки данных с диска при необходимости загрузить дополнительные данные во время обучения.

Можно указать следующие значения:

on: принудительное использование кэша при обучении. off: принудительное использование кэша при обучении не требуется. auto: в зависимости от эвристики AutoML кэш будет использоваться или нет. Как правило, для небольших и средних наборов данных будет использоваться кэш; большие наборы данных не будут использовать кэш, если вы укажете auto.

Если вы не укажете параметр --cache, то для кэша auto будет использована конфигурация по умолчанию.

Имя.

--name (строка)

Имя для создаваемых выходных проекта или решения. Если имя не задано, используется имя sample-{mltask}.

Файл модели ML.NET (ZIP-файл) получит то же имя.

Путь вывода

--output | -o (строка)

Корневое расположение или папка для размещения созданных выходных данных. По умолчанию используется текущий каталог.

Уровень детализации

--verbosity | -v (строка)

Задает уровень детализации стандартных выходных данных.

Допустимые значения:

  • q[uiet]
  • m[inimal] (по умолчанию);
  • diag[nostic] (уровень ведения журнала).

По умолчанию программа командной строки должна отображать минимальные данные обратной связи (minimal) во время работы, например отметить, что она работает и (по возможности) сколько времени уйдет на завершение работы.

Справка

-h |--help

Выводит справку для команды с описанием каждого аргумента.

См. также