【问题标题】:How to prepare a trainig set for a Machine Learning model for a recommendation system? Any ideas?如何为推荐系统的机器学习模型准备训练集?有任何想法吗?
【发布时间】:2019-05-13 14:04:06
【问题描述】:

我正在构建一个机器学习推荐系统,用于将候选人与职位信息进行匹配。

我有两个数据集。一个包含职位发布,另一个包含候选人。招聘信息最初是从瑞典失业机构以瑞典语检索的。我编写了一个 Python 脚本来将这些招聘信息翻译成英文。每个职位发布都有一个标题和描述,这是从 1 到 20 个句子的任何类型的文本。描述字段包含职责、所需技能以及职位发布的所有其他内容。

另一方面,包含候选人的数据集包含每个候选人的年龄、教育程度、以前的经验、知识和技能。每个候选人最多有六种技能。收集数据集中的所有技能,并且数据集是热编码的,这意味着我为每个可能的技能创建了一个列,并根据用户对技能的了解将其标记为 0 或 1。

现在我需要准备一些数据来训练模型。我已经将候选人分成训练和测试集。我现在必须找到一种方法,以某种方式从职位描述中提取关键字,并将它们与候选人的技能进行比较。从提取和定义关键字到在每个职位发布中交叉检查每个候选人,您是否有任何想法?

任何帮助将不胜感激!

干杯!

【问题讨论】:

  • 对于关键字,您是否已经有一个预先确定的列表或者算法应该“学习”选择这些关键字?我会根据您的需要推荐本教程:datacamp.com/community/tutorials/recommender-systems-python
  • 你好乔丹,感谢您的评论。不,我没有列表,但我认为最好定义一个。我会看一下链接。谢谢。
  • 您好 Jordans,我只是想让您知道,我查看了您发送的链接。它描述了推荐系统,但没有应用学习。总之,谢谢!

标签: python csv machine-learning recommendation-engine


【解决方案1】:

你想做一个推荐模型。

我将假设您拥有目标数据(您知道已关联的候选人和职位发布),因为如果您没有,我看不出您如何做到这一点(至少不是使用机器学习,所有您可以做的是用你的知识来写一个规则(你的大脑有来自你生活经验的数据,但算法没有)。

这可能是一个矩阵分解。我建议您尝试 WNMF(加权非负矩阵分解)模型。

要做到这一点,有 3 个步骤:

尝试在候选特征上嵌入层(每个特征一个)。将这些向量加在一起,这将是潜在空间中候选者的表示。

找到一种方法将您的职位发布转换为相同长度的向量。您可能需要检查 doc2vec 来执行此操作。这是迄今为止最困难的一步,因为在保留信息的同时将文本转换为矢量可能非常复杂。这就是为什么自己构建将每个文档映射到向量的函数也是一个好主意,即使它不是机器学习(文档是否包含“计算机”这个词?它是否需要高经验?知道哪些特征很重要并构建具有这些特征的向量)。

计算候选人和职位发布向量的点积,以获得您的预测。将其与您的目标进行比较(如果候选人与工作相关联,则为 1,否则为 0)。对回归进行尝试,您的预测将与候选人和工作匹配的概率相当。

【讨论】:

  • 我明白你的观点。这大致也是我正在考虑的一种方法。我将尝试使用您建议的工具,看看它是否可以完成这项工作。谢谢!
猜你喜欢
  • 2018-03-25
  • 2017-09-21
  • 2011-03-06
  • 1970-01-01
  • 2021-01-14
  • 1970-01-01
  • 1970-01-01
  • 2017-11-12
  • 2018-07-12
相关资源
最近更新 更多