Der Grund für die Veröffentlichung war der Rstudio-Blogeintrag „Shiny 1.1.0: Shiny mit Async skalieren “, der sehr leicht passieren kann, aber der Aufgabe, R für Geschäftsaufgaben zu verwenden, einen sehr wichtigen Baustein hinzufügt. Eigentlich erschien in der Dev-Version von Shiny Asynchrony vor ungefähr einem Jahr, aber es war irgendwie frivol und „make-belie“ - es ist die Dev-Version. Die Übertragung an die Hauptniederlassung und die Veröffentlichung auf CRAN ist eine wichtige Bestätigung dafür, dass viele grundlegende Probleme durchdacht, gelöst und getestet wurden. Sie können sie sicher auf ein Produkt übertragen und verwenden.
Und was gibt es in R noch außer dem „Diamanten“, mit dem Sie es zu einem universellen Analysewerkzeug für praktische Aufgaben machen können?
Es ist eine Fortsetzung früherer Veröffentlichungen .
Warum glänzend
Wenn wir über die praktische Anwendung von R für verschiedene Datenverarbeitungen in den Geschäftsprozessen eines realen Unternehmens sprechen, werden die Hauptnutzer der Analyseergebnisse Manager auf verschiedenen Ebenen sein. Wir lassen die DS-Analyseebene hinter den Klammern, sie benötigen eine breite Palette von Tools, einschließlich des direkten Zugriffs auf die Datenbank. Sie selbst können und können alles. Eine grafische webbasierte Workstation ist eine praktische Hilfe, aber kein wesentliches Unterscheidungsmerkmal.
Im Gegensatz zu einem DS-Spezialisten benötigt ein gewöhnlicher Manager eine praktische Schnittstelle, die ihm alle Informationen (historisch, analytisch, prädiktiv usw.) liefert, die erforderlich sind, um eine Entscheidung zu treffen oder dem Management Bericht zu erstatten. Tatsächlich ist die Benutzeroberfläche das "A und O" eines jeden Unternehmenssystems. Niemand wird jemals unter die Haube schauen (naja, vielleicht nur in den langen und schmerzhaften Stadien von RFI-RFP). Niemand wird jemals verstehen, über die Grenzen seiner User-Story hinaus zu experimentieren, die in den Aufgaben des Jobs festgelegt sind. Niemand wird jemals über das Thema Protokolle, Algorithmen, Validierung und Genauigkeit nachdenken.
Mit Shiny können Sie eine sehr verzweigte Oberfläche zeichnen, die Text, Grafiken, Tabellen und fast alle strukturellen HTML-Elemente (Bootstrap-Framework) enthält. Mit JS können Sie der Weboberfläche komplexe Optimierungen hinzufügen. Mit CSS können Sie benutzerdefinierte Stile erstellen. Es ist auch sehr einfach, an R einige wichtige Dinge zu tun, die die Arbeit mit der Schnittstelle qualitativ verändern, nämlich die dynamische Erzeugung von Inhalten. Hier sprechen wir über:
- tabellarische und grafische Daten, die per Timer oder Benutzeranforderung geändert und bei Anzeige in gem. mit dynamischen Einschränkungen (z. B. Ausblenden von Sternchen eines Teils der pers. Daten);
- die Zusammensetzung der Elemente in der Benutzeroberfläche (abhängig von der Logik des Geschäftsprozesses können Sie während der Ausführung Schaltflächen, Lesezeichen usw. hinzufügen / entfernen);
- den Inhalt dieser Elemente (z. B. Füllen von Listen verfügbarer Werte basierend auf geladenen Daten);
- intelligente Verwaltung des Inhalts von Steuerelementen (z. B. bestimmt die Auswahl von Werten aus einer Liste den Inhalt anderer zur Auswahl stehender Elemente);
- Implementierungen des Rollenmodells auf Datenebene (je nach Rolle sind beispielsweise möglicherweise nur bestimmte Teilmengen eines Elements verfügbar)
Keine Schnittstelle - kein System. Und genau an diesem Punkt wird fast klar, warum R, nicht Python. Da R Shiny (Pakete + Laufzeit) hat, mit dem Sie R direkt auf Benutzeroberflächen für Datenverarbeitungssysteme mit nahezu jedem algorithmischen Komplexitätsgrad ausführen können, hat Python in naher Zukunft leider keine solche Ankündigung.
Asynchronität glänzend und warum es so wichtig ist
Die glänzende Anwendung selbst wird nacheinander ausgeführt. Für jeden URL-Link (glänzende App) im Open-Source-Server des glänzenden Servers steigt ein Backend-R-Prozess an, der den Berechnungen gemäß der Benutzeraktivität dient. Bis zur letzten Veröffentlichung war die Open-Source-Version von Shiny vollständig synchron. Dies bedeutete, dass jede langwierige Berechnung innerhalb des Codes die Antwort der Anwendung für alle Benutzer, die sie gleichzeitig verwendeten, „einfrierte“. In der Unternehmensversion von Shiny Server Pro wurde das Problem der Verwaltung von Benutzersitzungen natürlich behoben. Der Verbraucher hatte die Möglichkeit zu wählen, ob er während der Unternehmensanwendung in 5 Sekunden alles erhalten möchte, was er möchte, oder ob er es selbst ergänzen möchte.
Im Prinzip könnte ein solches Merkmal glänzender Anwendungen ausgeglichen werden durch:
- Posten von Anwendungen für verschiedene Benutzer unter verschiedenen URLs, einschließlich beispielsweise Benutzername (ein Code, Links werden auf einem glänzenden Server erstellt)
- komplexe Berechnungen im Voraus in einem anderen Hintergrundprozess durchführen
- die optimale Symbiose zwischen den Datenverarbeitungsfähigkeiten des Backends und der Nachbearbeitung in R.
Jetzt ist es jedoch viel bequemer geworden. Die Asynchronität durch die Versprechensmechanismen ermöglicht es einigen Zeilen, zusätzliche R-Threads zu generieren, in denen ressourcenintensive Berechnungen durchgeführt werden, ohne die Leistung des Streams und die Antwortzeit der glänzenden Hauptanwendung zu beeinträchtigen. Formal kann das Problem der parallelen Arbeit vieler Benutzer auch in der Open-Source-Version als gelöst betrachtet werden. Bei der Zeit, Kaffee zu trinken und auf das Ergebnis zu warten, geht es nicht um Shiny.
Typische Fallstudien von R.
Sie sprechen oft und oft gerne über Modelle und ML im Rahmen von Unternehmensanwendungen, aber es ist möglich, diese Aufgaben erst nach der Digitalisierung der Aufgabe und der Vorbereitung der Daten anzugehen. Und das alles im Rahmen von R.
Natürlich reicht R mit einem nicht immer aus. Abhängig vom Umfang der Aufgabe und der Datenmenge sind möglicherweise sowohl das Open-Source-Olap-Backend als auch das Open-Source-Datenerfassungssubsystem erforderlich. Dies ändert jedoch nichts, da der Benutzer nur mit der Benutzeranwendung arbeitet (siehe oben).
Viele der Geschichten enthielten zuvor spezielle Produkte von "großen Anbietern", die im Laufe der Jahre in Milliardenhöhe eingeführt wurden. Aber jetzt ist alles viel einfacher und billiger gelöst. Die Praxis zeigt, dass 99% der Geschäftsaufgaben in einen der drei unten beschriebenen Fälle fallen.
Fall Nr. 1. Betriebsanalyse
Eine typische Aufgabe besteht darin, eine betriebliche Rückkopplungsschleife zu erstellen. Die Hauptbühnen:
- Multiprotokoll- und Multiformat-Datenerfassung in einem realitätsnahen Modus (gemäß den Besonderheiten der Geschäftsprozesse beträgt das optimale Delta mehrere zehn Minuten) von verschiedenen Systemen verschiedener Hersteller und Nachschlagewerken in verschiedenen Formaten. Dies können beispielsweise Daten von Pumpgeräten, Daten von verschiedenen Scannern und Systembetriebsprotokolle sein
- Bereinigen, Normalisieren und Anreichern mit Daten aus anderen Quellen und Verzeichnissen
- Analyse der erhaltenen Zeitreihen. Hier werden Prognosen berechnet und Abweichungen von den vorhergesagten Werten analysiert sowie Anomalien analysiert und verschiedene Betrugsbekämpfungs- und Prognosemaßnahmen durchgeführt (z. B. stieg die Temperatur in den Kühlschränken langsam an. Die Indikatoren befinden sich zwar in den Einstellungen, aber der Trend ist offensichtlich - das Produkt kann bald schlecht werden).
- Berechnung aller augenblicklichen KPI-Werte (innerhalb der Grenzen der Vorstellungskraft von Geschäftsanalysten)
- Mehrkanal-Feedback-Loopback: Generieren von Berichten, Aktualisieren von Dashboards, automatische Berichterstellung an externe Systeme (z. B. Überwachung), automatische Ausführung von Befehlen in niedrigeren Systemen.
Klassische Instanzen:
- Kontrolle verschiedener Geräte,
- Überwachung langer Geschäftsprozesse,
- Online-Verkaufsanalyse,
- Call Center Arbeitsanalyse,
- Allgemeine Analyse von Zugangskontrollsystemen (gab es beispielsweise in SAP eine Anwendung für den Zugang eines bestimmten Mitarbeiters zu einem bestimmten Zeitpunkt zu einem bestimmten Ort oder was sieht ACS als Anomalie?).
Es gibt viele solcher Probleme und alles kann mit Hilfe des Ökosystems R gelöst werden.
Fall Nr. 2. Excel-Konsolidierung
Die Praxis zeigt, dass Excel in der überwiegenden Mehrheit der Unternehmen das Hauptwerkzeug für Geschäftsanalysten ist. Für einfache Aufgaben ist dies immer noch akzeptabel. Für komplexe Aufgaben mit vielen Daten verwandelt sich dieser Ansatz in ein Schwarzes Loch, das eine beliebige Menge an Ressourcen ansaugt und keine Ausgabe liefert.
Typische Aufgabe:
WÄHREND (! Gefeuert) TUN {
- Sammeln Sie schmutzige Daten aus einer Vielzahl verschiedener Quellen, meistens Excel-Handbuch.
- alles wiederholt validieren (technische und logische Validierung von Quellen + logische Kreuzvalidierung zwischen Quellen);
- Berechnungen, Konsolidierungen, Ausschüttungen durchführen;
- viele verschiedene Entladungen für die Lieferung an andere Einheiten vornehmen;
- geschickt über die geleistete Arbeit berichten.
}}
Und das alles in einem konstanten Notfallmodus und in einer ständigen Verarbeitung.
Klassische Instanzen:
- Analytics für integrierte Projektmanagementsysteme (KSUP), wenn Sie nicht mit einem Projekt aussteigen können. Die Masse der Auftragnehmer berichtet so gut sie können, aber wir müssen ein konsolidiertes Bild machen und Risiken managen.
- Bestell- und Vertriebssysteme (Handel und Logistik). Was zu tragen, wie zu verteilen, wie Bestellungen zu sammeln, wie sie zu zerlegen. Es ist auch gut, Einkäufe vorherzusagen.
Fall Nr. 3. Entscheidungsunterstützungssysteme
Hier ist es noch einfacher und reiner ML am nächsten:
- Sammeln Sie Informationen, wo Sie können (alle Arten von odbc- und nicht ganz odbc-kompatiblen Quellen, xml \ json, txt \ csv \ log, xlsx, REST-API);
- Korrelieren Sie Daten aus verschiedenen Quellen miteinander und führen Sie zu einer Form, die für ML-Algorithmen verdaulich ist.
- kommen Sie mit einer Matte. ein Modell der beschriebenen Geschäftseinheiten zur Berechnung;
- Zeichnen Sie verschiedene Segmente und Ansichten ein, erstellen Sie verschiedene Berichte in einer Managementform (docx, xlsx, pptx, pdf) mit einer Beschreibung der aktuellen Situation und Empfehlungen.
Die Fallklassifizierung wurde nicht erfunden, sondern auf der Grundlage der tatsächlichen Bedürfnisse des Unternehmens (Wissenschaft und reine ML \ AI \ DL getrennt) herausgestellt. Wahrscheinlich wird es in naher Zukunft möglich sein, "Screenshots zu teilen", um 2-3 Probleme zu lösen.
Die Praxis zeigt, dass Sie mit R + Shiny sehr, sehr effizient auf solche Aufgaben „klicken“ können. Wenn es Aufgaben gibt, ist es sinnvoll, diese Tools genauer zu betrachten.
Vorheriger Beitrag - Funktionen einer robusten Enterprise R-Anwendung .