R Glänzend | Erstellen Sie interaktive Modelle mit R Shiny

Inhalt

Alles wird mit der Cloud und den Daten verbunden … All dies wird durch die Software vermittelt – Satya Nadella

Einführung:

zing die Modellergebnisse, oder versuchen, das Modell zu passen, visuelle Elemente erleichtern die Interpretation des Ergebnisses.

Konventionell, Die Bilder werden aus einem Plug-In oder einer Bibliothek generiert und in Webanwendungen dargestellt, die es dem Endbenutzer ermöglichen, zu interagieren und die Ergebnisse zu interpretieren. Diese Bilder können statisch oder teilweise interaktiv in Silos sein.

Dann, Gibt es eine Möglichkeit, das Beste aus Datenvisualisierung und Webtechnologien an einem Ort zusammenzuführen?? Jawohl, es ist möglich und diese Anwendungen werden als Datenanwendungen bezeichnet.

80167Banner-5298519

Quelle: glänzend.rstudio.com

Datenanwendungen machen es Fachexperten leicht,, Entscheidungsträger in Unternehmen oder Verbraucher interagieren mit Daten, große und kleine.

Sie unterscheiden sich von statischen BI-Berichten dadurch, dass sie eine Ad-hoc-Interaktion über eine intuitive, auf den jeweiligen Anwendungsfall zugeschnittene Oberfläche bieten.. También se diferencian de la Analyse automatizada impulsada por el aprendizaje automático, da sie für die „Mensch im Zyklus“ im Gegensatz zur automatisierten Entscheidungsfindung.

Das macht sie perfekt für Analysen, die eine Kombination aus Daten und Intuition erfordern.. Diese Apps erleichtern die Datenexploration und -recherche. Die Datenuntersuchung erfolgt als Reaktion auf ein bestimmtes Ereignis oder eine Anomalie.

Der Benutzer kombiniert Ereignisdaten mit anderen Datenquellen und historischen Daten, um die Ursache zu identifizieren und Maßnahmen zu ergreifen. Dies führt zu Hunderten oder Tausenden von kleinen Erkenntnissen, die gemeinsam einen großen Unterschied machen..

Es gibt mehrere Bibliotheken sowohl in R (Glänzend) wie in python (Plotly Dash, Stromlit, Welle, etc.) um Datenanwendungen zu erstellen.

In diesem Artikel, Wir werden untersuchen, wie Shiny R verwendet werden kann, um eine Anwendung zu erstellen, die es dem Benutzer ermöglicht, den Datensatz im Training aufzuteilen / ausprobieren, mehrere Modelle bauen, Modellmetriken generieren, visualisieren Sie das Ergebnis und treffen Sie die Entscheidung im Handumdrehen.

Am Ende dieses Artikels, Wir werden die folgende Anwendung erstellen. Bitte beachten Sie die verschiedenen Reiter auf der Startseite.

68470Startseite-5181770

Beginnend:

Wir werden verwenden mtcars Datensatz für diese Anwendung. Sobald wir testen und sicherstellen, dass die Benutzeroberfläche und die Serverfunktionen wie erwartet funktionieren, wir können den Datensatz ändern und die App sollte bei Bedarf mit minimaler Datenverarbeitung genauso gut funktionieren.

Zuerst, lass uns das Shiny installieren und laden. Shiny-Anwendung hat hauptsächlich zwei Dateien, eine Benutzeroberfläche und ein Server:

install.pakete("glänzend")
Bücherei("glänzend")

Benutzeroberfläche (Benutzeroberfläche):

Hier definieren Sie Ihr Design: Lesezeichen de posición que se completarán en el tiempo de ejecución a partir de los datos / serververarbeitete Grafiken.

Server:

Hier schreibst du die meiste Logik, Datendiskussion, das Layout, etc. Das meiste schwere Heben wird hier erledigt.

