I have an imbalanced dataset with the items that I want to sample by which are not labels, but other features of the data.  I would like to keep one of the classes at 50% with the other classes (5) divided between the remaining 50% so 10% chance of being chosen per class.  The number of classes in the dataset (c) is:
Counter({'-1': 7557, '0': 3958, '2': 1306, '3': 1144, '4': 861, '1': 323})

with the -1 the one that I want to sample with 50% probability.  I made a weighted random sampler to give me equal oversampling like this:
weight = {d : 1. / c[d] for d in c}
samples_weight = np.array([[weight[str(item[4])] for item in trainDS]])
sampler = WeightedRandomSampler(sw, len(sw), replacement=True)

which seems to give me equal proportions of each one at approximately 20%.  I’m having trouble understanding what my weight variable should be in order to get a 50/10/10/10/10/10 split.  In the docs 1 it just says that weights should be “a sequence of weights, not necessary summing up to one”, which isn’t super helpful on what it actually should be.
How should I adjust it to get that split?