Создать недостающие значения в наборе данных на основе распределения ZIPF - PullRequest
0 голосов
/ 15 октября 2019

В настоящее время я хочу наблюдать влияние пропущенных значений на мой набор данных. Я заменяю точку данных (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 но все же оно мне не сильно помогло.

Спасибо

...