Добавление шума в набор данных рейтингов с ограничением диапазона для авто-кодера в кадре данных - PullRequest
0 голосов
/ 02 февраля 2019

Цель:

Я разрабатываю стековый шумоподавляющий автокодер, для которого я использую набор данных 1M MovieLens в качестве входных данных.

Проблема:

Характер набора данных имеет оценки от 1 до 5 или 0, т. Е. Если пользователь не оценивал / не смотрел фильм в процессе предварительной обработки.Теперь, когда традиция продолжает добавлять шум в первую очередь для разработки SDA, я не могу установить ограничение, согласно которому добавляемый шум не должен превышать 5 (это самый высокий показатель по шкале).Это приносит мне еще 2 вопроса

  1. Должен ли шум быть в долях?например, если * AR = 3, то NR = 3,15?
  2. Или их можно заменить на целое число в диапазоне?если AR = 5, то NR = 2

Что должно работать или правильно?

* AR = фактический рейтинг
* NR = уровень шума

Trial 'n' Error

вот заголовок набора данных:

data_preprocessed.head()

Dtype это float, так как NaN имеет тип float.

   0     1     2     3     4     5     6     7     8     9     ...   3704  \
0   5.0   0.0   0.0   0.0   0.0   0.0   0.0   0.0   0.0   0.0  ...    0.0   
1   0.0   0.0   0.0   0.0   0.0   0.0   0.0   0.0   0.0   0.0  ...    0.0   
2   0.0   0.0   0.0   0.0   0.0   0.0   0.0   0.0   0.0   0.0  ...    0.0   
3   0.0   0.0   0.0   0.0   0.0   0.0   0.0   0.0   0.0   0.0  ...    0.0   
4   0.0   0.0   0.0   0.0   0.0   2.0   0.0   0.0   0.0   0.0  ...    0.0 

Теперь я попробовал здесь на примере набора данных;случайным образом выбрать записи, чтобы добавить шум, однако вместо этого изменяется вся запись.

df = pd.DataFrame({'A': [1, 2, 3, 4, 5, 6], 'B': [11, 12, 13, 14, 15, 16]})
df

   A   B
0  1  11
1  2  12
2  3  13
3  4  14
4  5  15
5  6  16

Здесь, если вы видите, что это работает с записями полностью.

dfUpdate = df.sample(3)
df.update(dfUpdate.applymap(lambda x: pd.np.random.randint(1, 5)))
df
    A     B
0  1.0  11.0
1  1.0   4.0
2  4.0   1.0
3  4.0  14.0
4  1.0   1.0
5  6.0  16.0

I ожидайте что-то вроде этого: где Cols и Rows выбираются случайным образом, а не записываются целиком

   A   B
0  1  5
1  2  12
2  6  13
3  4  7
4  5  10
5  8  16
...