Случайный лес для больших данных - PullRequest
0 голосов
/ 15 апреля 2020

Я попытался использовать пакет rfsr c для массивного набора данных.

Я получил AU C: NaN Частота ошибок: 0, 0, 0

Кроме того, получил предупреждающие сообщения: 1: Длина (x) * Длина (y): NA получены от целочисленное переполнение 2: по длине (x) * length (y): NA, полученные при целочисленном переполнении

Традиционный случайный лес не смог обработать данные. Мне было интересно, если бы вы могли дать мне некоторое представление по этим вопросам. Я ценю ваше время. Берегите себя!

Мой код:

 str(df)
'data.frame':   250000 obs. of  32 variables:
 $ DER_mass_MMC               : num  138 161 -999 144 176 ...
 $ DER_mass_transverse_met_lep: num  51.7 68.8 162.2 81.4 16.9 ...
 $ DER_mass_vis               : num  97.8 103.2 126 80.9 134.8 ...
 $ DER_pt_h                   : num  27.98 48.146 35.635 0.414 16.405 ...
 $ DER_deltaeta_jet_jet       : num  0.91 -999 -999 -999 -999 ...
 $ DER_mass_jet_jet           : num  125 -999 -999 -999 -999 ...
 $ DER_prodeta_jet_jet        : num  2.67 -999 -999 -999 -999 ...
 $ DER_deltar_tau_lep         : num  3.06 3.47 3.15 3.31 3.89 ...
 $ DER_pt_tot                 : num  41.928 2.078 9.336 0.414 16.405 ...
 $ DER_sum_pt                 : num  198 125 198 76 58 ...
 $ DER_pt_ratio_lep_tau       : num  1.582 0.879 3.776 2.354 1.056 ...
 $ DER_met_phi_centrality     : num  1.4 1.41 1.41 -1.28 -1.38 ...
 $ DER_lep_eta_centrality     : num  0.2 -999 -999 -999 -999 0.975 0.791 -999 -999 -999 ...
 $ PRI_tau_pt                 : num  32.6 42 32.2 22.6 28.2 ...
 $ PRI_tau_eta                : num  1.017 2.039 -0.705 -1.655 -2.197 ...
 $ PRI_tau_phi                : num  0.381 -3.011 -2.093 0.01 -2.231 ...
 $ PRI_lep_pt                 : num  51.6 36.9 121.4 53.3 29.8 ...
 $ PRI_lep_eta                : num  2.273 0.501 -0.953 -0.522 0.798 ...
 $ PRI_lep_phi                : num  -2.414 0.103 1.052 -3.1 1.569 ...
 $ PRI_met                    : num  16.82 44.7 54.28 31.08 2.72 ...
 $ PRI_met_phi                : num  -0.277 -1.916 -2.186 0.06 -0.871 ...
 $ PRI_met_sumet              : num  258.7 164.5 260.4 86.1 53.1 ...
 $ PRI_jet_num                : int  2 1 1 0 0 3 2 1 0 1 ...
 $ PRI_jet_leading_pt         : num  67.4 46.2 44.3 -999 -999 ...
 $ PRI_jet_leading_eta        : num  2.15 0.725 2.053 -999 -999 ...
 $ PRI_jet_leading_phi        : num  0.444 1.158 -2.028 -999 -999 ...
 $ PRI_jet_subleading_pt      : num  46.1 -999 -999 -999 -999 ...
 $ PRI_jet_subleading_eta     : num  1.24 -999 -999 -999 -999 0.224 0.131 -999 -999 -999 ...
 $ PRI_jet_subleading_phi     : num  -2.48 -999 -999 -999 -999 ...
 $ PRI_jet_all_pt             : num  113.5 46.2 44.3 0 0 ...
 $ Weight                     : num  0.00265 2.23358 2.34739 5.44638 6.24533 ...
 $ Label                      : Factor w/ 2 levels "b","s": 2 1 1 1 1 1 2 2 1 2 ...



# Random forest Using rfsrc
> start_time <- Sys.time()
> RFSRC<-rfsrc(Label~.,data=df)
> end_time <- Sys.time()
> end_time - start_time
Time difference of 11.99594 mins
> print(RFSRC)
                         Sample size: 250000
           Frequency of class labels: 164333, 85667
                     Number of trees: 1000
           Forest terminal node size: 1
       Average no. of terminal nodes: 3298.9
No. of variables tried at each split: 6
              Total no. of variables: 31
       Resampling used to grow trees: swor
    Resample size used to grow trees: 158000
                            Analysis: RF-C
                              Family: class
                      Splitting rule: gini *random*
       Number of random split points: 10
              Normalized brier score: 0.75 
                                 AUC: NaN 
                          Error rate: 0, 0, 0

Confusion matrix:

          predicted
  observed      b     s class.error
         b 164333     0           0
         s      4 85663           0

    Overall error rate: 0% 
Warning messages:
1: In length(x) * length(y) : NAs produced by integer overflow
2: In length(x) * length(y) : NAs produced by integer overflow

# Traditional random forest
> start_time <- Sys.time()
> rf <-randomForest(Label~.,data=df)
Error: cannot allocate vector of size 1.9 Gb
> rf <-randomForest(Label~.,data=df)
Error: cannot allocate vector of size 1.9 Gb
...