Поделиться через


Справочник по команде CLI 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, regression, recommendationи forecasting) создают следующие ресурсы:

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

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

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

Примеры

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

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

Другая простая команда CLI для проблемы регрессии:

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, recommendation, forecastingи train) обучают несколько моделей на основе предоставленного набора данных и параметров интерфейса командной строки ML.NET. Эти команды также выбирают лучшую модель, сохраните модель в виде сериализованного файла .zip и создайте связанный код C# для оценки и обучения.

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

Запуск mlnet classification обучит модель классификации. Выберите эту команду, если требуется, чтобы модель машинного обучения классифицировала данные в 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 обучит модель регрессии. Выберите эту команду, если требуется, чтобы модель машинного обучения предсказывала числовое значение (например, прогнозирование цен).

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 приведет к обучению модели рекомендаций. Выберите эту команду, если вы хотите, чтобы модель машинного обучения рекомендовала пользователям элементы на основе оценок (например, рекомендации по продукту).

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. Затем вы оцениваете точность выбранного подхода (=test).

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

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

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

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

--label-col (int или string)

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

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

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

--item-col (int или string)

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

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

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

--rating-col (int или string)

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

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

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

--user-col (int или string)

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

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

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

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

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

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

Пример:

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

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

--has-header (bool)

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

  • true
  • false

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

Время поезда

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

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

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

Время, необходимое для итерации, может отличаться в зависимости от размера набора данных.

Кэш

--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

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

См. также