У меня есть проблема с корзиной, которую я хотел бы решить в Python, и мне интересно, есть ли у кого-нибудь идеи о лучших подходах (или существующих пакетах). У меня есть население, для которого я хотел бы создать 10 корзин. Население имеет оценку и было разделено на 5 групп.
Моя цель - создать ячейки на основе результатов, чтобы распределение каждой из 5 групп было как можно более детальным и плавным. Например, максимальное распределение для каждой корзины для группы А <20% И отличие от корзины 2 -> корзины 3 должно иметь изменение <+/- 10%. То же самое для группы B .... </p>
Моя идея оптимизации гранулярности заключается в минимизации остатков. Например, создайте равномерное распределение для каждой из групп (т. Е. 10% для каждой группы) и попробуйте несколько различных сокращений, которые минимизируют общую сумму (Actual Bucket% - 10%) с ограничениями, установленными выше. Но на самом деле не знаю, как начать.
Вот пример набора данных.
# intialise data of lists.
data = {'ID':['1111', '1112', '1113', '1114',....],
'Group':[A, A, B, B,....],
'Score':[0.02123,0.03243,0.43543,0.12213,...]}
Вот как будет выглядеть распределение по 5 группам с оценками по оси x и частотой в виде процента от общего числа групп по оси y.