Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Os comandos classification, regression e recommendation são os principais comandos fornecidos pela ferramenta ML.NET CLI. Esses comandos permitem que você gere modelos de ML.NET de boa qualidade para modelos de classificação, regressão e recomendação usando AutoML (machine learning automatizado), 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.
Observação
Este artigo refere-se a ML.NET CLI e ML.NET AutoML, que estão atualmente em versão prévia, e o material está sujeito a alterações.
Visão geral
Exemplo de uso:
mlnet regression --dataset "cars.csv" --label-col price
Os mlnet comandos da tarefa ML (classification, regression, recommendatione 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 primeiros dois ativos podem ser usados diretamente em seus aplicativos de usuário final (aplicativo web ASP.NET Core, serviços, aplicativo de área de trabalho e muito mais) para fazer previsões com o modelo.
O terceiro ativo, o código de treinamento, mostra o que ML.NET código de API foi usado pela CLI para treinar o modelo gerado, para que você possa investigar o algoritmo e as configurações específicos do modelo.
Exemplos
O comando mais simples da CLI para um problema de classificação (AutoML infere a maior parte da configuração dos dados fornecidos):
mlnet classification --dataset "customer-feedback.tsv" --label-col Sentiment
Outro comando simples da CLI 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 treinamento, um conjunto de dados de teste e argumentos explícitos de personalização adicional:
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 da tarefa ML (classification, regression, recommendation, forecasting, e train) treinam vários modelos com base no conjunto de dados fornecido e nas opções de CLI do ML.NET. 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 execução mlnet classification treinará um modelo de classificação. Escolha este comando se quiser que um Modelo de ML categorize 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 de 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 do 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 da CLI emita uma lista de entradas válidas e uma mensagem de erro.
Opções de previsão
Executar mlnet forecasting treinará um modelo de previsão de série temporal. Escolha este comando se quiser que um Modelo de ML preveje 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 treinamento
A execução mlnet train treinará um modelo com base em um arquivo "mbconfig" gerado do Construtor de Modelos. Para que esse 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 (cadeia)
Esse argumento fornece o caminho do arquivo para uma das seguintes opções:
R: O arquivo de conjunto de dados inteiro: Se estiver usando essa opção e o usuário não estiver fornecendo
--test-datasete--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 precisará apenas fornecer o filepath 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-datasete opcionalmente--validation-dataset), o--datasetargumento 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" teria 20% dos dados.
Conjunto de dados de teste
--test-dataset | -t (cadeia)
Caminho do arquivo apontando para o arquivo de 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 estiver usando --test-dataset, --dataset também será necessário.
O --test-dataset argumento é opcional, a menos que o conjunto de dados --validation-seja usado. Nesse caso, o usuário deve usar os três argumentos.
Conjunto de dados de validação
--validation-dataset | -v (cadeia)
Caminho do arquivo apontando para o arquivo de 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 deverá ser:
O
test-datasetargumento e o argumento--datasettambém são necessários.O
validation-datasetconjunto de dados é usado para estimar o erro de previsão para a seleção do modelo.O
test-dataseté usado para avaliação do erro de generalização do modelo escolhido final. Idealmente, o conjunto de teste deve ser mantido em um "cofre" e ser acessado apenas no final da análise de dados.
Basicamente, ao usar um validation dataset mais o test dataset, a fase de validação é dividida em duas partes:
- Na primeira parte, basta examinar seus modelos e selecionar a abordagem de melhor desempenho usando os dados de validação (=validação)
- Em seguida, você estima a precisão da abordagem selecionada (=teste).
Portanto, a separação de dados pode ser 80/10/10 ou 75/15/10. Por exemplo:
-
training-dataseto arquivo deve conter 75% dos dados. -
validation-dataseto arquivo deve ter 15% dos dados. -
test-dataseto arquivo deve conter 10% dos dados.
De qualquer forma, esses percentuais serão decididos pelo usuário que usará a CLI que fornecerá os arquivos já divididos.
Coluna de etiqueta
--label-col (int ou cadeia de caracteres)
Com esse argumento, uma coluna de objetivo/destino específica (a variável que você deseja prever) pode ser especificada usando o conjunto de nomes da coluna no cabeçalho do conjunto de dados ou o índice numérico da coluna no arquivo do conjunto de dados (os valores de índice de coluna começam em 0).
Esse argumento é usado para problemas de classificação e regressão .
Coluna de item
--item-col (int ou cadeia de caracteres)
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 conjunto de nomes da coluna no cabeçalho do conjunto de dados ou o índice numérico da coluna no arquivo do conjunto de dados (os valores do índice de coluna começam em 0).
Esse argumento é usado apenas para a tarefa de recomendação .
Coluna de classificação
--rating-col (int ou cadeia de caracteres)
A coluna de classificação tem a lista de classificações que são fornecidas aos itens pelos usuários. Essa coluna pode ser especificada usando o conjunto de nomes da coluna no cabeçalho do conjunto de dados ou o índice numérico da coluna no arquivo do conjunto de dados (os valores do índice de coluna começam em 0).
Esse argumento é usado apenas para a tarefa de recomendação .
Coluna do usuário
--user-col (int ou cadeia de caracteres)
A coluna do usuário tem a lista de usuários que dão classificações a itens. Essa coluna pode ser especificada usando o conjunto de nomes da coluna no cabeçalho do conjunto de dados ou o índice numérico da coluna no arquivo do conjunto de dados (os valores do índice de coluna começam em 0).
Esse argumento é usado apenas para a tarefa de recomendação .
Ignorar colunas
--ignore-columns (cadeia)
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 de colunas que você 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 coluna que contêm espaço em branco (por exemplo, "conectado").
Exemplo:
--ignore-columns email, address, id, logged_in
Tem cabeçalho
--has-header (bool)
Especifique se os arquivos do conjunto de dados têm uma linha de cabeçalho. Os valores possíveis são:
truefalse
A CLI do ML.NET tentará detectar essa propriedade se esse argumento não for especificado pelo usuário.
Tempo de treinamento
--train-time (cadeia)
Por padrão, o tempo máximo de exploração ou trem é de 30 minutos.
Esse argumento define o tempo máximo (em segundos) para o processo explorar vários treinadores e configurações. O limite de tempo configurado poderá ser excedido se 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.
armazenamento em cache
--cache (cadeia)
Se você usar o cache, todo o conjunto de dados de treinamento será carregado na memória.
Para conjuntos de dados pequenos e médios, o uso de 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, pois você pode ficar sem memória. Ao treinar com arquivos de conjunto de dados grandes e não usar o cache, ML.NET transmitirá partes de dados da unidade quando precisar carregar mais dados durante o treinamento.
Você 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 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 o cache se você usar a opção auto .
Se você não especificar o --cache parâmetro, a configuração de cache auto será usada por padrão.
Nome
--name (cadeia)
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 (.ZIP arquivo) também terá o mesmo nome.
Caminho de saída
--output | -o (cadeia)
Localização/pasta raiz para guardar a saída gerada. O padrão é o diretório atual.
Verbosidade
--verbosity | -v (cadeia)
Ajusta o nível de verbosidade da saída padrão.
Valores permitidos são:
q[uiet]-
m[inimal](por padrão) -
diag[nostic](Nível de informações de registro em log)
Por padrão, a ferramenta da CLI deve mostrar alguns comentários mínimos (minimal) ao trabalhar, como mencionar que ela está funcionando e, se possível, quanto tempo resta ou qual % do tempo é concluída.
Ajuda
-h |--help
Imprime ajuda para o comando com uma descrição para o parâmetro de cada comando.