Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op: SQL Server 2016 (13.x) en latere versies
Dit is tutorial 9 van de RevoScaleR-tutorialserie over hoe je RevoScaleR-functies gebruikt met SQL Server.
In deze tutorial leer je over de RevoScaleR-functies voor het transformeren van data in verschillende fasen van je analyse.
- Gebruik rxDataStep om een datasubset te maken en te transformeren
- Gebruik rxImport om data tijdens de import naar of van een XDF-bestand of een geheugen dataframe te transformeren
Hoewel niet specifiek voor gegevensverplaatsing, ondersteunen de functies rxSummary, rxCube, rxLinMod en rxLogit allemaal datatransformaties.
Gebruik rxDataStep om variabelen te transformeren
De rxDataStep-functie verwerkt data stuk voor stuk, leest van de ene databron en schrijft naar een andere. Je kunt de kolommen specificeren die getransformeerd moeten worden, welke transformaties geladen moeten worden, enzovoort.
Om dit voorbeeld interessant te maken, laten we een functie uit een ander R-pakket gebruiken om de data te transformeren. Het opstartpakket is een van de "aanbevolen" pakketten, wat betekent dat opstart bij elke distributie van R zit, maar niet automatisch wordt geladen bij het opstarten. Daarom zou het pakket al beschikbaar moeten zijn op de SQL Server-instantie die is geconfigureerd voor R-integratie.
Gebruik vanuit het bootpakket de functie inv.logit, die de inverse van een logit berekent. Dat wil zeggen, de inv.logit-functie zet een logit weer om in een kans op de [0,1]-schaal.
Tip
Een andere manier om voorspellingen op deze schaal te krijgen, is door de typeparameter in te stellen op antwoord in de oorspronkelijke oproep naar rxPredict.
Begin met het creëren van een databron om de gegevens te bevatten die bestemd zijn voor de tabel,
ccScoreOutput.sqlOutScoreDS <- RxSqlServerData( table = "ccScoreOutput", connectionString = sqlConnString, rowsPerRead = sqlRowsPerRead )Voeg een extra databron toe om de data voor de tabel
ccScoreOutput2op te slaan.sqlOutScoreDS2 <- RxSqlServerData( table = "ccScoreOutput2", connectionString = sqlConnString, rowsPerRead = sqlRowsPerRead )In de nieuwe tabel slaat je alle variabelen uit de vorige
ccScoreOutputtabel op, plus de nieuw aangemaakte variabele.Stel de compute-context in op de SQL Server-instantie.
rxSetComputeContext(sqlCompute)Gebruik de functie rxSqlServerTableExists om te controleren of de uitvoertabel
ccScoreOutput2al bestaat; en zo ja, gebruik dan de functie rxSqlServerDropTable om de tabel te verwijderen.if (rxSqlServerTableExists("ccScoreOutput2")) rxSqlServerDropTable("ccScoreOutput2")Roep de rxDataStep-functie aan en specificeer de gewenste transformaties in een lijst.
rxDataStep(inData = sqlOutScoreDS, outFile = sqlOutScoreDS2, transforms = list(ccFraudProb = inv.logit(ccFraudLogitScore)), transformPackages = "boot", overwrite = TRUE)Wanneer je de transformaties definieert die op elke kolom worden toegepast, kun je ook eventuele extra R-pakketten specificeren die nodig zijn om de transformaties uit te voeren. Voor meer informatie over de soorten transformaties die je kunt uitvoeren, zie Hoe je data transformeert en deelt met RevoScaleR.
Bel rxGetVarInfo om een samenvatting van de variabelen in de nieuwe dataset te bekijken.
rxGetVarInfo(sqlOutScoreDS2)
Results
Var 1: ccFraudLogitScore, Type: numeric
Var 2: state, Type: character
Var 3: gender, Type: character
Var 4: cardholder, Type: character
Var 5: balance, Type: integer
Var 6: numTrans, Type: integer
Var 7: numIntlTrans, Type: integer
Var 8: creditLine, Type: integer
Var 9: ccFraudProb, Type: numeric
De oorspronkelijke logitscores blijven behouden, maar er is een nieuwe kolom, ccFraudProb, toegevoegd, waarin de logitscores worden weergegeven als waarden tussen 0 en 1.
Let op dat de factorvariabelen als karaktergegevens in de tabel ccScoreOutput2 zijn geschreven. Om ze als factoren in latere analyses te gebruiken, gebruik je de parameter colInfo om de niveaus te specificeren.