Как я могу предложить фильмы, основанные на чьих-то ранее просмотренных фильмах? - PullRequest
1 голос
/ 16 января 2020

Для упражнения по машинному обучению, над которым я работаю, мне дан набор данных, в котором каждая строка содержит следующие характеристики:

  • имя человека,
  • возраст,
  • пол и
  • мов ie, которые они смотрели.

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

Дело в том, что мне не дают набор функций для фильмов. Мне дают только набор данных, описанный выше.

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

После того, как я создам набор функций, я преобразую каждый набор функций mov ie в вложение (вектор). Затем я буду использовать библиотеку сопоставления сходства (например, Spotify Annoy ) для поиска обратных вложений похожих фильмов.

Часть, в которой я застрял, - это то, как я могу использовать набор данных для генерации набора функций для каждого движения ie.

1 Ответ

0 голосов
/ 16 января 2020

Представьте, что у вас есть такой стол:

+-------+-----+--------+---------------------+
| Name  | Age | Gender |        Movie        |
+-------+-----+--------+---------------------+
| John  |  23 | Male   | John the Ripper     |
| Luke  |  18 | Male   | The Star Wars       |
| Ann   |  18 | Female | Mr. Nobody          |
| Alice |  12 | Female | Alice in Wonderland |
| Bruce |  64 | Male   | Armageddon          |
+-------+-----+--------+---------------------+

I. Прежде всего, вам нужно разделить эту таблицу на две части:

  1. содержит вектор, который содержит Имя , Возраст , Пол столбцы.
  2. цель вектор, который содержит только Mov ie столбец .

II. После этого вы можете закодировать ваши строки в числа:

  1. Столбец Имя будет закодирован в уникальный индекс.
  2. Столбец Возраст не изменится.
  3. Столбец Пол будет закодирован в двоичные значения (0, 1).
  4. Столбец Mov ie будет закодирован в уникальный значения индекса.

Например:

+------+-----+--------+-------+
| Name | Age | Gender | Movie |
+------+-----+--------+-------+
|    0 |  23 |      1 |     3 |
|    1 |  18 |      1 |     2 |
|    2 |  18 |      0 |     4 |
|    3 |  12 |      0 |     1 |
|    4 |  64 |      1 |     0 |
+------+-----+--------+-------+

III. Затем вы можете разделить свой вектор на две части:

  1. Данные поезда для подачи алгоритма машинного обучения ( строки 1: 3 ).
  2. Тестовые данные для контеста ML алгоритм, который вы вводите ( строки 3: 5 ).

Соотношение между этим отдельным набором может отличаться, но обычно набор данных поезда выбирается больше, чем набор тестовых данных.

IV. Иногда вам может понадобиться масштабировать ваши данные.

Например:

+------+--------+--------+-------+
| Name |  Age   | Gender | Movie |
+------+--------+--------+-------+
| 0.0  | 0.3594 |      1 | 0.6   |
| 0.2  | 0.2813 |      1 | 0.4   |
| 0.4  | 0.2813 |      0 | 0.8   |
| 0.6  | 0.1875 |      0 | 0.2   |
| 0.8  | 1.0000 |      1 | 0.0   |
+------+--------+--------+-------+

В этом примере после шагов I-IV вы получите:

feature_train = [[ 0.0, 0.3594, 1 ], [ 0.2, 0.2813, 1 ], [ 0.4, 0.2813, 0 ]]
purpose_train = [ 0.6, 0.4, 0.8 ]
feature_test  = [[ 0.6, 0.1875, 0], [0.8, 1.0000, 1]]
purpose_test  = [[ 0.2, 0.0]]

Вот и все подготовить данные простым способом.

[UDP]

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

...