ML.NET 0.7 (Maschinelles Lernen .NET)

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.

Source: https://habr.com/ru/post/de429402/


All Articles