A referência de comando ML.NET CLI
Os classification
comandos , regression
e são recommendation
os principais comandos fornecidos pela ferramenta ML.NET CLI. Esses comandos permitem gerar modelos de ML.NET de boa qualidade para modelos de classificação, regressão e recomendação usando aprendizado de máquina automatizado (AutoML), bem como o código C# de exemplo para executar/pontuar esse modelo. Além disso, o código C# para treinar o modelo é gerado para você pesquisar o algoritmo e as configurações do modelo.
Nota
Este artigo refere-se a ML.NET CLI e ML.NET AutoML, que estão atualmente em Visualização, e o material pode estar sujeito a alterações.
Descrição geral
Exemplo de uso:
mlnet regression --dataset "cars.csv" --label-col price
Os mlnet
comandos da tarefa ML (classification
, regression
, recommendation
, e forecasting
) geram os seguintes ativos:
- Um modelo serializado .zip ("melhor modelo") pronto para uso.
- Código C# para executar/pontuar o modelo gerado.
- Código C# com o código de treinamento usado para gerar esse modelo.
Os dois primeiros ativos podem ser usados diretamente em seus aplicativos de usuário final (aplicativo Web ASP.NET Core, serviços, aplicativo de desktop e muito mais) para fazer previsões com o modelo.
O terceiro ativo, o código de treinamento, mostra qual ML.NET código de API foi usado pela CLI para treinar o modelo gerado, para que você possa investigar o algoritmo específico e as configurações do modelo.
Exemplos
O comando CLI mais simples para um problema de classificação (AutoML infere a maior parte da configuração a partir dos dados fornecidos):
mlnet classification --dataset "customer-feedback.tsv" --label-col Sentiment
Outro comando CLI simples para um problema de regressão:
mlnet regression --dataset "cars.csv" --label-col Price
Crie e treine um modelo de classificação com um conjunto de dados de trem, um conjunto de dados de teste e outros argumentos explícitos de personalização:
mlnet classification --dataset "/MyDataSets/Population-Training.csv" --test-dataset "/MyDataSets/Population-Test.csv" --label-col "InsuranceRisk" --cache on --train-time 600
Opções de comando
Os mlnet
comandos de tarefa de ML (classification
, regression
, recommendation
, forecasting
e train
) treinam vários modelos com base no conjunto de dados fornecido e ML.NET opções de CLI. Esses comandos também selecionam o melhor modelo, salvam o modelo como um arquivo .zip serializado e geram código C# relacionado para pontuação e treinamento.
Opções de classificação
A corrida mlnet classification
treinará um modelo de classificação. Escolha este comando se quiser que um Modelo de ML categorize os dados em 2 ou mais classes (por exemplo, análise de sentimento).
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
Opções de regressão
A execução mlnet regression
treinará um modelo de regressão. Escolha este comando se quiser que um Modelo ML preveja um valor numérico (por exemplo, previsão de preço).
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
Opções de recomendação
A execução mlnet recommendation
treinará um modelo de recomendação. Escolha este comando se quiser que um Modelo de ML recomende itens aos usuários com base em classificações (por exemplo, recomendação de produto).
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
Opções de entrada inválidas fazem com que a ferramenta CLI emita uma lista de entradas válidas e uma mensagem de erro.
Opções de previsão
A corrida mlnet forecasting
treinará um modelo de previsão de séries temporais. Escolha este comando se desejar que um Modelo de ML preveja um valor com base em dados históricos (por exemplo, previsão de vendas).
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>
Opções de comboio
A execução mlnet train
treinará um modelo baseado em um arquivo "mbconfig" gerado a partir do Model Builder. Para que este comando funcione, os dados de treinamento devem estar no mesmo diretório que o arquivo "mbconfig".
-training-config <training-config> (REQUIRED)
--log-file-path <log-file-path>
-v, --verbosity <verbosity>
Conjunto de dados
--dataset | -d
(string)
Esse argumento fornece o caminho do arquivo para uma das seguintes opções:
R: O arquivo de conjunto de dados inteiro: Se estiver usando esta opção e o usuário não estiver fornecendo
--test-dataset
e--validation-dataset
, então a validação cruzada (k-fold, etc.) ou abordagens automatizadas de divisão de dados serão usadas internamente para validar o modelo. Nesse caso, o usuário só precisará fornecer o caminho do arquivo do conjunto de dados.B: O arquivo de conjunto de dados de treinamento: Se o usuário também estiver fornecendo conjuntos de dados para validação de modelo (usando
--test-dataset
e opcionalmente--validation-dataset
), então o--dataset
argumento significa ter apenas o "conjunto de dados de treinamento". Por exemplo, ao usar uma abordagem de 80% a 20% para validar a qualidade do modelo e obter métricas de precisão, o "conjunto de dados de treinamento" terá 80% dos dados e o "conjunto de dados de teste" terá 20% dos dados.
Conjunto de dados de teste
--test-dataset | -t
(string)
Caminho do arquivo apontando para o arquivo do conjunto de dados de teste, por exemplo, ao usar uma abordagem de 80% a 20% ao fazer validações regulares para obter métricas de precisão.
Se usar --test-dataset
, então --dataset
também é necessário.
O --test-dataset
argumento é opcional, a menos que o --validation-dataset seja usado. Nesse caso, o usuário deve usar os três argumentos.
Conjunto de dados de validação
--validation-dataset | -v
(string)
Caminho do arquivo apontando para o arquivo do conjunto de dados de validação. O conjunto de dados de validação é opcional, em qualquer caso.
Se estiver usando um validation dataset
, o comportamento deve ser:
Os
test-dataset
e--dataset
argumentos também são necessários.O
validation-dataset
conjunto de dados é usado para estimar o erro de previsão para a seleção do modelo.O
test-dataset
é usado para avaliar o erro de generalização do modelo final escolhido. Idealmente, o conjunto de testes deve ser mantido em um "cofre" e ser retirado apenas no final da análise de dados.
Basicamente, ao usar um validation dataset
plus the test dataset
, a fase de validação é dividida em duas partes:
- Na primeira parte, basta olhar para os seus modelos e selecionar a abordagem com melhor desempenho usando os dados de validação (=validação)
- Em seguida, você estima a precisão da abordagem selecionada (=teste).
Assim, a separação de dados poderia ser 80/10/10 ou 75/15/10. Por exemplo:
training-dataset
arquivo deve ter 75% dos dados.validation-dataset
arquivo deve ter 15% dos dados.test-dataset
arquivo deve ter 10% dos dados.
Em qualquer caso, essas porcentagens serão decididas pelo usuário usando a CLI, que fornecerá os arquivos já divididos.
Coluna do rótulo
--label-col
(int ou string)
Com esse argumento, uma coluna de objetivo/destino específica (a variável que você deseja prever) pode ser especificada usando o nome da coluna definido no cabeçalho do conjunto de dados ou o índice numérico da coluna no arquivo do conjunto de dados (os valores de índice da coluna começam em 0).
Este argumento é usado para problemas de classificação e regressão .
Coluna de item
--item-col
(int ou string)
A coluna de item tem a lista de itens que os usuários classificam (os itens são recomendados aos usuários). Essa coluna pode ser especificada usando o nome da coluna definido no cabeçalho do conjunto de dados ou o índice numérico da coluna no arquivo do conjunto de dados (os valores de índice da coluna começam em 0).
Esse argumento é usado apenas para a tarefa de recomendação .
Coluna de classificação
--rating-col
(int ou string)
A coluna de classificação tem a lista de classificações que são dadas aos itens pelos usuários. Essa coluna pode ser especificada usando o nome da coluna definido no cabeçalho do conjunto de dados ou o índice numérico da coluna no arquivo do conjunto de dados (os valores de índice da coluna começam em 0).
Esse argumento é usado apenas para a tarefa de recomendação .
Coluna do utilizador
--user-col
(int ou string)
A coluna de usuário tem a lista de usuários que dão classificações aos itens. Essa coluna pode ser especificada usando o nome da coluna definido no cabeçalho do conjunto de dados ou o índice numérico da coluna no arquivo do conjunto de dados (os valores de índice da coluna começam em 0).
Esse argumento é usado apenas para a tarefa de recomendação .
Ignorar colunas
--ignore-columns
(string)
Com esse argumento, você pode ignorar colunas existentes no arquivo de conjunto de dados para que elas não sejam carregadas e usadas pelos processos de treinamento.
Especifique os nomes das colunas que deseja ignorar. Use ', ' (vírgula com espaço) ou ' ' (espaço) para separar vários nomes de coluna. Você pode usar aspas para nomes de colunas que contenham espaço em branco (por exemplo, "conectado").
Exemplo:
--ignore-columns email, address, id, logged_in
Tem cabeçalho
--has-header
(bool)
Especifique se o(s) arquivo(s) do conjunto de dados têm uma linha de cabeçalho. Os valores possíveis são:
true
false
A ML.NET CLI tentará detetar essa propriedade se esse argumento não for especificado pelo usuário.
Tempo de comboio
--train-time
(string)
Por padrão, o tempo máximo de exploração/trem é de 30 minutos.
Este argumento define o tempo máximo (em segundos) para o processo explorar vários treinadores e configurações. O tempo configurado pode ser excedido se o tempo fornecido for muito curto (digamos 2 segundos) para uma única iteração. Nesse caso, o tempo real é o tempo necessário para produzir uma configuração de modelo em uma única iteração.
O tempo necessário para iterações pode variar dependendo do tamanho do conjunto de dados.
Cache
--cache
(string)
Se você usar cache, todo o conjunto de dados de treinamento será carregado na memória.
Para conjuntos de dados pequenos e médios, o uso do cache pode melhorar drasticamente o desempenho do treinamento, o que significa que o tempo de treinamento pode ser menor do que quando você não usa cache.
No entanto, para grandes conjuntos de dados, carregar todos os dados na memória pode ter um impacto negativo, uma vez que você pode ficar sem memória. Ao treinar com arquivos de conjunto de dados grandes e não usar cache, ML.NET estará transmitindo partes de dados da unidade quando precisar carregar mais dados durante o treinamento.
Pode especificar os seguintes valores:
on
: Força o cache a ser usado durante o treinamento.
off
: Força o cache a não ser usado durante o treinamento.
auto
: Dependendo da heurística do AutoML, o cache será usado ou não. Normalmente, conjuntos de dados pequenos/médios usarão cache e conjuntos de dados grandes não usarão cache se você usar a auto
opção.
Se você não especificar o --cache
parâmetro, a configuração de cache auto
será usada por padrão.
Nome
--name
(string)
O nome do projeto ou solução de saída criado. Se nenhum nome for especificado, o nome sample-{mltask}
será usado.
O arquivo de modelo ML.NET (arquivo .ZIP) também terá o mesmo nome.
Caminho de saída
--output | -o
(string)
Local raiz/pasta para colocar a saída gerada. O padrão é o diretório atual.
Verbosidade
--verbosity | -v
(string)
Define o nível de detalhamento da saída padrão.
Os valores permitidos são:
q[uiet]
m[inimal]
(por defeito)diag[nostic]
(nível de informação de registo)
Por padrão, a ferramenta CLI deve mostrar algum feedback mínimo (minimal
) ao trabalhar, como mencionar que está funcionando e, se possível, quanto tempo resta ou qual % do tempo é concluído.
Help
-h |--help
Imprime a ajuda para o comando com uma descrição para cada parâmetro do comando.