如何根据某人之前看过的电影推荐电影?



对于我正在做的机器学习练习,我得到了一个数据集,其中每一行都包含以下特征:

  • 此人姓名,
  • 年龄
  • 性别,以及
  • 他们看的电影。

我的任务是根据这些功能推荐人们可能喜欢的其他电影。

问题是,我没有获得电影的功能集。我只得到了上面描述的数据集。

我已经知道我需要为电影生成一个功能集。但是,我不知道如何处理这个问题。

创建功能集后,我会将每部电影的功能集转换为嵌入(矢量(。然后,我将使用相似性匹配库(例如Spotify的Annoy(来查找相似电影的返回嵌入。

我陷入困境的部分是如何使用数据集为每部电影生成特征集。

想象一下,你有一个这样的表:

+-------+-----+--------+---------------------+
| 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          |
+-------+-----+--------+---------------------+

我。首先,您需要将此表分为两部分:

  1. 包含名称年龄性别列。
  2. 包含电影列的目的向量。

第二。之后,您可以将字符串编码为数字:

  1. 列名称将被编码为唯一索引。
  2. 列年龄不会更改。
  3. 性别列将被编码为二进制值 (0, 1(。
  4. "电影">列将编码为唯一的索引值。

例如:

+------+-----+--------+-------+
| 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]

完成所有这些步骤后,您应该通过数据来教授您的算法,然后您可以按名称、年龄和性别预测所选电影最喜欢的电影。

最新更新