Vytvořte modely v R (tutoriál pro SQL Server a RevoScaleR)

platí pro: SQL Server 2016 (13.x) a novější verze

Toto je sedmý tutoriál ze série RevoScaleR o tom, jak používat funkce RevoScaleR se SQL Server.

Obohatili jste tréninková data. V tomto tutoriálu budete data analyzovat pomocí regresního modelování. Lineární modely jsou důležitým nástrojem ve světě prediktivní analytiky. Balíček RevoScaleR obsahuje regresní algoritmy, které dokážou rozdělit pracovní zátěž a spustit ji paralelně.

  • Vytvoření modelu lineární regrese
  • Vytvoření logistického regresního modelu

Vytvoření modelu lineární regrese

V tomto kroku vytvořte jednoduchý lineární model, který odhaduje zůstatek na kreditní kartě pro zákazníky pomocí nezávislých proměnných hodnot ve sloupcích pohlaví a kreditní linky .

K tomu použijte funkci rxLinMod , která podporuje vzdálené výpočetní kontexty.

  1. Vytvořte proměnnou R pro uložení dokončeného modelu a zavolejte rxLinMod, přičemž předáte odpovídající vzorec.

    linModObj <- rxLinMod(balance ~ gender + creditLine,  data = sqlFraudDS)
    
  2. Pro zobrazení souhrnu výsledků zavolejte standardní souhrnnou funkci R na objektu modelu.

    summary(linModObj)
    

Možná vám přijde zvláštní, že by zde fungovala obyčejná funkce R jako souhrn, protože v předchozím kroku nastavujete výpočetní kontext serveru. Nicméně i když funkce rxLinMod používá vzdálený výpočetní kontext k vytvoření modelu, vrátí objekt, který model obsahuje, do vaší lokální pracovní stanice a uloží jej do sdíleného adresáře.

Proto můžete proti modelu spustit standardní příkazy R, jako by byl vytvořen v "lokálním" kontextu.

Results

Linear Regression Results for: balance ~ gender + creditLineData: sqlFraudDS (RxSqlServerData Data Source)
Dependent variable(s): balance
Total independent variables: 4 (Including number dropped: 1)
Number of valid observations: 10000
Number of missing observations: 0
Coefficients: (1 not defined because of singularities)

Estimate Std. Error t value Pr(>|t|) (Intercept)
3253.575 71.194 45.700 2.22e-16
gender=Male -88.813 78.360 -1.133 0.257
gender=Female Dropped Dropped Dropped Dropped
creditLine 95.379 3.862 24.694 2.22e-16
Signif. codes: 0  0.001  0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 3812 on 9997 degrees of freedom
Multiple R-squared: 0.05765
Adjusted R-squared: 0.05746
F-statistic: 305.8 on 2 and 9997 DF, p-value: < 2.2e-16
Condition number: 1.0184

Vytvoření logistického regresního modelu

Dále vytvořte model logistické regrese, který ukáže, zda je konkrétní zákazník rizikem podvodu. Použijete funkci RevoScaleRrxLogit , která podporuje přizpůsobení logistických regresních modelů v kontextech vzdálených výpočtů.

Kontext výpočtů ponechte beze změny. Budete také nadále používat stejný zdroj dat.

  1. Zavolejte funkci rxLogit a předejte vzorec potřebný k definování modelu.

    logitObj <- rxLogit(fraudRisk ~ state + gender + cardholder + balance + numTrans + numIntlTrans + creditLine, data = sqlFraudDS, dropFirst = TRUE)
    

    Protože jde o velký model, obsahující 60 nezávislých proměnných, včetně tří fiktivních proměnných, které jsou vynechány, možná budete muset nějakou dobu počkat, než výpočetní kontext vrátí objekt.

    Důvodem, proč je model tak rozsáhlý, je to, že v R a v balíčku RevoScaleR je každá úroveň kategorické faktorové proměnné automaticky považována za samostatnou fiktivní proměnnou.

  2. Pro zobrazení souhrnu vráceného modelu volejte funkci souhrnu R.

    summary(logitObj)
    

Částečné výsledky

Logistic Regression Results for: fraudRisk ~ state + gender + cardholder + balance + numTrans + numIntlTrans + creditLine
Data: sqlFraudDS (RxSqlServerData Data Source)
Dependent variable(s): fraudRisk
Total independent variables: 60 (Including number dropped: 3)
Number of valid observations: 10000 -2

LogLikelihood: 2032.8699 (Residual deviance on 9943 degrees of freedom)

Coefficients:
Estimate Std. Error z value Pr(>|z|)     (Intercept)
-8.627e+00  1.319e+00  -6.538 6.22e-11
state=AK                Dropped    Dropped Dropped  Dropped
state=AL             -1.043e+00  1.383e+00  -0.754   0.4511

(other states omitted)

gender=Male             Dropped    Dropped Dropped  Dropped
gender=Female         7.226e-01  1.217e-01   5.936 2.92e-09
cardholder=Principal    Dropped    Dropped Dropped  Dropped
cardholder=Secondary  5.635e-01  3.403e-01   1.656   0.0977
balance               3.962e-04  1.564e-05  25.335 2.22e-16
numTrans              4.950e-02  2.202e-03  22.477 2.22e-16
numIntlTrans          3.414e-02  5.318e-03   6.420 1.36e-10
creditLine            1.042e-01  4.705e-03  22.153 2.22e-16

Signif. codes:  0 '\*\*\*' 0.001 '\*\*' 0.01 '\*' 0.05 '.' 0.1 ' ' 1
Condition number of final variance-covariance matrix: 3997.308
Number of iterations: 15

Další krok