wird es morgen schön? MLNET kann dir helfen

Machine Learning bedeutet vieles. Oft geht es um die Vorhersage von Werten Anhand von Daten für die der Entwickler die Logik nicht codieren kann, weil er sie nicht kennt oder es einfach zu viel wäre.

Wenn man die Funktion betrachtet, kennen wir die Daten und das Ergebnis, aber nicht die Funktion.

y=f ( x )

Man nimmt dann Daten lässt sie durch einen Algorithmus, vergleicht es mit Ergebnissen und erhält so die Parameter für die Funktion. Ich werde das nicht in der unendlichen Theorie versinken lassen. So viel wie nötig und so wenig wie möglich.

Wir sprechen über KI Regression und Klassifikation.  Bei der Klassifikation ist es kategorial (qualitativ), die Werte heißen Klassenlabel, bei der Regression ist es numerisch (quantitativ). Bei allen Prognoseverfahren benötigt man Daten (Feature), bei denen auch die Werte der Zielgröße (Label) bekannt sind, diese Daten bezeichnet man als Dataset.

Startpunkt ist ein leeres Visual Studio Command Line Projekt. Per rechtsklick auf die Solution- hinzufügen –machine Learning Modell.

Die Aufgabe heute ist aus tabellarischen Daten vorhersagen zu treffen. Wird es morgen schön?

wetter1

Der Wiizard zeigt vier Optionen. Alle basieren auf AutoML. Eine Api im  Microsoft ML.NET Stack um es einfacher zu machen.

  • Laden von Daten
  • Definieren der Pipeline
  • Konfiguration
  • Experiment
  • Nutzen des Modells

Auto ML ist mehr Idee als Technologie und gibt es zb als Google Vision Auto ML. In Visual Studio wird mit der Funktion Model Builder ein User Interface oben darauf gesetzt, das wir nun nutzen wollen.

Nur in den seltensten Fällen haben sie nutzbare Daten fürs Training vorliegen. Diese müssen umfangreich vorbereitet werden. Für unsere Experimente braucht man unbedingt flache Tabellen Struktur. Je nach Ziel müssen mindestens 100 besser 1000 Datensätze vorliegen, dazu noch ca 30% zusätzlicher Daten für die Verifizierung während der Trainingsphase. Die Daten müssen vollständig und korrekt sein, Fehlende Werte müssen entweder ergänzt oder der Datensatz entfernt werden. Also wenn eine Wetterstation an einem Tag Null eingetragen hat. Unrelevante Features (=Spalten) aus den Dataset entfernen. Sonst steigt der Trainingsaufwand und das Modell wird riesig aber bestimmt nicht besser.

Wie immer war ich auf der Suche nach einem Problem. Der ppedv Kundenchat sammelt praktischerweise, die Anfragen in einer Textdatei. Als nächstes muss man die einzelnen Anfragen noch Kategorisieren. Wie Unterlagen, Rechnung, Durchführung usw. Der Test mit der Datenklassifizierung Option (erstes im Bild oben) brachte nicht ausreichende Ergebnisse.
Wir brauchen ein einfacheres Problem und bessere Trainingsdaten. Da gibt es im Web Filmbewertungen (imdb_labelled.txt) die gut oder schlecht sind,

wetter2

Nun stoßen wir schon auf das Problem das wir Machine Learning helfen müssen. Obige lineare Regression ist hier nicht passend, weil es Inhalte von Texten erfasst und klassifiziert werden. Das klappt mathematisch ganz anders und kann mit keinem Parameter der Welt geheilt werden.

wetter4

Damit kann man zb erkennen in welcher Sprache ein Text formuliert ist, ohne ein Wörterbuch zu benutzen.

Im nächsten Schritt kann man theoretisch wählen womit trainiert werden soll, CPU, GPU oder Azure. Nvidia hat sich einen Namen und jede Menge Kohle gemacht Grafikkarten für diesen Job zu optimieren. Worauf man achten muss ist die Cuda Unterstützung. Fängt bei ca 320€ an.

Je nachdem wie viele Spalten und ob die beschriftet sind fällt der folgende Dialog unterschiedlich aus.

wetter5

Wenn Sie die Daten vorbereiten müssen und das immer wieder, dann wählen sie erweiterte Datenoptionen. Sie könne dort für jede Spalte einzeln (hier sinds nur 2) bestimmen ob die eingebunden wird und wie (Feature für lineare Aufgaben).

In Reiter Datenformatierung, werden Trennzeichen (Tab, Komma) und Tausender Trennzeichen definiert.

Etwas häufiger benötige ich den dritten Reiter der sich um die Testdaten kümmert. Sollen die aus den Dataset gewonnen werden und wie? Wenn die sortiert sind, wäre es doof die ersten 20% zu nehmen. Oder haben sie ein extra Dataset zur Hand (Option 3)

wetter6

Dann wird trainiert. Das beste Modell TextclassificationMulti ausgewählt (gibt nur das in diesem Falle ) und bewertet. MicroAccuracy hat den höchsten Wert 1 und den miesesten 0. Beides wäre nicht gut. Bei 1 stimmt irgendwas nicht und wir mit Echt Daten Probleme in der Vorhersage haben. 0,64 ist passabel

wetter7

Falls wir irgendwo im Bereich unter 0,35 landen kann man versuchen die Bewertungsmethoden zu verändern, was tatsächlich in anderen Trainingsparametern mündet.

wetter8

Nun haben wir uns einen Belohnung verdient. Tippen Sie irgendwelche Sätze.

wetter9

Mit einer Wahrscheinlichkeit von 63% mag ich den Film. Fügt man don’t ein sind es 98% das ich ihn nicht mag. Das ist die Validierungsphase. Probieren sie ein wenig rum, bevor sie das Model auf die Menschheit loslassen.

Im letzten Schritt haben sie drei Optionen.

Kopieren sie das Model in ihr bestehendes Projekt und nutzen den angezeigten Code.

Erstellen sie einen Web Api Endpunkt um von anderen Apps dies per REST zu nutzen

Fügen sie ein weiteres Projekt zur ML Solution hinzu

Morgen wird schön.

Kommentare sind geschlossen