Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für: SQL Server 2016 (13.x) und höhere Versionen
Dies ist das sechste Tutorial der Tutorialreihe zu RevoScaleR zur Verwendung von RevoScaleR-Funktionen mit SQL Server.
In diesem Tutorial verwenden Sie R-Funktionen zum Anzeigen der Verteilung von Werten in der Spalte creditLine nach Geschlecht.
- Erstellen von Minimum- und Maximumwerten für Histogrammeingaben
- Visualisieren von Daten in einem Histogramm mithilfe von rxHistogram aus RevoScaleR
- Visualisieren mit Punktdiagrammen mithilfe von levelplot aus dem in der R-Basisverteilung enthaltenen lattice-Paket
In diesem Tutorial wird veranschaulicht, dass Sie Open-Source- und Microsoft-spezifische Funktionen in einem Skript kombinieren können.
Hinzufügen von Maximum- und Minimumwerten
Auf Grundlage der berechneten Zusammenfassungsstatistiken aus dem vorherigen Tutorial haben Sie einige nützliche Informationen über die Daten gefunden, die Sie in die Datenquelle für weitere Berechnungen einfügen können. So können Sie beispielsweise mithilfe der Minimum- und Maximumwerte Histogramme berechnen. In dieser Übung fügen Sie der Datenquelle RxSqlServerData den höchsten und den niedrigsten Wert hinzu.
Beginnen Sie, indem Sie einige temporäre Variablen einrichten.
sumDF <- sumOut$sDataFrame var <- sumDF$NameVerwenden Sie die Variable ccColInfo, die Sie im vorherigen Tutorial zum Definieren von Spalten in der Datenquelle erstellt haben.
Fügen Sie der Spaltensammlung neue berechnete Spalten (numTrans, numIntlTrans und creditLine) hinzu. Damit wird die ursprüngliche Definition überschrieben. Mit dem folgenden Skript werden auf Basis der Minimum- und Maximumwerte Faktoren hinzugefügt, die mit der Variablen „sumOut“ abgerufen werden. Mit dieser Variablen wird das speicherinterne Ergebnis aus rxSummary gespeichert.
ccColInfo <- list( gender = list(type = "factor", levels = c("1", "2"), newLevels = c("Male", "Female")), cardholder = list(type = "factor", levels = c("1", "2"), newLevels = c("Principal", "Secondary")), state = list(type = "factor", levels = as.character(1:51), newLevels = stateAbb), balance = list(type = "numeric"), numTrans = list(type = "factor", levels = as.character(sumDF[var == "numTrans", "Min"]:sumDF[var == "numTrans", "Max"])), numIntlTrans = list(type = "factor", levels = as.character(sumDF[var == "numIntlTrans", "Min"]:sumDF[var =="numIntlTrans", "Max"])), creditLine = list(type = "numeric") )Wenden Sie nach dem Update der Spaltensammlung die folgende Anweisung an, um eine aktualisierte Version der zuvor definierten SQL Server-Datenquelle zu erstellen.
sqlFraudDS <- RxSqlServerData( connectionString = sqlConnString, table = sqlFraudTable, colInfo = ccColInfo, rowsPerRead = sqlRowsPerRead)Die Datenquelle „sqlFraudDS“ enthält nun die neuen Spalten, die mithilfe von ccColInfo hinzugefügt wurden.
An dieser Stelle wirken sich die Änderungen nur auf das Datenquellenobjekt in R aus. Es wurden noch keine neuen Daten in die Datenbanktabelle geschrieben. Sie können jedoch die in der Variablen „sumOut“ aufgezeichneten Daten verwenden, um Visualisierungen und Zusammenfassungen zu erstellen.
Tipp
Wenn Sie vergessen haben, welchen Computekontext Sie verwenden, führen Sie rxGetComputeContext aus. Ein Rückgabewert von „RxLocalSeq Compute Context“ gibt an, dass Sie sich im lokalen Computekontext befinden.
Visualisieren von Daten mit rxHistogram
Verwenden Sie den folgenden R-Code zum Aufrufen der rxHistogram -Funktion, und übergeben Sie eine Formel sowie eine Datenquelle. Sie können dies zunächst lokal ausführen, um die erwarteten Ergebnisse anzuzeigen und zu sehen, wie lange es dauert.
rxHistogram(~creditLine|gender, data = sqlFraudDS, histType = "Percent")Intern ruft rxHistogram die rxCube -Funktion ab, die im RevoScaleR -Paket enthalten ist. rxCube gibt eine einzelne Liste (oder einen einzelnen Datenrahmen) aus, die (bzw. der) eine Spalte für jede in der Formel angegebene Variable enthält, sowie eine Spalte „counts“.
Nun legen Sie den Computekontext auf den SQL Server-Remotecomputer fest und führen rxHistogram erneut aus.
rxSetComputeContext(sqlCompute) rxHistogram(~creditLine|gender, data = sqlFraudDS, histType = "Percent")Die Ergebnisse sind identisch, da Sie die gleiche Datenquelle verwenden. Die Berechnungen im zweiten Schritt werden jedoch auf dem Remoteserver ausgeführt. Die Ergebnisse werden anschließend an Ihre lokale Arbeitsstation zum Zeichnen zurückgegeben.

