3

Я думаю, если я смогу предсказать, понравится ли пользователь предмет или нет, учитывая сходство между пунктами и рейтинг пользователя по элементам.Как предсказать предпочтения пользователей, используя подобие товара?

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

Уравнение:

enter image description here

http://latex.codecogs.com/gif.latex?r_{u%2Ci}%20%3D%20\bar{r_{i}}%20+%20\frac{\sum%20S_{i%2Cj}%28r_{u%2Cj}-\bar{r_{j}}%29}{\sum%20S_{i%2Cj}}

Мой вопрос,

  • Если бы я получил сходства с использованием других подходов (например, на основе содержания подход), могу ли я использовать это уравнение?
  • Кроме того, для каждого пользователя у меня есть список любимых предметов, а не фактическое значение рейтингов.
  • В этом случае рейтинг пользователя у к пункту J и средний рейтинг пункт J отсутствует. Есть ли лучшие способы или уравнения для решения этой проблемы?

Еще одна проблема, я написал код питона, чтобы проверить приведенное выше уравнение, код

mat = numpy.array([[0, 5, 5, 5, 0], [5, 0, 5, 0, 5], [5, 0, 5, 5, 0], [5, 5, 0, 5, 0]]) 
print mat 

def prediction(u, i): 
    target = mat[u,i] 
    r = numpy.mean(mat[:,i]) 
    a = 0.0 
    b = 0.0 
    for j in range(5): 
     if j != i: 
      simi = 1 - spatial.distance.cosine(mat[:,i], mat[:,j]) 
      dert = mat[u,j] - numpy.mean(mat[:,j]) 
      a += simi * dert 
      b += simi 
    return r + a/b 

for u in range(4): 
    lst = [] 
    for i in range(5): 
     lst.append(str(round(prediction(u, i), 2))) 
    print " ".join(lst) 

В результате:

[[0 5 5 5 0] 
[5 0 5 0 5] 
[5 0 5 5 0] 
[5 5 0 5 0]] 

4.6 2.5 3.16 3.92 0.0 
3.52 1.25 3.52 3.58 2.5 
3.72 3.75 3.72 3.58 2.5 
3.16 2.5 4.6 3.92 0.0 

Первая матрица является входным и второй - предсказанные значения, они выглядят не близко, что-то не так?

ответ

0

Да, вы можете использовать различные функции подобия. Например, сходство по косинусу по рейтингам является общим, но не единственным вариантом. В частности, сходство с использованием фильтрации на основе контента может помочь с разреженным набором данных рейтинга (если у вас относительно плотные метаданные контента для элементов), поскольку вы сопоставляете предпочтения пользователей с меньшим пространством содержимого, а не с большим пространством элементов.

Если у вас есть только список предметов, потребляемых пользователями (но не величина их предпочтений для каждого элемента), возможно, лучший алгоритм. Попробуйте анализ рыночной корзины, например association rule mining.

0

Что вы имеете в виду, это типичная ситуация с неявным рейтингом (т. Е. Пользователи не дают явных оценок для элементов, допустим, у вас есть только симпатии и антипатии). Что касается одобрений, вы можете использовать модели соседства или модели с скрытым коэффициентом. Я предлагаю вам прочитать это paper, в котором предлагается хорошо известное решение проблемы с машинным обучением.

Смежные вопросы