Я думаю, если я смогу предсказать, понравится ли пользователь предмет или нет, учитывая сходство между пунктами и рейтинг пользователя по элементам.Как предсказать предпочтения пользователей, используя подобие товара?
Я знаю уравнение в совместной аналитической статье на основе рекомендаций, прогнозируемый рейтинг определяется общим рейтингом и сходствами между элементами.
Уравнение:
Мой вопрос,
- Если бы я получил сходства с использованием других подходов (например, на основе содержания подход), могу ли я использовать это уравнение?
- Кроме того, для каждого пользователя у меня есть список любимых предметов, а не фактическое значение рейтингов.
- В этом случае рейтинг пользователя у к пункту 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
Первая матрица является входным и второй - предсказанные значения, они выглядят не близко, что-то не так?