Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro: SQL Server 2016 (13.x) a novější verze
Toto je návod číslo 9 ze série RevoScaleR o tom, jak používat funkce RevoScaleR se SQL Server.
V tomto tutoriálu se naučíte o funkcích RevoScaleR pro transformaci dat v různých fázích vaší analýzy.
- Použijte rxDataStep k vytvoření a transformaci podmnožiny dat
- Použijte rxImport k transformaci dat během přenosu do nebo z XDF souboru nebo z datového rámce v paměti během importu
Ačkoliv nejsou specificky určeny pro přesun dat, funkce rxSummary, rxCube, rxLinMod a rxLogit všechny podporují transformace dat.
Použijte rxDataStep k transformaci proměnných
Funkce rxDataStep zpracovává data po jednotlivých částech, čte z jednoho zdroje a zapisuje do jiného. Můžete určit sloupce, které se mají transformovat, transformace, které se mají načíst, a podobně.
Aby byl tento příklad zajímavý, použijme funkci z jiného balíčku R k transformaci dat. Boot balíček je jedním z "doporučených" balíčků, což znamená, že boot je součástí každé distribuce R, ale při startu se nenačítá automaticky. Proto by balíček měl být již dostupný na instanci SQL Server nakonfigurované pro integraci s R.
Z bootovacího balíčku použijte funkci inv.logit, která vypočítá inverzi logitu. To znamená, že funkce inv.logit převádí logit zpět na pravděpodobnost na škále [0,1].
Tip
Dalším způsobem, jak získat predikce v této škále, je nastavit parametr typu na odpověď v původním volání rxPredict.
Začněte vytvořením datového zdroje, který bude obsahovat data určená pro tabuli,
ccScoreOutput.sqlOutScoreDS <- RxSqlServerData( table = "ccScoreOutput", connectionString = sqlConnString, rowsPerRead = sqlRowsPerRead )Přidejte další zdroj dat, který uchovává data pro tabulku
ccScoreOutput2.sqlOutScoreDS2 <- RxSqlServerData( table = "ccScoreOutput2", connectionString = sqlConnString, rowsPerRead = sqlRowsPerRead )V nové tabulce uložte všechny proměnné z předchozí
ccScoreOutputtabulky plus nově vytvořenou proměnnou.Nastavte výpočetní kontext na instanci SQL Server.
rxSetComputeContext(sqlCompute)Použijte funkci rxSqlServerTableExists k ověření, zda výstupní tabulka
ccScoreOutput2již existuje; a pokud ano, použijte funkci rxSqlServerDropTable k smazání tabulky.if (rxSqlServerTableExists("ccScoreOutput2")) rxSqlServerDropTable("ccScoreOutput2")Zavolejte funkci rxDataStep a zadejte požadované transformace v seznamu.
rxDataStep(inData = sqlOutScoreDS, outFile = sqlOutScoreDS2, transforms = list(ccFraudProb = inv.logit(ccFraudLogitScore)), transformPackages = "boot", overwrite = TRUE)Když definujete transformace, které se aplikují na každý sloupec, můžete také specifikovat další R balíčky, které jsou potřeba k provedení transformací. Pro více informací o typech transformací, které můžete provést, viz Jak transformovat a podmnožovat data pomocí RevoScaleR.
Zavoláním rxGetVarInfo zobrazíte souhrn proměnných v nové datové sadě.
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
Původní logitová skóre byla zachována, ale byl přidán nový sloupec ccFraudProb, ve kterém jsou logitová skóre reprezentována jako hodnoty mezi 0 a 1.
Všimněte si, že faktorové proměnné byly zapsány do tabulky ccScoreOutput2 jako znaková data. Pro použití těchto faktorů v následných analýzách použijte parametr colInfo k určení úrovní.