В настоящее время я хочу наблюдать влияние пропущенных значений на мой набор данных. Я заменяю точку данных (10, 20, 90%) пропущенными значениями и наблюдаю влияние. Эта функция ниже должна заменить определенный процент данных, отсутствующих.
def dropout(df, percent):
# create df copy
mat = df.copy()
# number of values to replace
prop = int(mat.size * percent)
# indices to mask
mask = random.sample(range(mat.size), prop)
# replace with NaN
np.put(mat, mask, [np.NaN]*len(mask))
return mat
Мой вопрос: я хочу заменить отсутствующие значения на основе распределения zipf / power low / long tail. Например, у меня есть набор данных, который содержит 10 столбцов (5 столбцов категориальных данных и 5 столбцов числовых данных). Я хочу заменить некоторые точки данных на 5 столбцов, категорически основанных на законе zipf, столбцы в левой части больше пропущены, чем в правой части.
Я использовал Python для выполнения этой задачи.
Я видел руководство Сципи о распределении zipf по этой ссылке: https://docs.scipy.org/doc/numpy-1.15.0/reference/generated/numpy.random.zipf.html но все же оно мне не сильно помогло.
Спасибо