Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy: SQL Server 2016 (13.x) i nowsze wersje
To jest 9. samouczek z serii tutoriali RevoScaleR, jak korzystać z funkcji RevoScaleR z SQL Server.
W tym samouczku poznasz funkcje RevoScaleR do transformacji danych na różnych etapach analizy.
- Użyj rxDataStep do tworzenia i transformacji podzbioru danych
- Użyj rxImport do transformacji danych w trakcie transportu do lub z pliku XDF lub ramki danych w pamięci podczas importu
Chociaż nie są to specyficzne dla ruchu danych, funkcje rxSummary, rxCube, rxLinMod i rxLogit obsługują transformacje danych.
Użyj rxDataStep do transformacji zmiennych
Funkcja rxDataStep przetwarza dane po jednym fragmencie, odczytując z jednego źródła danych i zapisując do innego. Możesz określić kolumny do transformacji, transformacje do ładowania i tak dalej.
Aby uczynić ten przykład ciekawym, użyjmy funkcji z innego pakietu R do transformacji danych. Pakiet boot jest jednym z "zalecanych" pakietów, co oznacza, że boot jest dołączony do każdej dystrybucji R, ale nie jest automatycznie ładowany przy starcie. Dlatego pakiet powinien być już dostępny na instancji SQL Server skonfigurowanej pod integrację z R.
Z pakietu startowego użyj funkcji inv.logit, która oblicza odwrotność logit. To znaczy, funkcja inv.logit przekształca logit z powrotem w prawdopodobieństwo w skali [0,1].
Wskazówka
Innym sposobem na uzyskanie predykcji w tej skali byłoby ustawienie parametru typu na odpowiedź w oryginalnym wywołaniu rxPredict.
Zacznij od stworzenia źródła danych, które przechowują dane przeznaczone do tabeli.
ccScoreOutputsqlOutScoreDS <- RxSqlServerData( table = "ccScoreOutput", connectionString = sqlConnString, rowsPerRead = sqlRowsPerRead )Dodaj kolejne źródło danych, które przechowuje dane dla tabeli
ccScoreOutput2.sqlOutScoreDS2 <- RxSqlServerData( table = "ccScoreOutput2", connectionString = sqlConnString, rowsPerRead = sqlRowsPerRead )W nowej tabeli przechowuj wszystkie zmienne z poprzedniej
ccScoreOutputtabeli oraz nowo utworzoną zmienną.Ustaw kontekst obliczeniowy na instancję SQL Server.
rxSetComputeContext(sqlCompute)Użyj funkcji rxSqlServerTableExists , aby sprawdzić, czy tabela
ccScoreOutput2wyjściowa już istnieje; a jeśli tak, użyj funkcji rxSqlServerDropTable , aby usunąć tabelę.if (rxSqlServerTableExists("ccScoreOutput2")) rxSqlServerDropTable("ccScoreOutput2")Wołaj funkcję rxDataStep i określaj pożądane transformacje w liście.
rxDataStep(inData = sqlOutScoreDS, outFile = sqlOutScoreDS2, transforms = list(ccFraudProb = inv.logit(ccFraudLogitScore)), transformPackages = "boot", overwrite = TRUE)Definiując transformacje stosowane do każdej kolumny, możesz także określić dodatkowe pakiety R potrzebne do wykonania transformacji. Aby uzyskać więcej informacji o typach transformacji, które możesz wykonać, zobacz Jak transformować i podzestawiać dane za pomocą RevoScaleR.
Zadzwoń do rxGetVarInfo , aby zobaczyć podsumowanie zmiennych w nowym zbiorze danych.
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
Oryginalne wyniki logitów zostały zachowane, ale dodano nową kolumnę ccFraudProb, w której wyniki logitów są reprezentowane jako wartości od 0 do 1.
Zauważ, że zmienne czynnikowe zostały zapisane w tabeli ccScoreOutput2 jako dane znakowe. Aby wykorzystać je jako czynniki w kolejnych analizach, użyj parametru colInfo do określenia poziomów.