Как сократить и использовать параметр сложности (cp), когда относительная ошибка продолжает падать? - PullRequest
1 голос
/ 12 апреля 2019

Я строю дерево с помощью rpart со следующим кодом:

bsprp <- mean(df.trn$y)
tree.model <- rpart(status ~ .,
                method = "class",
                data = df.trn,
                parms=list(prior=c(1-bsprp,bsprp)),
                cp=-1)

Набор данных выглядит следующим образом:

Classes ‘tbl_df’, ‘tbl’ and 'data.frame':   24180 obs. of  9 variables:
 $ variable1   : Factor w/ 2 levels  
 $ variable2   : Factor w/ 7 levels 
 $ variable3   : Factor w/ 2 levels 
 $ variable4   : num 
 $ variable5   : Factor w/ 6 levels 
 $ variable6   : num  
 $ variable7   : num  
 $ variable8   : num
 $ status      : Factor w/ 2 levels 

Я получаю следующий вывод (для ясности удалены некоторые строки):

Root node error: 12090/24180 = 0.5

n= 24180 

            CP nsplit rel error  xerror      xstd
1   2.3739e-01      0   1.00000 1.01588 0.0064301
2   1.8776e-02      1   0.76261 0.76261 0.0062471
3   9.3741e-03      2   0.74384 0.74384 0.0062163
4   9.1811e-03      5   0.71572 0.72738 0.0061873
5   5.0455e-03      7   0.69735 0.69942 0.0061335
6   4.8525e-03      9   0.68726 0.69553 0.0061256
7   3.8875e-03     12   0.67270 0.68875 0.0061115
8   3.3912e-03     13   0.66882 0.68098 0.0060949
9   2.7295e-03     14   0.66543 0.67684 0.0060858
10  2.0678e-03     15   0.66270 0.67155 0.0060741
20  1.1166e-03     38   0.62680 0.63672 0.0059916
30  8.1059e-04    102   0.55393 0.59686 0.0058852
40  5.2385e-04    214   0.48015 0.52845 0.0056710
50  4.0175e-04    391   0.38668 0.47428 0.0054705
60  2.7571e-04    619   0.30223 0.42754 0.0052729
70  1.2407e-04    847   0.24764 0.38710 0.0050814
80  2.7571e-05    982   0.23590 0.38428 0.0050673
81  2.0678e-05    994   0.23557 0.38420 0.0050669
82  1.6543e-05   1002   0.23540 0.38420 0.0050669
83  0.0000e+00   1007   0.23532 0.38395 0.0050657
84 -1.0000e+00   1505   0.23532 0.38395 0.0050657

Результаты перекрестной проверки

Я читаю во многих блогах, и по стеку стека я должен обрезать дерево в cp с наименьшей относительной ошибкойи с другими наборами данных он снова повышается после нескольких разделений.Что мне здесь делать?

Обновление 18-04-2019:

Казалось, что это как-то связано с «повышением частоты дискретизации». У меня был несколько искаженный набор данных (15% положительных результатов) иЯ увеличил выборку набора данных с помощью Кэрет.

Теперь я уменьшил выборку обучающего набора, и она решена.Вопрос остается ... как это возможно?

...