Nous sommes heureux d'annoncer la sortie de ML.NET 0.7, la dernière version d'un système d'apprentissage machine multiplateforme et open source pour les développeurs .NET (
ML.NET 0.1 a été publié le // Build 2018 ). Cette version vise à étendre les fonctionnalités de la plateforme. Plus de détails sous la coupe!

Prise en charge des recommandations du système avec la factorisation matricielle

Les systèmes de recommandation vous permettent de créer des recommandations personnalisées pour les produits du catalogue, les chansons, les films, etc. Nous avons amélioré la prise en charge de la création de systèmes de recommandation dans ML.NET en ajoutant la factorisation matricielle (MF). Il s'agit d'une approche populaire des recommandations lorsque vous pouvez obtenir des données sur la façon dont les utilisateurs évaluent certains éléments du catalogue. Par exemple, vous savez peut-être comment les utilisateurs évaluent certains films. Grâce à ces connaissances, vous pouvez recommander d'autres films qu'ils souhaitent probablement regarder.
Nous avons ajouté MF à ML.NET car il est souvent beaucoup plus rapide que les machines de factorisation Field-Aware (que nous avons ajoutées à ML.NET 0.3), et il peut prendre en charge des évaluations numériques (par exemple 1-5 étoiles). les valeurs binaires («aimé» ou «n'a pas aimé»). Malgré le fait que nous ayons ajouté MF, vous pouvez toujours utiliser FFM si vous souhaitez utiliser d'autres informations en dehors de la note que l'utilisateur attribue à l'élément (par exemple, genre de film, date de sortie du film, profil utilisateur). Une discussion plus détaillée des différences peut être trouvée
ici .
Un exemple d'utilisation de MF peut être trouvé
ici . Cet exemple est général, mais vous pouvez imaginer que les lignes de la matrice correspondent aux utilisateurs, les colonnes de la matrice correspondent aux films et les valeurs de la matrice correspondent aux notes. Cette matrice est plutôt rare car les utilisateurs n'ont noté qu'un petit sous-ensemble de l'annuaire.
MF ML.NET utilise
LIBMF .
Scénarios de détection d'anomalies - Détecter les événements inhabituels
La détection d'anomalies vous permet d'identifier des valeurs ou des événements inhabituels. Il est utilisé dans des scénarios tels que la détection de fraude (détection des transactions suspectes par carte de crédit) et la surveillance du serveur (détection d'activité inhabituelle).
ML.NET 0.7 détecte deux types de comportement anormal:
- Détection des pointes: les pointes sont attribuées à des rafales temporaires soudaines dans les valeurs d'entrée. Il peut s'agir de valeurs aberrantes en raison de dysfonctionnements, de cyberattaques, de contenu Web viral, etc.
- Détection des points de changement: les points de changement marquent le début d'écarts persistants dans le comportement des données.
Ces anomalies peuvent être détectées sur deux types de données à l'aide de différents composants ML.NET:
- IidSpikeDetector et IidChangePointDetector sont utilisés pour les données provenant d'une distribution stationnaire (chaque point de données ne dépend pas de la précédente).
- SsaSpikeDetector et SsaChangePointDetector sont utilisés pour les données qui ont des composants de saisonnalité / tendance (éventuellement classés par heure, comme les ventes de produits).
Un exemple de code utilisant la détection d'anomalies dans ML.NET peut être trouvé
ici .
Personnalisation améliorée des pipelines ML.NET

ML.NET propose de nombreuses transformations de données (par exemple, traitement de texte, d'images, de fonctions catégorielles, etc.). Cependant, des cas d'utilisation spécifiques nécessitent des conversions spécifiques. Nous avons maintenant ajouté la prise en charge des transformations personnalisées afin que vous puissiez facilement inclure des solutions personnalisées.
CustomMappingEstimator vous permet de créer vos propres méthodes de traitement des données et de les ajouter au pipeline ML.NET. Voici à quoi cela ressemblera dans le pipeline:
var estimator = mlContext.Transforms.CustomMapping<MyInput, MyOutput>(MyLambda.MyAction, "MyLambda") .Append(...) .Append(...)
Vous trouverez ci-dessous une définition de ce que ce mappage personnalisé fera. Dans cet exemple, nous allons convertir l'étiquette de texte ("spam" ou "ham") en étiquette logique (vrai ou faux).
public class MyInput { public string Label { get; set; } } public class MyOutput { public bool Label { get; set; } } public class MyLambda { [Export("MyLambda")] public ITransformer MyTransformer => ML.Transforms.CustomMappingTransformer<MyInput, MyOutput>(MyAction, "MyLambda"); [Import] public MLContext ML { get; set; } public static void MyAction(MyInput input, MyOutput output) { output.Label= input.Label == "spam" ? true : false; } }
Un exemple plus complet de CustomMappingEstimator peut être trouvé
ici .
Prise en charge de X86 en plus de x64

Dans cette version de ML.NET, vous pouvez désormais utiliser des modèles d'apprentissage automatique sur des appareils x86 / 32 bits (Windows uniquement). Auparavant, ML.NET était limité aux périphériques x64 (Windows, Linux et Mac). Veuillez noter que certains composants basés sur des connexions externes (par exemple, TensorFlow) ne sont pas disponibles sur x86-Windows.
NimbusML - Liaison expérimentale Python pour ML.NET

NimbusML fournit des liaisons expérimentales Python pour ML.NET. Nous avons reçu des commentaires de la communauté externe et des équipes de développement internes concernant l'utilisation de plusieurs langages de programmation. Nous voulions que le plus de personnes possible utilisent ML.NET.
ML.NET permet non seulement aux scientifiques des données d'utiliser des modèles d'apprentissage automatique en Python (avec des composants qui peuvent également être utilisés dans les pipelines
scikit-learn ), mais vous permet également d'enregistrer des modèles qui peuvent être facilement utilisés dans des applications .NET via ML.NET (plus voir
ici ).
Si vous l'avez manqué: retour sur la nouvelle API
ML.NET 0.6 introduit un nouvel ensemble d'API pour ML.NET qui offre une flexibilité accrue. Ces API dans la version 0.7 et les versions futures évoluent toujours, et nous aimerions recevoir vos commentaires afin d'améliorer le système.
Vous voulez y assister? Laissez un avis sur
ML.NET GitHub !
Ressources supplémentaires
- Voici les concepts ML.NET les plus importants pour comprendre la nouvelle API.
- Vous pouvez trouver ici un guide qui montre comment utiliser ces API pour divers scénarios existants et nouveaux.
- Un lien vers l'API ML.NET avec toute la documentation de l'API est fourni ici .
Lancez-vous!

Si vous ne l'avez pas déjà fait, téléchargez
ML.NET ici . Explorez également d'autres ressources utiles:
Publicité de minute
Les gars de AI-Community organisent maintenant un
championnat en ligne de Data Science avec un prize pool de 600 000 roubles. Rejoignez-nous, l'affaire pourrait vous intéresser.