# my-vignette

    library(autoScorecard)

    #Quick Modeling

    ##step 1: Import Data
    accepts <- read.csv(system.file("extdata", "accepts.csv", package = "autoScorecard" ))

    ##step 2: Create scorecard
    ##Considering efficiency and readability, many parameters of this automatic modeling function
    ##are default, which requires high-precision modeling and needs to be manually established step by step
    auto_scorecard1 <- auto_scorecard( feature = accepts[1:2000,], key_var= "application_id",
                                       y_var = "bad_ind",sample_rate = 0.7, points0 = 600, odds0=1/20, pdo = 50,
                                       max_depth =3,tree_p = 0.1, missing_rate = 0, single_var_rate = 1, iv_set=0.02,
                                       char_to_number = TRUE , na.omit = TRUE)
    #> Start:  AIC=873.27
    #> bad_ind ~ application_id + vehicle_year + vehicle_make + tot_derog +
    #>     tot_tr + age_oldest_tr + tot_open_tr + tot_rev_tr + tot_rev_debt +
    #>     tot_rev_line + rev_util + fico_score + purch_price + msrp +
    #>     down_pyt + loan_term + loan_amt + ltv + tot_income + veh_mileage
    #>
    #>                  Df Deviance    AIC
    #> - application_id  1   831.27 871.27
    #> - purch_price     1   831.40 871.40
    #> - msrp            1   832.05 872.05
    #> - tot_tr          1   832.12 872.12
    #> - tot_open_tr     1   832.40 872.40
    #> - vehicle_year    1   832.95 872.95
    #> - tot_rev_line    1   833.09 873.09
    #> <none>                831.27 873.27
    #> - tot_income      1   833.94 873.94
    #> - vehicle_make    1   834.31 874.31
    #> - down_pyt        1   834.90 874.90
    #> - loan_term       1   835.25 875.25
    #> - tot_rev_tr      1   836.28 876.28
    #> - veh_mileage     1   836.68 876.68
    #> - loan_amt        1   836.72 876.72
    #> - age_oldest_tr   1   837.63 877.63
    #> - tot_derog       1   838.33 878.33
    #> - tot_rev_debt    1   839.33 879.33
    #> - rev_util        1   844.21 884.21
    #> - ltv             1   848.13 888.13
    #> - fico_score      1   853.94 893.94
    #>
    #> Step:  AIC=871.27
    #> bad_ind ~ vehicle_year + vehicle_make + tot_derog + tot_tr +
    #>     age_oldest_tr + tot_open_tr + tot_rev_tr + tot_rev_debt +
    #>     tot_rev_line + rev_util + fico_score + purch_price + msrp +
    #>     down_pyt + loan_term + loan_amt + ltv + tot_income + veh_mileage
    #>
    #>                  Df Deviance    AIC
    #> - purch_price     1   831.40 869.40
    #> - msrp            1   832.05 870.05
    #> - tot_tr          1   832.12 870.12
    #> - tot_open_tr     1   832.40 870.40
    #> - vehicle_year    1   832.95 870.95
    #> - tot_rev_line    1   833.09 871.09
    #> <none>                831.27 871.27
    #> - tot_income      1   833.94 871.94
    #> - vehicle_make    1   834.31 872.31
    #> - down_pyt        1   834.90 872.90
    #> - loan_term       1   835.25 873.25
    #> + application_id  1   831.27 873.27
    #> - tot_rev_tr      1   836.29 874.29
    #> - veh_mileage     1   836.68 874.68
    #> - loan_amt        1   836.72 874.72
    #> - age_oldest_tr   1   837.63 875.63
    #> - tot_derog       1   838.33 876.33
    #> - tot_rev_debt    1   839.34 877.34
    #> - rev_util        1   844.23 882.23
    #> - ltv             1   848.17 886.17
    #> - fico_score      1   853.98 891.98
    #>
    #> Step:  AIC=869.4
    #> bad_ind ~ vehicle_year + vehicle_make + tot_derog + tot_tr +
    #>     age_oldest_tr + tot_open_tr + tot_rev_tr + tot_rev_debt +
    #>     tot_rev_line + rev_util + fico_score + msrp + down_pyt +
    #>     loan_term + loan_amt + ltv + tot_income + veh_mileage
    #>
    #>                  Df Deviance    AIC
    #> - tot_tr          1   832.30 868.30
    #> - tot_open_tr     1   832.56 868.56
    #> - msrp            1   832.67 868.67
    #> - vehicle_year    1   833.01 869.01
    #> - tot_rev_line    1   833.23 869.23
    #> <none>                831.40 869.40
    #> - tot_income      1   834.19 870.19
    #> - vehicle_make    1   834.44 870.44
    #> - down_pyt        1   835.01 871.01
    #> + purch_price     1   831.27 871.27
    #> + application_id  1   831.40 871.40
    #> - loan_term       1   835.48 871.48
    #> - tot_rev_tr      1   836.36 872.36
    #> - veh_mileage     1   836.91 872.91
    #> - age_oldest_tr   1   837.75 873.75
    #> - tot_derog       1   838.40 874.40
    #> - loan_amt        1   838.49 874.49
    #> - tot_rev_debt    1   839.57 875.57
    #> - rev_util        1   844.38 880.38
    #> - ltv             1   848.45 884.45
    #> - fico_score      1   854.27 890.27
    #>
    #> Step:  AIC=868.3
    #> bad_ind ~ vehicle_year + vehicle_make + tot_derog + age_oldest_tr +
    #>     tot_open_tr + tot_rev_tr + tot_rev_debt + tot_rev_line +
    #>     rev_util + fico_score + msrp + down_pyt + loan_term + loan_amt +
    #>     ltv + tot_income + veh_mileage
    #>
    #>                  Df Deviance    AIC
    #> - tot_open_tr     1   833.16 867.16
    #> - msrp            1   833.62 867.62
    #> - vehicle_year    1   833.94 867.94
    #> <none>                832.30 868.30
    #> - vehicle_make    1   835.20 869.20
    #> + tot_tr          1   831.40 869.40
    #> - tot_income      1   835.52 869.52
    #> - tot_rev_line    1   835.68 869.68
    #> - down_pyt        1   835.93 869.93
    #> + purch_price     1   832.12 870.12
    #> + application_id  1   832.30 870.30
    #> - loan_term       1   836.40 870.40
    #> - tot_rev_tr      1   837.03 871.03
    #> - veh_mileage     1   837.89 871.89
    #> - tot_derog       1   838.45 872.45
    #> - loan_amt        1   839.30 873.30
    #> - age_oldest_tr   1   840.67 874.67
    #> - tot_rev_debt    1   840.80 874.80
    #> - rev_util        1   845.37 879.37
    #> - ltv             1   849.58 883.58
    #> - fico_score      1   854.62 888.62
    #>
    #> Step:  AIC=867.16
    #> bad_ind ~ vehicle_year + vehicle_make + tot_derog + age_oldest_tr +
    #>     tot_rev_tr + tot_rev_debt + tot_rev_line + rev_util + fico_score +
    #>     msrp + down_pyt + loan_term + loan_amt + ltv + tot_income +
    #>     veh_mileage
    #>
    #>                  Df Deviance    AIC
    #> - msrp            1   834.49 866.49
    #> - vehicle_year    1   835.01 867.01
    #> <none>                833.16 867.16
    #> - tot_income      1   836.11 868.11
    #> - vehicle_make    1   836.14 868.14
    #> - tot_rev_line    1   836.20 868.20
    #> + tot_open_tr     1   832.30 868.30
    #> + tot_tr          1   832.56 868.56
    #> - down_pyt        1   836.77 868.77
    #> + purch_price     1   832.96 868.96
    #> - tot_rev_tr      1   837.03 869.03
    #> + application_id  1   833.16 869.16
    #> - loan_term       1   837.25 869.25
    #> - veh_mileage     1   838.82 870.82
    #> - tot_derog       1   839.20 871.20
    #> - loan_amt        1   839.94 871.94
    #> - tot_rev_debt    1   841.17 873.17
    #> - age_oldest_tr   1   841.29 873.29
    #> - rev_util        1   847.28 879.28
    #> - ltv             1   850.90 882.90
    #> - fico_score      1   855.29 887.29
    #>
    #> Step:  AIC=866.49
    #> bad_ind ~ vehicle_year + vehicle_make + tot_derog + age_oldest_tr +
    #>     tot_rev_tr + tot_rev_debt + tot_rev_line + rev_util + fico_score +
    #>     down_pyt + loan_term + loan_amt + ltv + tot_income + veh_mileage
    #>
    #>                  Df Deviance    AIC
    #> - vehicle_year    1   835.55 865.55
    #> <none>                834.49 866.49
    #> + msrp            1   833.16 867.16
    #> + tot_open_tr     1   833.62 867.62
    #> - vehicle_make    1   837.66 867.66
    #> - tot_rev_line    1   837.67 867.67
    #> - tot_income      1   837.68 867.68
    #> + purch_price     1   833.71 867.71
    #> + tot_tr          1   833.85 867.85
    #> - tot_rev_tr      1   838.25 868.25
    #> + application_id  1   834.49 868.49
    #> - down_pyt        1   838.76 868.76
    #> - loan_term       1   839.15 869.15
    #> - veh_mileage     1   840.23 870.23
    #> - tot_derog       1   840.24 870.24
    #> - age_oldest_tr   1   842.58 872.58
    #> - tot_rev_debt    1   842.89 872.89
    #> - loan_amt        1   843.20 873.20
    #> - rev_util        1   848.45 878.45
    #> - ltv             1   851.91 881.91
    #> - fico_score      1   857.15 887.15
    #>
    #> Step:  AIC=865.55
    #> bad_ind ~ vehicle_make + tot_derog + age_oldest_tr + tot_rev_tr +
    #>     tot_rev_debt + tot_rev_line + rev_util + fico_score + down_pyt +
    #>     loan_term + loan_amt + ltv + tot_income + veh_mileage
    #>
    #>                  Df Deviance    AIC
    #> <none>                835.55 865.55
    #> + vehicle_year    1   834.49 866.49
    #> + tot_open_tr     1   834.51 866.51
    #> - vehicle_make    1   838.58 866.58
    #> - tot_rev_line    1   838.60 866.60
    #> - tot_income      1   838.75 866.75
    #> + tot_tr          1   834.93 866.93
    #> + msrp            1   835.01 867.01
    #> + purch_price     1   835.15 867.15
    #> - tot_rev_tr      1   839.49 867.49
    #> + application_id  1   835.55 867.55
    #> - down_pyt        1   839.62 867.62
    #> - loan_term       1   840.07 868.07
    #> - veh_mileage     1   840.39 868.39
    #> - tot_derog       1   841.35 869.35
    #> - loan_amt        1   843.51 871.51
    #> - age_oldest_tr   1   843.60 871.60
    #> - tot_rev_debt    1   843.94 871.94
    #> - rev_util        1   849.68 877.68
    #> - ltv             1   853.00 881.00
    #> - fico_score      1   857.67 885.67

    #Step-by-Step  Modeling

    ##step 1: Import Data
    accepts <- read.csv(system.file("extdata", "accepts.csv", package = "autoScorecard" ))

    ##step 2: Data Description
    data_detect1 <- data_detect( df = accepts, key_var = c("application_id","account_number") ,
                        y_var = "bad_ind" )

    head(data_detect1)
    #>         variable     class nrow missing_rate unique_count identical_rate min
    #> 1   vehicle_year   integer 5845 0.0001710864           21    0.356372968   0
    #> 2   vehicle_make character 5845 0.0000000000          155    0.190248075  NA
    #> 3 bankruptcy_ind character 5845 0.0000000000            3    0.886227545  NA
    #> 4      tot_derog   integer 5845 0.0364414029           30    0.488793841   0
    #> 5         tot_tr   integer 5845 0.0364414029           68    0.039349872   0
    #> 6  age_oldest_tr   integer 5845 0.0369546621          461    0.007869974   1
    #>    p25  p50  p75  max        mean         sd        cv
    #> 1 1997 1999 2000 9999 1901.793634 488.024392 0.2566127
    #> 2   NA   NA   NA   NA          NA         NA        NA
    #> 3   NA   NA   NA   NA          NA         NA        NA
    #> 4    0    0    2   32    1.910156   3.274744 1.7143852
    #> 5    9   16   24   77   17.084695  10.814056 0.6329675
    #> 6   78  137  205  588  154.304317  99.940540 0.6476847

    ##step 3: Data Filtering
    feature<- filter_var( df = accepts , key_var = c("application_id","account_number"), y_var = "bad_ind" ,
                          missing_rate = 0 , single_var_rate = 1 ,
                          iv_set = 0.02, char_to_number = TRUE , na.omit = TRUE )

    ##step 4: Select Training Sample
    d = sort( sample( nrow( feature ), nrow( feature )*0.7))
    train <- feature[d,]
    test  <- feature[-d,]

    ##step 5: Data Distribution Comparison
    comparison_two_data( df1 = train , df2 = test ,key_var = c("application_id","account_number"), y_var="bad_ind")

    ##step 6: Automatic binning of data
    ##Decision Tree Binning
    treebins_train <- bins_tree(df= train, key_var= c("application_id","account_number"), y_var="bad_ind",
                                max_depth=3, p=0.1)

    ##Equal Frequency Binning
    binning_eqfreq1 <- binning_eqfreq( df= train, feat= 'tot_derog', label = 'bad_ind', nbins = 3)

    ##Equal Width Binning
    binning_eqwid1 <- binning_eqwid( df = train, feat = 'tot_derog', label = 'bad_ind', nbins = 3)

    ##The K-means Binning
    binning_kmean1 <- binning_kmean( df = train, feat= 'loan_term', label = 'bad_ind', nbins = 3)

    ##Chi-Square Binning
    bins_chim1 <- bins_chim( df = train[1:200,], key_var = "application_id", y_var = "bad_ind" , alpha=0.1 )

    ##Unsupervised Automatic Binning Function
    f_1 <-bins_unsupervised(  df = feature[1:200,] , id="application_id" , label="bad_ind" ,
                              methods = c("k_means", "equal_width","equal_freq")  ,  bin_nums=5  )

    ##The Combination of Two Bins Produces the Best Binning Result
    best1 <- best_iv( df=f_1 ,bin=c('bins') , method = c('method') ,variable= c( "variable" ) ,label_iv='miv'  )
    vs1   <- best_vs( df1 = treebins_train[,-c(3)], df2 = best1[,-c(1:2)] ,variable="variable" ,label_iv='miv' )

    ##step 7: Replace Feature Data by Binning Template
    woe_train <- rep_woe(  df= train ,key_var="application_id", y_var="bad_ind"  , tool=treebins_train ,
                           var_label= "variable",col_woe='woe', lower='lower' ,upper ='upper'  )

    woe_test <-  rep_woe(  df= test ,key_var="application_id", y_var="bad_ind"  , tool=treebins_train ,
                           var_label= "variable",col_woe='woe', lower='lower' ,upper ='upper'  )

    ##step 8: Modeling
    lg<-stats::glm(bad_ind~.,family=stats::binomial(link='logit'),data= woe_train)

    lg_both<-stats::step(lg,direction = "both")
    #> Start:  AIC=2478.97
    #> bad_ind ~ application_id + account_number + vehicle_year + vehicle_make +
    #>     tot_derog + tot_tr + age_oldest_tr + tot_open_tr + tot_rev_tr +
    #>     tot_rev_debt + tot_rev_line + rev_util + fico_score + purch_price +
    #>     msrp + down_pyt + loan_term + loan_amt + ltv + tot_income +
    #>     veh_mileage
    #>
    #>                  Df Deviance    AIC
    #> - account_number  1   2435.0 2477.0
    #> - vehicle_make    1   2435.0 2477.0
    #> - tot_rev_tr      1   2435.0 2477.0
    #> - msrp            1   2435.3 2477.3
    #> - tot_income      1   2436.3 2478.3
    #> - application_id  1   2436.9 2478.9
    #> <none>                2435.0 2479.0
    #> - tot_tr          1   2437.0 2479.0
    #> - age_oldest_tr   1   2437.4 2479.4
    #> - tot_rev_debt    1   2437.6 2479.6
    #> - tot_open_tr     1   2438.4 2480.4
    #> - tot_rev_line    1   2438.5 2480.5
    #> - loan_term       1   2438.6 2480.6
    #> - purch_price     1   2439.1 2481.1
    #> - loan_amt        1   2440.4 2482.4
    #> - rev_util        1   2441.5 2483.5
    #> - tot_derog       1   2442.1 2484.1
    #> - vehicle_year    1   2442.4 2484.4
    #> - down_pyt        1   2443.7 2485.7
    #> - veh_mileage     1   2451.1 2493.1
    #> - ltv             1   2475.7 2517.7
    #> - fico_score      1   2513.7 2555.7
    #>
    #> Step:  AIC=2476.98
    #> bad_ind ~ application_id + vehicle_year + vehicle_make + tot_derog +
    #>     tot_tr + age_oldest_tr + tot_open_tr + tot_rev_tr + tot_rev_debt +
    #>     tot_rev_line + rev_util + fico_score + purch_price + msrp +
    #>     down_pyt + loan_term + loan_amt + ltv + tot_income + veh_mileage
    #>
    #>                  Df Deviance    AIC
    #> - vehicle_make    1   2435.0 2475.0
    #> - tot_rev_tr      1   2435.0 2475.0
    #> - msrp            1   2435.3 2475.3
    #> - tot_income      1   2436.3 2476.3
    #> - application_id  1   2436.9 2476.9
    #> <none>                2435.0 2477.0
    #> - tot_tr          1   2437.0 2477.0
    #> - age_oldest_tr   1   2437.4 2477.4
    #> - tot_rev_debt    1   2437.6 2477.6
    #> - tot_open_tr     1   2438.4 2478.4
    #> - tot_rev_line    1   2438.6 2478.6
    #> - loan_term       1   2438.7 2478.7
    #> + account_number  1   2435.0 2479.0
    #> - purch_price     1   2439.2 2479.2
    #> - loan_amt        1   2440.5 2480.5
    #> - rev_util        1   2441.6 2481.6
    #> - tot_derog       1   2442.1 2482.1
    #> - vehicle_year    1   2442.4 2482.4
    #> - down_pyt        1   2443.7 2483.7
    #> - veh_mileage     1   2451.1 2491.1
    #> - ltv             1   2475.8 2515.8
    #> - fico_score      1   2513.9 2553.9
    #>
    #> Step:  AIC=2475
    #> bad_ind ~ application_id + vehicle_year + tot_derog + tot_tr +
    #>     age_oldest_tr + tot_open_tr + tot_rev_tr + tot_rev_debt +
    #>     tot_rev_line + rev_util + fico_score + purch_price + msrp +
    #>     down_pyt + loan_term + loan_amt + ltv + tot_income + veh_mileage
    #>
    #>                  Df Deviance    AIC
    #> - tot_rev_tr      1   2435.0 2473.0
    #> - msrp            1   2435.3 2473.3
    #> - tot_income      1   2436.3 2474.3
    #> - application_id  1   2437.0 2475.0
    #> <none>                2435.0 2475.0
    #> - tot_tr          1   2437.0 2475.0
    #> - age_oldest_tr   1   2437.4 2475.4
    #> - tot_rev_debt    1   2437.6 2475.6
    #> - tot_open_tr     1   2438.5 2476.5
    #> - tot_rev_line    1   2438.6 2476.6
    #> - loan_term       1   2438.7 2476.7
    #> + vehicle_make    1   2435.0 2477.0
    #> + account_number  1   2435.0 2477.0
    #> - purch_price     1   2439.2 2477.2
    #> - loan_amt        1   2440.5 2478.5
    #> - rev_util        1   2441.6 2479.6
    #> - tot_derog       1   2442.1 2480.1
    #> - vehicle_year    1   2442.6 2480.6
    #> - down_pyt        1   2443.7 2481.7
    #> - veh_mileage     1   2451.2 2489.2
    #> - ltv             1   2476.1 2514.1
    #> - fico_score      1   2514.1 2552.1
    #>
    #> Step:  AIC=2473.04
    #> bad_ind ~ application_id + vehicle_year + tot_derog + tot_tr +
    #>     age_oldest_tr + tot_open_tr + tot_rev_debt + tot_rev_line +
    #>     rev_util + fico_score + purch_price + msrp + down_pyt + loan_term +
    #>     loan_amt + ltv + tot_income + veh_mileage
    #>
    #>                  Df Deviance    AIC
    #> - msrp            1   2435.4 2471.4
    #> - tot_income      1   2436.3 2472.3
    #> - tot_tr          1   2437.0 2473.0
    #> - application_id  1   2437.0 2473.0
    #> <none>                2435.0 2473.0
    #> - age_oldest_tr   1   2437.5 2473.5
    #> - tot_rev_debt    1   2437.7 2473.7
    #> - tot_open_tr     1   2438.6 2474.6
    #> - tot_rev_line    1   2438.7 2474.7
    #> - loan_term       1   2438.8 2474.8
    #> + tot_rev_tr      1   2435.0 2475.0
    #> + vehicle_make    1   2435.0 2475.0
    #> + account_number  1   2435.0 2475.0
    #> - purch_price     1   2439.2 2475.2
    #> - loan_amt        1   2440.5 2476.5
    #> - tot_derog       1   2442.1 2478.1
    #> - rev_util        1   2442.4 2478.4
    #> - vehicle_year    1   2442.6 2478.6
    #> - down_pyt        1   2443.8 2479.8
    #> - veh_mileage     1   2451.2 2487.2
    #> - ltv             1   2476.2 2512.2
    #> - fico_score      1   2515.8 2551.8
    #>
    #> Step:  AIC=2471.39
    #> bad_ind ~ application_id + vehicle_year + tot_derog + tot_tr +
    #>     age_oldest_tr + tot_open_tr + tot_rev_debt + tot_rev_line +
    #>     rev_util + fico_score + purch_price + down_pyt + loan_term +
    #>     loan_amt + ltv + tot_income + veh_mileage
    #>
    #>                  Df Deviance    AIC
    #> - tot_income      1   2436.6 2470.6
    #> - tot_tr          1   2437.3 2471.3
    #> - application_id  1   2437.4 2471.4
    #> <none>                2435.4 2471.4
    #> - age_oldest_tr   1   2437.8 2471.8
    #> - tot_rev_debt    1   2438.0 2472.0
    #> - tot_open_tr     1   2438.9 2472.9
    #> - loan_term       1   2439.0 2473.0
    #> + msrp            1   2435.0 2473.0
    #> - tot_rev_line    1   2439.1 2473.1
    #> - purch_price     1   2439.3 2473.3
    #> + tot_rev_tr      1   2435.3 2473.3
    #> + vehicle_make    1   2435.4 2473.4
    #> + account_number  1   2435.4 2473.4
    #> - loan_amt        1   2440.6 2474.6
    #> - tot_derog       1   2442.5 2476.5
    #> - rev_util        1   2442.7 2476.7
    #> - vehicle_year    1   2443.3 2477.3
    #> - down_pyt        1   2444.3 2478.3
    #> - veh_mileage     1   2451.7 2485.7
    #> - ltv             1   2476.2 2510.2
    #> - fico_score      1   2515.9 2549.9
    #>
    #> Step:  AIC=2470.6
    #> bad_ind ~ application_id + vehicle_year + tot_derog + tot_tr +
    #>     age_oldest_tr + tot_open_tr + tot_rev_debt + tot_rev_line +
    #>     rev_util + fico_score + purch_price + down_pyt + loan_term +
    #>     loan_amt + ltv + veh_mileage
    #>
    #>                  Df Deviance    AIC
    #> <none>                2436.6 2470.6
    #> - application_id  1   2438.7 2470.7
    #> - tot_tr          1   2438.8 2470.8
    #> - age_oldest_tr   1   2439.3 2471.3
    #> - tot_rev_debt    1   2439.3 2471.3
    #> + tot_income      1   2435.4 2471.4
    #> - tot_open_tr     1   2440.2 2472.2
    #> - loan_term       1   2440.3 2472.3
    #> + msrp            1   2436.3 2472.3
    #> + tot_rev_tr      1   2436.6 2472.6
    #> + vehicle_make    1   2436.6 2472.6
    #> + account_number  1   2436.6 2472.6
    #> - tot_rev_line    1   2440.8 2472.8
    #> - purch_price     1   2441.0 2473.0
    #> - loan_amt        1   2441.6 2473.6
    #> - tot_derog       1   2443.6 2475.6
    #> - rev_util        1   2443.6 2475.6
    #> - vehicle_year    1   2444.1 2476.1
    #> - down_pyt        1   2445.6 2477.6
    #> - veh_mileage     1   2452.8 2484.8
    #> - ltv             1   2478.4 2510.4
    #> - fico_score      1   2517.9 2549.9

    logit<-stats::predict(lg_both,woe_test)
    woe_test$lg_both_p<-exp(logit)/(1+exp(logit))

    pred_both <- ROCR::prediction(woe_test$lg_both_p, woe_test$bad_ind)
    perf_both <- ROCR::performance(pred_both,"tpr","fpr")

    ##step 9: Correlation Diagram
    coe = (lg_both$coefficients)
    cor1<-stats::cor(  Xvar_df<- woe_train[-which(colnames(feature) %in% c("application_id","account_number","bad_ind"))])

    corrplot::corrplot(cor1)
    corrplot::corrplot(cor1,method = "number")

    ##step 10: Manually Input Parameters to Generate Scorecards
    ##scorecard
    Score<-noauto_scorecard( bins_card= woe_test, fit= lg_both,bins_woe=treebins_train  ,points0 = 600,
                             odds0 = 1/20, pdo = 50 ,k = 2)
    Score_2<-noauto_scorecard( bins_card= woe_train, fit= lg_both,bins_woe=treebins_train  ,points0 = 600,
                               odds0 = 1/20, pdo = 50 ,k = 3)

    ##scorecard2
    Score<-noauto_scorecard2( bins_card= woe_test, fit= lg_both,bins_woe=treebins_train  ,points0 = 600,
                              odds0 = 1/20, pdo = 50 ,k = 2)
    Score_2<-noauto_scorecard2( bins_card= woe_train, fit= lg_both,bins_woe=treebins_train  ,points0 = 600,
                                odds0 = 1/20, pdo = 50 ,k = 3)

    ##step 11: PSI
    data_train <- Score_2$data_score
    data_test <- Score$data_score
    psi_1<-psi_cal( df_train = data_train , df_test = data_test,feat='Score',label='bad_ind' , nbins=10)

    ##step 12: Data Painter
    plot_board( label= woe_test$bad_ind, pred = woe_test$lg_both_p   )