Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Les classificationcommandes et les commandes regressionrecommendation sont les commandes principales fournies par l’outil CLI ML.NET. Ces commandes vous permettent de générer de bons modèles ML.NET de classification, de régression et de recommandation à l’aide de l’apprentissage automatique automatisé (AutoML), ainsi que de fournir l’exemple de code C# pour exécuter et évaluer ce modèle. En outre, le code C# permettant d’entraîner le modèle est généré pour vous permettre de rechercher l’algorithme et les paramètres du modèle.
Remarque
Cet article fait référence à ML.NET CLI et ML.NET AutoML, qui sont actuellement en préversion, et le matériel est susceptible de changer.
Aperçu
Exemple d’utilisation :
mlnet regression --dataset "cars.csv" --label-col price
Les mlnet commandes de tâche ML (classification, , regressionrecommendationet forecasting) génèrent les ressources suivantes :
- Un modèle sérialisé .zip (« meilleur modèle ») prêt à être utilisé.
- Code C# pour exécuter/noter le modèle généré.
- Code C# avec le code d’apprentissage utilisé pour générer ce modèle.
Les deux premières ressources peuvent être utilisées directement dans vos applications de l’utilisateur final (ASP.NET Application web Core, services, application de bureau et bien plus encore) pour effectuer des prédictions avec le modèle.
La troisième ressource, le code d’apprentissage, vous montre ce que ML.NET code d’API a été utilisé par l’interface CLI pour entraîner le modèle généré, afin de pouvoir examiner l’algorithme et les paramètres spécifiques du modèle.
Exemples
La commande CLI la plus simple pour un problème de classification (AutoML déduit la plupart de la configuration à partir des données fournies) :
mlnet classification --dataset "customer-feedback.tsv" --label-col Sentiment
Une autre commande CLI simple pour un problème de régression :
mlnet regression --dataset "cars.csv" --label-col Price
Créez et entraînez un modèle de classification avec un jeu de données d’apprentissage, un jeu de données de test et des arguments explicites de personnalisation supplémentaires :
mlnet classification --dataset "/MyDataSets/Population-Training.csv" --test-dataset "/MyDataSets/Population-Test.csv" --label-col "InsuranceRisk" --cache on --train-time 600
Options de commande
Les mlnet commandes de tâche ML (classification, regression, recommendation, forecasting, et train) entraînent plusieurs modèles en fonction du jeu de données fourni et des options CLI de ML.NET. Ces commandes sélectionnent également le meilleur modèle, enregistrent le modèle en tant que fichier de .zip sérialisé et génèrent du code C# associé pour le scoring et l’entraînement.
Options de classification
L’exécution mlnet classification entraîne un modèle de classification. Choisissez cette commande si vous souhaitez qu’un modèle ML catégorise les données en 2 classes ou plus (par exemple, analyse des sentiments).
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
Options de régression
L’exécution mlnet regression entraîne un modèle de régression. Choisissez cette commande si vous souhaitez qu’un modèle ML prédit une valeur numérique (par exemple, prédiction de prix).
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
Options de recommandation
L’exécution mlnet recommendation entraîne un modèle de recommandation. Choisissez cette commande si vous souhaitez qu’un modèle ML recommande des éléments aux utilisateurs en fonction des évaluations (par exemple, recommandation de produit).
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
Les options d’entrée non valides obligent l’outil CLI à afficher une liste d’entrées valides et un message d’erreur.
Options de prévision
L’exécution mlnet forecasting entraînera un modèle de prévision de série chronologique. Choisissez cette commande si vous souhaitez qu’un modèle ML prévoit une valeur en fonction des données historiques (par exemple, prévision des ventes).
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>
Options de train
L’exécution mlnet train entraîne un modèle basé sur un fichier « mbconfig » généré à partir du Générateur de modèles. Pour que cette commande fonctionne, les données d’apprentissage doivent se trouver dans le même répertoire que le fichier « mbconfig ».
-training-config <training-config> (REQUIRED)
--log-file-path <log-file-path>
-v, --verbosity <verbosity>
Jeu de données
--dataset | -d (chaîne)
Cet argument fournit le chemin de fichier à l’une des options suivantes :
R : Fichier de jeu de données entier : Si vous utilisez cette option et que l’utilisateur ne fournit pas
--test-datasetet--validation-dataset, alors la validation croisée (k-fold, etc.) ou les approches de fractionnement de données automatisées seront utilisées en interne pour valider le modèle. Dans ce cas, l’utilisateur doit simplement fournir le chemin de fichier du jeu de données.B : Fichier de jeu de données d’entraînement : Si l’utilisateur fournit également des jeux de données pour la validation du modèle (à l’aide
--test-datasetet éventuellement--validation-dataset), l’argument--datasetsignifie uniquement avoir le « jeu de données d’entraînement ». Par exemple, lorsque vous utilisez une approche de 80% - 20% pour valider la qualité du modèle et obtenir des métriques de précision, le « jeu de données d’entraînement » aura 80% des données et le « jeu de données de test » aurait 20% des données.
Jeu de données de test
--test-dataset | -t (chaîne)
Chemin de fichier pointant vers le fichier de jeu de données de test, par exemple en utilisant une approche 80% - 20% lors de validations régulières pour obtenir des mesures de précision.
Si vous utilisez --test-dataset, alors --dataset est également nécessaire.
L’argument --test-dataset est facultatif, sauf si le jeu de données --validation-est utilisé. Dans ce cas, l’utilisateur doit utiliser les trois arguments.
Jeu de données de validation
--validation-dataset | -v (chaîne)
Chemin d’accès du fichier pointant vers le fichier de jeu de données de validation. Le jeu de données de validation est facultatif, dans tous les cas.
Si vous utilisez un validation dataset, le comportement doit être :
Les arguments
test-datasetet--datasetsont également requis.Le
validation-datasetjeu de données est utilisé pour estimer l’erreur de prédiction pour la sélection du modèle.Il
test-datasetest utilisé pour l’évaluation de l’erreur de généralisation du modèle final choisi. Dans l’idéal, le jeu de tests doit être conservé dans un « coffre » et être sorti uniquement à la fin de l’analyse des données.
En fait, lors de l’utilisation d’un validation dataset plus, test datasetla phase de validation est divisée en deux parties :
- Dans la première partie, vous examinez simplement vos modèles et sélectionnez l’approche la plus performante à l’aide des données de validation (=validation)
- Ensuite, vous estimez la précision de l’approche sélectionnée (=test).
Par conséquent, la séparation des données peut être 80/10/10 ou 75/15/10. Par exemple:
-
training-datasetle fichier devrait contenir 75% de données. -
validation-datasetle fichier doit contenir 15% de données. -
test-datasetLe fichier doit contenir 10% de données.
Dans tous les cas, ces pourcentages seront décidés par l’utilisateur à l’aide de l’interface CLI qui fournira les fichiers déjà fractionnés.
Colonne d’étiquette
--label-col (int ou string)
Avec cet argument, une colonne objective/cible spécifique (la variable que vous souhaitez prédire) peut être spécifiée à l’aide du nom de la colonne définie dans l’en-tête du jeu de données ou de l’index numérique de la colonne dans le fichier du jeu de données (les valeurs d’index de colonne commencent à 0).
Cet argument est utilisé pour les problèmes de classification et de régression .
Colonne d'éléments
--item-col (int ou string)
La colonne d’élément contient la liste des éléments que les utilisateurs évaluent (les éléments sont recommandés aux utilisateurs). Cette colonne peut être spécifiée à l’aide du nom de la colonne définie dans l’en-tête du jeu de données ou de l’index numérique de la colonne dans le fichier du jeu de données (les valeurs d’index de colonne commencent à 0).
Cet argument est utilisé uniquement pour la tâche de recommandation .
Colonne d’évaluation
--rating-col (int ou string)
La colonne d’évaluation contient la liste des évaluations qui sont fournies aux éléments par les utilisateurs. Cette colonne peut être spécifiée à l’aide du nom de la colonne définie dans l’en-tête du jeu de données ou de l’index numérique de la colonne dans le fichier du jeu de données (les valeurs d’index de colonne commencent à 0).
Cet argument est utilisé uniquement pour la tâche de recommandation .
Colonne utilisateur
--user-col (int ou string)
La colonne utilisateur contient la liste des utilisateurs qui donnent des évaluations aux éléments. Cette colonne peut être spécifiée à l’aide du nom de la colonne définie dans l’en-tête du jeu de données ou de l’index numérique de la colonne dans le fichier du jeu de données (les valeurs d’index de colonne commencent à 0).
Cet argument est utilisé uniquement pour la tâche de recommandation .
Ignorer les colonnes
--ignore-columns (chaîne)
Avec cet argument, vous pouvez ignorer les colonnes existantes dans le fichier de jeu de données afin qu’elles ne soient pas chargées et utilisées par les processus d’entraînement.
Spécifiez les noms de colonnes que vous souhaitez ignorer. Utilisez « , » (virgule avec espace) ou « (espace) pour séparer plusieurs noms de colonnes. Vous pouvez utiliser des guillemets pour les noms de colonnes contenant des espaces blancs (par exemple, « connecté »).
Exemple:
--ignore-columns email, address, id, logged_in
Possède un en-tête
--has-header (bool)
Spécifiez si le ou les fichiers de jeu de données ont une ligne d’en-tête. Les valeurs possibles sont les suivantes :
truefalse
L’interface CLI ML.NET tente de détecter cette propriété si cet argument n’est pas spécifié par l’utilisateur.
Horaire de train
--train-time (chaîne)
Par défaut, la durée maximale d’exploration ou d’apprentissage est de 30 minutes.
Cet argument définit la durée maximale (en secondes) du processus pour explorer plusieurs formateurs et configurations. La limite de temps configurée peut être dépassée si elle est trop courte (par exemple, 2 secondes) pour une seule itération. Dans ce cas, l’heure réelle est le temps nécessaire pour produire une configuration de modèle dans une seule itération.
Le temps nécessaire pour les itérations peut varier en fonction de la taille du jeu de données.
Cache
--cache (chaîne)
Si vous utilisez la mise en cache, l’ensemble du jeu de données d’entraînement est chargé en mémoire.
Pour les jeux de données de petite et moyenne taille, l’utilisation du cache peut considérablement améliorer les performances d’entraînement, ce qui signifie que le temps d’entraînement peut être plus court que lorsque vous n’utilisez pas le cache.
Toutefois, pour les jeux de données volumineux, le chargement de toutes les données en mémoire peut avoir un impact négatif, car vous risquez de sortir de la mémoire. Lors de l’entraînement avec des fichiers de jeux de données volumineux et sans utiliser le cache, ML.NET diffusera en continu des blocs de données depuis le disque lorsqu’il doit charger davantage de données lors des procédures d'entraînement.
Vous pouvez spécifier les valeurs suivantes :
on: force à utiliser le cache pendant l’entraînement.
off: force le cache à ne pas être utilisé lors de l’entraînement.
auto: en fonction des heuristiques AutoML, le cache sera utilisé ou non. En règle générale, les jeux de données petits/moyens utilisent le cache et les jeux de données volumineux n’utilisent pas le cache si vous utilisez le auto choix.
Si vous ne spécifiez pas le --cache paramètre, la configuration du cache auto sera utilisée par défaut.
Nom
--name (chaîne)
Nom du projet ou de la solution de sortie créé. Si aucun nom n’est spécifié, le nom sample-{mltask} est utilisé.
Le fichier de modèle ML.NET (fichier .ZIP) obtient également le même nom.
Chemin de sortie
--output | -o (chaîne)
Emplacement/dossier racine pour placer la sortie générée. L'emplacement par défaut est le répertoire actif.
Verbosité
--verbosity | -v (chaîne)
Définit le niveau de verbosité de la sortie standard.
Les valeurs autorisées sont les suivantes :
q[uiet]-
m[inimal](par défaut) -
diag[nostic](niveau d'informations de log)
Par défaut, l’outil CLI doit afficher un retour minimal (minimal) lorsque vous travaillez, par exemple en mentionnant qu’il fonctionne et, si possible, combien de temps est laissé ou quelle % de l’heure est terminée.
Aide
-h |--help
Imprime l’aide de la commande avec une description pour les paramètres de chaque commande.