Wir freuen uns, die Veröffentlichung von ML.NET 0.7 bekannt zu geben, der neuesten Version eines plattformübergreifenden und Open-Source-Systems für maschinelles Lernen für .NET-Entwickler (
ML.NET 0.1 wurde am // Build 2018 veröffentlicht ). Diese Version zielt darauf ab, die Funktionalität der Plattform zu erweitern. Weitere Details unter dem Schnitt!

Unterstützen Sie Systemempfehlungen mit Matrix Factorization

Mit Empfehlungssystemen können Sie personalisierte Empfehlungen für Katalogprodukte, Songs, Filme usw. erstellen. Wir haben die Unterstützung für die Erstellung von Empfehlungssystemen in ML.NET durch Hinzufügen der Matrixfaktorisierung (MF) verbessert. Dies ist ein beliebter Ansatz für Empfehlungen, wenn Sie Daten darüber erhalten, wie Benutzer bestimmte Artikel im Katalog bewerten. Beispielsweise wissen Sie möglicherweise, wie Benutzer bestimmte Filme bewerten. Dank dieses Wissens können Sie andere Filme empfehlen, die sie wahrscheinlich auch sehen möchten.
Wir haben ML zu ML.NET hinzugefügt, da es häufig erheblich schneller ist als feldbewusste Faktorisierungsmaschinen (die wir zu ML.NET 0.3 hinzugefügt haben) und stattdessen numerische Bewertungen (z. B. 1-5 Sterne) unterstützen kann Binärwerte ("Gefallen" oder "Gefallen nicht"). Trotz der Tatsache, dass wir MF hinzugefügt haben, können Sie FFM weiterhin verwenden, wenn Sie andere Informationen außerhalb der Bewertung verwenden möchten, die der Benutzer dem Element zuweist (z. B. Filmgenre, Veröffentlichungsdatum des Films, Benutzerprofil). Eine detailliertere Diskussion der Unterschiede finden Sie
hier .
Ein Beispiel für die Verwendung von MF finden Sie
hier . Dieses Beispiel ist allgemein gehalten, aber Sie können sich vorstellen, dass Matrixzeilen Benutzern entsprechen, Matrixspalten Filmen entsprechen und Matrixwerte Bewertungen entsprechen. Diese Matrix ist eher selten, da Benutzer nur eine kleine Teilmenge des Verzeichnisses bewerteten.
MF ML.NET verwendet
LIBMF .
Anomalieerkennungsszenarien - Erkennen Sie ungewöhnliche Ereignisse
Mit der Erkennung von Anomalien können Sie ungewöhnliche Werte oder Ereignisse identifizieren. Es wird in Szenarien wie Betrugserkennung (Erkennung verdächtiger Kreditkartentransaktionen) und Serverüberwachung (Erkennung ungewöhnlicher Aktivitäten) verwendet.
ML.NET 0.7 erkennt zwei Arten von abnormalem Verhalten:
- Spike-Erkennung: Spikes werden auf plötzliche vorübergehende Bursts in den Eingabewerten zurückgeführt. Dies können Ausreißer aufgrund von Fehlfunktionen, Cyberangriffen, viralen Webinhalten usw. sein.
- Änderungspunkterkennung: Änderungspunkte markieren den Beginn konstanter Abweichungen im Datenverhalten.
Diese Anomalien können bei zwei Datentypen mit unterschiedlichen ML.NET-Komponenten erkannt werden:
- IidSpikeDetector und IidChangePointDetector werden für Daten verwendet, die aus einer stationären Verteilung stammen (jeder Datenpunkt hängt nicht vom vorherigen ab).
- SsaSpikeDetector und SsaChangePointDetector werden für Daten verwendet, die Saisonalitäts- / Trendkomponenten enthalten (möglicherweise nach Zeit geordnet, z. B. Produktverkäufe).
Beispielcode mit Anomalieerkennung in ML.NET finden Sie
hier .
Verbesserte Anpassung von ML.NET-Pipelines

ML.NET bietet viele Datentransformationen (z. B. Verarbeitung von Text, Bildern, kategorialen Funktionen usw.). Bestimmte Anwendungsfälle erfordern jedoch bestimmte Konvertierungen. Jetzt haben wir Unterstützung für benutzerdefinierte Transformationen hinzugefügt, sodass Sie problemlos benutzerdefinierte Lösungen einbinden können.
Mit CustomMappingEstimator können Sie Ihre eigenen Datenverarbeitungsmethoden erstellen und zur ML.NET-Pipeline hinzufügen. So wird es in der Pipeline aussehen:
var estimator = mlContext.Transforms.CustomMapping<MyInput, MyOutput>(MyLambda.MyAction, "MyLambda") .Append(...) .Append(...)
Nachfolgend finden Sie eine Definition der Funktionen dieser benutzerdefinierten Zuordnung. In diesem Beispiel konvertieren wir die Textbezeichnung ("Spam" oder "Ham") in die logische Bezeichnung (wahr oder falsch).
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; } }
Ein vollständigeres Beispiel für CustomMappingEstimator finden Sie
hier .
X86-Unterstützung zusätzlich zu x64

In dieser Version von ML.NET können Sie jetzt Modelle für maschinelles Lernen auf x86 / 32-Bit-Geräten (nur Windows) verwenden. Bisher war ML.NET auf x64-Geräte (Windows, Linux und Mac) beschränkt. Bitte beachten Sie, dass einige Komponenten, die auf externen Verbindungen basieren (z. B. TensorFlow), unter x86-Windows nicht verfügbar sind.
NimbusML - Python Experimental Binding für ML.NET

NimbusML bietet experimentelle Python-Bindungen für ML.NET. Wir haben Feedback von der externen Community und den internen Entwicklungsteams zur Verwendung mehrerer Programmiersprachen erhalten. Wir wollten, dass möglichst viele Menschen ML.NET nutzen.
Mit ML.NET können Datenwissenschaftler nicht nur Modelle für maschinelles Lernen in Python verwenden (mit Komponenten, die auch in
Scikit-Learn- Pipelines verwendet werden können), sondern auch Modelle speichern, die über ML.NET problemlos in .NET-Anwendungen verwendet werden können (mehr) siehe
hier ).
Wenn Sie es verpasst haben: Feedback zur neuen API
ML.NET 0.6 führt einen neuen Satz von APIs für ML.NET ein, die eine erhöhte Flexibilität bieten. Diese APIs in Version 0.7 und zukünftigen Versionen befinden sich noch in der Entwicklung. Wir möchten Ihr Feedback erhalten, um das System noch besser zu machen.
Willst du teilnehmen?
Hinterlasse eine Bewertung auf
ML.NET GitHub !
Zusätzliche Ressourcen
- Hier sind die wichtigsten ML.NET-Konzepte zum Verständnis der neuen API.
- Hier finden Sie eine Anleitung, die zeigt, wie diese APIs für verschiedene vorhandene und neue Szenarien verwendet werden.
- Hier finden Sie einen Link zur ML.NET-API mit der gesamten API-Dokumentation.
Los geht's!

Wenn Sie dies noch nicht getan haben, laden Sie
ML.NET hier herunter. Entdecken Sie auch andere nützliche Ressourcen:
Minutenwerbung
Die Jungs von AI-Community veranstalten jetzt eine
Online-Meisterschaft in Data Science mit einem Preispool von 600.000 Rubel. Machen Sie mit, der Fall könnte Sie interessieren.