Visualisieren mit Punktdiagrammen
Punktdiagramme werden beim Durchsuchen von Daten häufig verwendet, um die Beziehung zwischen zwei Variablen zu vergleichen. Hierzu können Sie integrierte R-Pakete mit Eingaben verwenden, die durch RevoScaleR-Funktionen bereitgestellt werden.
Rufen Sie die rxCube-Funktion zur Berechnung des Mittelwerts von fraudRisk für sämtliche Kombinationen von numTrans und numIntlTrans auf:
cube1 <- rxCube(fraudRisk~F(numTrans):F(numIntlTrans), data = sqlFraudDS)Verwenden Sie zum Angeben der Gruppen, die zum Berechnen der Mittel der Gruppe verwendet werden, die Notation
F(). In diesem Beispiel gibtF(numTrans):F(numIntlTrans)an, dass die ganzen Zahlen in den VariablennumTransundnumIntlTransals Kategorievariablen mit einer Ebene für jeden Ganzzahlwert behandelt werden müssen.Der Rückgabewert von rxCube ist standardmäßig ein rxCube-Objekt, das eine Kreuztabelle darstellt.
Rufen Sie die Funktion rxResultsDF auf, um die Ergebnisse in einen Datenrahmen zu konvertieren, der leicht in einem der Standardzeichenfunktionen von R verwendet werden kann.
cubePlot <- rxResultsDF(cube1)Die Funktion rxCube enthält das optionale Argument returnDataFrame = TRUE, das Sie zur direkten Konvertierung der Ergebnisse in einen Datenrahmen verwenden können. Beispiel:
print(rxCube(fraudRisk~F(numTrans):F(numIntlTrans), data = sqlFraudDS, returnDataFrame = TRUE))Die Ausgabe von rxResultsDF ist jedoch genauer. Zudem bleiben bei dieser Ausgabe die Namen der Quellspalten erhalten. Führen Sie zum Vergleichen der Ausgabe zunächst
head(cube1), dannhead(cubePlot)aus.Erstellen Sie mithilfe der levelplot-Funktion aus dem in allen R-Verteilungen enthaltenen lattice-Paket ein Wärmebild.
levelplot(fraudRisk~numTrans*numIntlTrans, data = cubePlot)Ergebnisse

Aus dieser schnellen Analyse können Sie herauslesen, dass das Betrugsrisiko jeweils mit der Anzahl der Transaktionen und der Anzahl der internationalen Transaktionen ansteigt.
Weitere Informationen zur rxCube-Funktion und zu Kreuztabellen im Allgemeinen finden Sie unter Datenzusammenfassungen mithilfe von RevoScaleR.