基于人口统计学的推荐系统

2025 年 2 月 3 日 | 阅读 9 分钟

一种称为“基于人口统计的推荐系统”的推荐引擎,通过用户的人口统计数据来提供产品建议。为了预测偏好和行为,这些系统根据年龄、性别、就业、教育水平和地理位置等变量对用户进行分类。通过了解人口统计因素,这些系统能够定制建议,以更好地满足不同用户群体的需求和偏好。

一种称为“基于人口统计的推荐系统”的推荐引擎,通过用户的人口统计数据来提供产品建议。为了预测偏好和行为,这些系统根据年龄、性别、就业、教育水平和地理位置等变量对用户进行分类。通过了解人口统计因素,这些系统能够定制建议,以更好地满足不同用户群体的需求和偏好。

代码

现在,我们将创建一个基于人口统计的推荐系统,用于向用户推荐服务。

导入库

读取数据集

输出

Demographic-Based Recommender Systems

数据清洗与处理

输出

Demographic-Based Recommender Systems

输出

Demographic-Based Recommender Systems
Demographic-Based Recommender Systems

输出

Demographic-Based Recommender Systems

据我们所知,数据库中关于用户的信息仅有服务选择数据。我们需要服务选择数据而不是用户数据,因此我们可以使用这些数据来构建协同过滤推荐系统,但不能用于我们的人口统计推荐系统。

正如我们所见,有些记录没有选择任何服务,但 `ind_nomina_ult1` 和 `ind_nom_pens_ult1` 字段的值为 null。其他记录选择了服务,但这两个字段的值为 null。当转换为标签格式时,我们将删除没有选择任何服务选项的记录。

输出

Demographic-Based Recommender Systems

编码目标

为了提供建议,我们必须将独热编码向量(目标)转换为标签编码。编码后,我们可以通过使用 `sklearn` 的 `label encoder` 对象来快速获取服务名称。

输出

Demographic-Based Recommender Systems

输出

Demographic-Based Recommender Systems

我们希望包含在数据集中的三个列是 `user_id`、`item_id` 和 `rating`。我们有 `user_id` 和 `item_id`,因为我们正在推荐一项银行服务,但我们不确定 `rating`。因此,我们将使用服务选择率(衡量客户满意度的指标)来代替评分。

首先,我们将计算一个用户选择一项服务的次数。然后,我们将用户在银行服务期间选择的总服务次数除以每个用户选择的服务数量。其范围从 0 到 1。

输出

Demographic-Based Recommender Systems

输出

Demographic-Based Recommender Systems

合并成单个文件

输出

Demographic-Based Recommender Systems

我们将正确地表示数据。

输出

Demographic-Based Recommender Systems

基于人口统计的推荐系统

通过向量化数据,我们将利用这些特征来向相似或具有相似特征的用户推荐服务。

正如我们在空值处理部分之前所涵盖的那样,我们将首先删除没有任何用户信息的条目。

输出

Demographic-Based Recommender Systems

输出

Demographic-Based Recommender Systems

我们需要将列从分类格式转换为数值格式,以便我们能够计算相似度。

输出

Demographic-Based Recommender Systems

在此,我们注意到

  • 我们需要将 `-age` 特征从 `object` 数据类型转换为 `uint8`。
  • 我们将合并 `-indrel_1mes` 特征的多个重复标签,使它们成为一个单一标签,因为它们之间存在细微差异。
  • `cod_prov` 已经有一个数值编码,所以可以删除 `-nomprov`。

输出

Demographic-Based Recommender Systems

输出

Demographic-Based Recommender Systems

输出

Demographic-Based Recommender Systems

假设我们有 'N' 个用户。我们将选择每个用户最近的一次交易。在最近一次交易日期之前,我们将计算每项服务完成的交易次数,并将其记录在数据集中。

输出

Demographic-Based Recommender Systems

输出

Demographic-Based Recommender Systems

我们将用户 ID 和选择的服务作为索引,并对索引进行排序,以便能够极快地完成过滤,因为我们将检索与 `user_data` 数据框中的条目相关的先前记录。

输出

Demographic-Based Recommender Systems

输出

Demographic-Based Recommender Systems

输出

Demographic-Based Recommender Systems

现在我们将对数据集进行缩放。

现在我们将进行降维

输出

Demographic-Based Recommender Systems

检查推荐

让我们看看基于年龄的推荐。

输出

Demographic-Based Recommender Systems

输出

Demographic-Based Recommender Systems

输出

Demographic-Based Recommender Systems