Создание мошенничества Dataframe
Я буду использовать 10% вероятности случаев мошенничества:
data = pd.DataFrame({'val':[random.randint(0,1000) for _ in range(1000)],
'fraud':list(np.random.binomial(1, 0.1, 1000))})
data.head(10)
[вне]
fraud val
0 0 359
1 0 731
2 0 146
3 0 975
4 0 295
5 0 467
6 0 366
7 1 69
8 0 18
9 0 297
Случаи мошенничества должны быть передискретизированы в 9 раз по сравнению с случаями без мошенничества.
data['weights'] = data.fraud * 9
data['weights'] += 1
Взвешенные образцы
spl = data.sample(100,weights=data.weights)
sum(spl.fraud)
[вне]
45
Случаи мошенничества составляют около 50% от общего числа образцов.