Допустим, у меня есть фрейм данных (df).Для этого примера я просто возьму пример, который выглядит следующим образом:
X1 Binned_X1 Dependent WOE_X1
-236 [-316,67) 1 -0.154412769
-236 [-316,67) 0 -0.154412769
-236 [-316,67) 0 -0.154412769
-236 [-316,67) 0 -0.154412769
-236 [-316,67) 0 -0.154412769
-236 [-316,67) 0 -0.154412769
-236 [-316,67) 0 -0.154412769
320 [244,420) 0 -0.184265732
320 [244,420) 0 -0.184265732
320 [244,420) 0 -0.184265732
320 [244,420) 1 -0.184265732
320 [244,420) 0 -0.184265732
320 [244,420) 0 -0.184265732
320 [244,420) 0 -0.184265732
320 [244,420) 0 -0.184265732
320 [244,420) 1 -0.184265732
320 [244,420) 0 -0.184265732
320 [244,420) 0 -0.184265732
320 [244,420) 0 -0.184265732
320 [244,420) 0 -0.184265732
320 [244,420) 0 -0.184265732
320 [244,420) 0 -0.184265732
320 [244,420) 0 -0.184265732
320 [244,420) 1 -0.184265732
320 [244,420) 0 -0.184265732
320 [244,420) 1 -0.184265732
320 [244,420) 0 -0.184265732
244 [244,420) 0 -0.184265732
244 [244,420) 1 -0.184265732
244 [244,420) 1 -0.184265732
244 [244,420) 0 -0.184265732
244 [244,420) 1 -0.184265732
244 [244,420) 0 -0.184265732
244 [244,420) 0 -0.184265732
244 [244,420) 0 -0.184265732
244 [244,420) 0 -0.184265732
244 [244,420) 1 -0.184265732
244 [244,420) 1 -0.184265732
244 [244,420) 1 -0.184265732
244 [244,420) 0 -0.184265732
244 [244,420) 1 -0.184265732
244 [244,420) 0 -0.184265732
244 [244,420) 0 -0.184265732
244 [244,420) 0 -0.184265732
244 [244,420) 0 -0.184265732
244 [244,420) 0 -0.184265732
244 [244,420) 0 -0.184265732
244 [244,420) 0 -0.184265732
244 [244,420) 0 -0.184265732
244 [244,420) 1 -0.184265732
244 [244,420) 1 -0.184265732
244 [244,420) 0 -0.184265732
для расчета бинов, я использовал cutr :: smart_cut (на случай, если вы хотите знать) и для расчета WOE я использовал InformationValue :: WOE .Теперь, что я хочу сделать, это объединить ячейки, когда разница между значениями WOE меньше определенного числа, для этого примера, скажем, 0.2
Итак, в этом случае (-0.1544-(-0.1842)) = 0.0298
, поэтому я хотел бы, чтобы столбец Binned_X1
сгруппировал оба значения, чтобы это было что-то вроде [-316,67),[244,67)
.И после объединения одного бина снова вычислите WOE.
Если вам интересно, как рассчитывается WOE, формула будет: ln((Relative frecuency of Goods)/(Relative frecuency of Bads))
.Будучи «Товарами» каждые 1 в столбце Dependent
, и «Бадами» каждые 0.
К вашему сведению, в df у нас будет такая таблица:
[-316,67) [244,420)
Local Goods 18 22
Local Bads 54 68
Total Goods 212 212
Total bads 545 545
WOE -0.154412769 -0.184265732
И ввывод у нас будет что-то вроде этой таблицы
[-316,67),[244,420)
Local Goods 40
Local Bads 122
Total Goods 212
Total bads 545
WOE -0.170942071
Может кто-нибудь мне помочь?