Вероятность того, что кому-то понравится изображение

11

У меня следующая проблема:
- У нас есть набор из N человек
- У нас есть набор из K изображений
- Каждый человек оценивает определенное количество изображений. Человеку может нравиться или не нравиться изображение (это единственные две возможности). - Проблема в том, как рассчитать вероятность того, что кому-то нравится определенный образ.

Я приведу пример, представляющий мою интуицию.
N = 4
K = 5
+ означает, что человеку нравится изображение
- означает, что человеку не нравится изображение
0 означает, что человека не спрашивали об изображении, и это значение должно быть предсказано

x 1 2 3 4 5    
1 + - 0 0 +   
2 + - + 0 +  
3 - - + + 0  
4 - 0 - - -

Человеку 1, вероятно, понравится изображение 3, потому что у человека 2 схожие предпочтения, а человеку 2 - изображение 3.
Человеку 4, вероятно, не понравится изображение 2, потому что никто другой не любит его, и, кроме того, человеку 4 не нравятся большинство изображений.

Есть ли какой-нибудь известный метод, который можно использовать для расчета такой вероятности?

Томек Тарчинский
источник
Учитывая мой ограниченный опыт, я не могу дать точного ответа. Тем не менее, я считаю, что вы можете использовать панель данных (поскольку вы рассматриваете в своем примере различия между людьми и между людьми) подход с Logit. Может быть, другие могут уточнить это ...
teucer 20.10.10
Ваш маленький пример очень полезен, но я предполагаю, что ваш реальный набор данных больше. Насколько больше, т. Е. (Примерно) насколько велики ваши настоящие N и k ?
OneStop
N и k могут быть огромными, но вычислительная мощность не является проблемой.
Томек Тарчински

Ответы:

6

Это похоже на хорошую проблему для машинного обучения, поэтому я сосредоточусь на этой группе методов.

Первая и самая очевидная идея - алгоритм kNN. Там вы сначала рассчитываете сходство среди зрителей, а затем прогнозируете недостающие голоса со средним количеством голосов на этой картине, поданных подобными пользователями. Подробности смотрите в Википедии .

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

Наконец, вы можете реструктурировать задачу в виде простой задачи классификации, скажем, сделать объект из каждого нуля в матрице и попытаться придумать некоторые приемлемые дескрипторы (например, средний голос зрителя, средний голос за изображение, голос за большинство, второй по величине, .. аналогичное средство просмотра, то же самое с изображением, возможно, некоторые внешние данные (средний оттенок изображения, возраст избирателя и т. д.). Затем попробуйте различные классификаторы по этим данным (SVM, RF, NB, ...).

Есть также несколько более сложных возможностей; для обзора вы можете найти решения для призовой задачи Netflix (которая была похожей проблемой).


источник