• Skip to primary navigation
  • Skip to main content
Fellow Consulting AG

Fellow Consulting AG

where people work together

  • Produkte & Services
    • Digitale Transformation
      • Intelligent Open Network
    • Infor OS
    • Strategischer Einsatz von Open Source im Unternehmen
    • Ephesoft Transact – IDM-Capture
      • FellowKV²-Plugin
      • TableExtraction²-Plugin
    • Marketing & CRM
      • Oktopost – Social Marketing
      • Sugar Market
      • SugarCRM
  • Customer Success Stories
    • MVTec – SugarCRM für einen globalen Hersteller
    • Bet3000 – SugarCRM für Glücksspiele
    • Coloplast – Mobiles CRM für Life Science
    • Diversey – Mobiles CRM und Wartung für Reinigung und Hygiene
    • Diversey – Online Shop
    • Jochen Schweizer – SugarCRM für die Freizeit
    • Acnos Pharma rationalisiert Arbeitsabläufe
    • Deutsche Presse-Agentur (dpa)
  • Fellow
    • Über uns
    • Karriere: Wir stellen ein!
    • Kontakt
    • Optin
    • Partner
  • Deutsch
  • Show Search
Hide Search

Klassifizierungs-Metriken mit HoloViz

Daniel Jordan · 14. Februar 2020 ·

Teilen

https://github.com/dajor/HoloViz-Example

Das Panel bietet eine Vielzahl nützlicher Standard-Widgets, um interaktive Effekte in einem Jupyter-Notebook oder als eigenständige Anwendung zu erstellen. Es gibt mehrere Möglichkeiten, um Interaktivität im Panel zu erreichen, aber die Callback/Watcher-Methode bietet die größte Flexibilität:


Ein erster Schritt...

Hinweis: Wenn Sie Ihren eigenen Callback/Watcher schreiben und sich nichts ändert, könnte es einen Fehler in Ihrer Callback-Funktion geben. Zumindest in einem Notebook werden alle Ausnahmen, die ausgelöst werden, standardmäßig nicht gedruckt, was die Fehlersuche erheblich erschwert.

Das Ziel der Visualisierung

Mit Daten, die eine grundlegende “Wahrheit” der binären Klassifikation darstellen, und vorhergesagten Werten (Fließkommazahlen von 0 bis 1,0) werde ich ein Dashboard zusammenstellen, um das zu tun:

  • Harte Vorhersagen generieren
  • Eine Confusion Matrix anzeigen
  • Bewerten Sie den Klassifikator anhand der AUC-Kurve und einer Precision-Recall-Kurve

Die „Daten”

Im Grunde habe ich einen künstlichen Satz binärer Kategorien (85% / 15%) erstellt, Zufallsdaten auf jeden Behälter geworfen und dann die Werte zwischen [0,1] festgelegt. Dies sollte dem Ergebnis eines binären Klassifikators aus Scikit-Learning sehr ähnlich sehen.

Harte Vorhersagen generieren

Schieberegler, dessen Werte die Cut-off-Werte darstellen (über diesem Wert, angenommene Kategorie 1, darunter, angenommen 0).
Standardmäßig initialisiere ich den Cutoff-Wert, um den F1-Score zu maximieren. Wenn wir theoretisch perfekte Präzision und Erinnerung haben könnten, sollte diese Größe 1 sein.
Wenn sich der Schieberegler durch die verschiedenen Cutoff-Werte bewegt, sollte der Rest der Visualisierung Änderungen in den verschiedenen anderen Metriken vermitteln. Eine der besten Möglichkeiten, diese Beziehung zu erfassen, ist eine Confusion Matrix, oder eine 2×2-Tabelle, die die Ergebnisse der Vorhersage gegen die tatsächlichen Werte anzeigt.

https://github.com/dajor/HoloViz-Example/blob/master/Panel_Interactive.ipynb

Die Confusion Matrix

Um dieses visuelle Element zu erreichen, werde ich die hv.HeatMap-Grafik verwenden, zusammen mit einigen Tricks, um das Verhalten zu beeinflussen. Es erwies sich als ziemlich schwierig, angepasste Achsen und Markierungen zu erhalten, daher werde ich stattdessen auch hv.Labels verwenden, um explizit zu verdeutlichen, was die Confusion Matrix anzeigt:

Confusion Matrix

Der knifflige Teil war hier die Deaktivierung der Achsen und die korrekte Positionierung der Dinge. Die Heatmap ist in Wirklichkeit ein 2×2, mit Bereichen (0,1) sowohl auf x als auch auf y. Um also etwas im oberen linken Quadranten zu platzieren, müssen Sie sich mit einem Tupel entsprechend (x,y) darauf beziehen: (0,1,VAL), wobei VAL der tatsächliche Wert der Heatmap oder des entsprechenden Labels ist. Ich habe zwei Listen erstellt und eine Karte verwendet, um die Dinge in der richtigen Reihenfolge zu sortieren.

AUC- und Precision-Recall-Kurven

Der Code für die Erzeugung dieser Kurven ist ziemlich einfach, da ich mich weiterhin auf HoloViews stützen werde:

# Für die AUC brauchen wir nur unsere FP gegen TP zu zeichnen.
 hv.Kurve(Daten[:,[3,1]]). \
    opts(xrotation=45,
         xlabel='False Positive',
         ylabel='True Positive')
AUC Curve
# for the PR curve, we need only plot recall vs precision
hv.Curve(data[:,[6,5]]). \
   opts(xlim=(0,1),
        ylim=(0,1))
Precision

Ein Layout und alles zusammensetzen

interactive dashboard
interactive dashboard

Teilen

Python

Weitere Blogs

In diesem Blogbeitrag stellen wir Ihnen einige der besten Tipps vor, wie Sie den Prozess einfacher und effizienter gestalten können.

In diesem Blogbeitrag erörtern wir die Vorteile der Verwendung einer Low-Code-Plattform mit CRM, um Ihr Unternehmen zu vergrößern.

Digitalisierung forciert Low-Code-Entwicklung

Die Digitalisierung und auch der Fachkräftemangel haben die Nachfrage nach No-Code-
und Low-Code-Entwicklungsmodellen massiv befeuert. Beide Ansätze zielen auf kürzere Entwicklungszyklen ab. Was Low-Code-Plattformen konkret bieten sollten, zeigt IT-Dienstleister Fellow Consulting AG auf.

Ohne Low-Code keine Prozessdigitalisierung

Ziel der Prozessdigitalisierung ist es, Prozesse effizienter und transparenter zu gestalten. Dies kann geschehen, indem sie automatisiert oder benutzerfreundlicher gestaltet werden. Viele Unternehmen stellen jedoch fest, dass sie mit ihren Projekten zur Prozessdigitalisierung nicht die gewünschten Ergebnisse erzielen. Das liegt oft daran, dass sie versuchen, mit zu wenig Hilfe zu viel zu erreichen. In diesem Blogbeitrag werden wir erörtern, warum Low-Code-Plattformen für erfolgreiche Prozessdigitalisierungsprojekte so wichtig sind.

Partnerschaft

Da sich die digitalen Technologien immer weiter entwickeln und alle Aspekte unseres Lebens beeinflussen, stehen Unternehmen an einem Scheideweg: Sie müssen sich anpassen oder riskieren, veraltet zu werden.

  • Startseite
  • Kontakt
  • Datenschutz
  • AGB
  • Impressum