Fügen wir die beiden Dropdown-Felder hinzu, eine für die unabhängigen Variablen und die andere zur Auswahl des Ziels.

  ArmaturenbrettKörper(
    Flüssigkeitsseite(
    Kasten(
      selectInput(
        "WählenX",
        Etikett = "Variablen auswählen:",
        Auswahl = Namen(mtcars),
        mehrfach = WAHR,
        ausgewählt = Namen(mtcars)
      ),
      solidHeader = TRUE,
      Breite = "3",
      Status = "primär",
      Titel = "X-Variable"
    ),
    Kasten(
      selectInput("Wählen SieY", Etikett = "Wählen Sie die vorherzusagende Variable:", Auswahl = Namen(mtcars)),
      solidHeader = TRUE,
      Breite = "3",
      Status = "primär",
      Titel = "Und variabel"
    )

Dann, agregaremos un control deslizante en el Panel lateral para dividir el conjunto de datos para entrenar y probar según la selección del usuario.

DashboardSidebar(
    sliderInput(
      "Schieberegler1",
      Etikett = h3("Trainings-/Test-Split %"),
      min = 0,
      max = 100,
      Wert = 75
    ),
    Textausgabe("cntZug"),
    Textausgabe("cntTest"),

Jetzt, Wir werden mehrere Registerkarten erstellen, von denen jeder spezifische Funktionen hat, wie unten beschrieben:

Daten – So zeigen Sie Rohdaten in Tabellenform an,

Datenzusammenfassung – Sehen Sie sich die grundlegenden Statistiken unseres Datensatzes an.

Pakete – In diesem Fall, wir erstellen nur einen Korrelationsgraphen, aber bei Bedarf können relevantere Grafiken hinzugefügt werden.

Modell – Erstellen Sie ein lineares Regressionsmodell basierend auf der Benutzerauswahl der Variablen X, Y y divisiones de Ausbildung / nachweisen

Vorhersage – Vorhersage im Testset.

Flüssigkeitsseite(  
      tabBox(
      id = "tabset1",
      Höhe = "1000px",
      Breite = 12,
      tabPanel("Daten",
               Kasten(mitSpinner(DTAusgang(
                 "Daten"
               )), Breite = 12)),
      tabPanel(
        "Datenzusammenfassung",
        Kasten(mitSpinner(wörtlichTextAusgabe("Summe")), Breite = 6),
        Kasten(mitSpinner(wörtlichTextAusgabe("Summ_old")), Breite = 6)
      ),
      tabPanel("Grundstücke",
               Kasten(mitSpinner(PlotAusgabe(
                 "Korr"
               )), Breite = 12)),
      #Kasten(mitSpinner(wörtlichTextAusgabe("KorrMatrix")), Breite = 12),
      tabPanel(
        "Modell",
        Kasten(
          mitSpinner(wörtlichTextAusgabe("Modell")),
          Breite = 6,
          Titel = "Modellzusammenfassung"
        ),
        Kasten(
          mitSpinner(wörtlichTextAusgabe("ImpVar")),
          Breite = 5,
          Titel = "Variable Bedeutung"
        )
      ),
      #Textausgabe("Korrelation_Genauigkeit"),
      tabPanel(
        "Vorhersage",
        Kasten(mitSpinner(PlotAusgabe("Vorhersage")), Breite = 6, Titel = "Linie mit der besten Passform"),
        Kasten(mitSpinner(PlotAusgabe("RestPlots")), Breite = 6, Titel = "Diagnoseplots")
      )
    )

Nachdem wir nun unsere Benutzeroberfläche erstellt haben, Wir werden mit der Implementierung der Serverlogik fortfahren, um die Benutzeroberfläche basierend auf der Auswahl des Benutzers zu vervollständigen: Interaktivität.

Füllen der Datenregisterkarte: Wir verwenden den mtcars-Datenrahmen und speichern ihn in einem Objekt mit Namen Eingabedatensatz und füllen Sie dann die Benutzeroberfläche mit renderDT () Funktion.

Bitte beachten Sie die Verwendung von Klammern am Ende des Objekts Eingabedatensatz (). Dies geschieht, weil es ein reaktives Objekt ist, Das bedeutet, dass alle Änderungen an diesem Objekt Auswirkungen auf andere Stellen haben, an denen es in der Anwendung referenziert wird.

 Eingabedatensatz <- reaktiv({
    mtcars
  })
 Ausgabe$Daten <- renderDT(Eingabedatensatz())

Auf ähnlichen Linien, Sie können verwenden abstrakt() Ja Korrelation Funktion zum Vervollständigen der Datenzusammenfassung und Korrelation Handlung Tab. Sie können auf den serverseitigen Code zugreifen von GitHub

68006Datenzusammenfassung-3851028
46589Korrelation-6754319

Jetzt haben wir gesehen, wie die Daten vervollständigt werden, bauen wir ein lineares Regressionsmodell und sehen wir uns auch die Bedeutung der Variablen an.

F <- reaktiv({
    as.formel(Einfügen(input$SelectY, "~."))
})
Linear_Modell <- reaktiv({
    lm(F(), Daten = Trainingsdaten())
  })
  Ausgabe$Modell <- renderPrint(Zusammenfassung(Linear_Modell()))
  Ausgabe$Model_new <-
    renderPrint(
      Sternengucker(
        Linear_Modell(),
        Typ = "Text",
        Titel = "Modellergebnisse",
        Ziffern = 1,
        aus = "table1.txt"
      )
    )
 tmpImp <- reaktiv({
    #varImp(Linear_Modell())
    imp <- als.Datenrahmen(varImp(Linear_Modell()))
    imp <- data.frame(insgesamt = imp$Gesamt,
                      Namen = Zeilennamen(imp))
    imp[Auftrag(imp$gesamt, abnehmend = T),]
  })
  Ausgabe$ImpVar <- renderPrint(tmpImp())

Implementieren wir die Logik für die Vorhersage Registerkarte, auf der wir unser Modell aus dem vorherigen Abschnitt verwenden werden, um den Testdatensatz vorherzusagen und auch Residuendiagramme zu erstellen.

  current_preds <-
    reaktiv({
      data.frame(cbind(Strom = tmp(), vorhergesagt = price_predict()))
    })
  Fit <-
    reaktiv({
      (
        Handlung(
          current_preds()$aktuell,
          current_preds()$vorhergesagt,
          pch = 16,
          cex = 1.3,
          col = "Blau",
          Haupt = "Linie mit der besten Passform",
          xlab = "Tatsächlich",
          ylab = "Vorhergesagt"
        )
      )
    })
  Ausgabe$Vorhersage <- renderPlot(Fit())
  Ausgabe$restPlots <- renderPlot({
    durch(mfrow = c(2, 2)) # Ändern Sie das Panel-Layout in 2 x 2
    Handlung(Linear_Modell())
    durch(mfrow = c(1, 1)) # Zurück zu ändern 1 x 1
  })
61000Vorhersage-6295794

Den vollständigen Code erhalten Sie unter GitHub. Sobald Sie Ihre Anwendung ausführen, Sie werden sehen, dass die Homepage geladen ist. Sie können zu verschiedenen Abschnitten navigieren, Änderungen an Variablen vornehmen, Erstellen Sie Modelle und sagen Sie On-the-Fly-Tests vorher, indem Sie die folgenden Schritte befolgen.

62109lauf-7478016

Paso 1:

Wählen Sie die Zugdatenabteilung aus / bevorzugter Test auf der linken Seite.

Paso 2:

Wählen Sie die X- und Y-Variablen aus den Dropdown-Menüs.

Paso 3:

Navigieren Sie zu den entsprechenden Registerkarten, um das Ergebnis zu sehen:

64756interaktive20modellierung-7007167

Fazit:

Das Ziel des Blogs war es, eine Datenanwendung mit R Shiny . zu erstellen. Dies war eine sehr einfache Implementierung mit allen integrierten Steuerelementen.

Nur um es ein bisschen interessanter zu machen, Ich habe mich entschieden, einen Modellbauaspekt in die App einzubringen, um zu zeigen, wie modellgesteuerte Apps in kürzester Zeit erstellt werden können.

Zusammen mit den Shiny-Elementen, Sie können HTML-Elemente verwenden, um Ihren Inhalt in Ihrer Anwendung zu gestalten.

Viel Spaß beim Lernen !!!!

Du kannst dich mit mir verbinden – Linkedin

Sie können den Code als Referenz finden: Github

Verweise

https://glänzend.rstudio.com/tutorial/

https://unsplash.com/

Die in diesem Artikel gezeigten Medien sind nicht Eigentum von DataPeaker und werden nach Ermessen des Autors verwendet.

Abonniere unseren Newsletter

Wir senden Ihnen keine SPAM-Mail. Wir hassen es genauso wie du.

Datenlautsprecher