模仿 Mahout 类系统

数据挖掘 推荐系统 相似 apache-mahout
2022-02-23 16:44:40

我有一个 Excel 格式的数据集,其中包含帐户名称、报告的症状、确定的根本原因以及每一行的月年格式的日期。我正在尝试实现一个类似 mahout 的系统,目的是通过执行基于用户的相似性事情来确定帐户可以报告的可能性症状。从技术上讲,我只是希望将推荐系统调整为确定性系统,以发现帐户可以报告的可能症状。我可以通过帐户获取症状的频率,而不是评级。是否可以使用编程语言或任何其他软件来构建这样的系统?

这是一个例子:

帐户:X症状:AB、AD、AB、AB

帐户:Y 症状:AE、AE、AB、AB、EA

为了这个例子,我们假设所有的日期都是这个月。

O/P:账户:X 症状:AE

在这里,他们俩都报告了AB 2 次或更多次。我可以将这样的数字固定为寻找可能症状的阈值。

1个回答

在我看来,这似乎是一个普通的旧推荐问题。帐户是用户,症状是项目。每次帐户显示特定症状时,您的系统都会增加一个计数值。

创建以下数据集:

ACCOUNT, SYMPTOM, COUNT

现在您可以使用/实现任何类型的推荐系统(Mahout 只是一种选择,您是否看过MyMediaLite),或者您甚至可以实现您的推荐系统。

让我们重用您的想法: * 您想使用基于用户的相似性 * 如果一个帐户出现 2 次或更多次相同的症状,这似乎很重要

因此,您可以过滤掉少于 2 个计数的 Account、Symptom 对,其余的则创建以下数据集:

  • 用户,项目数据集:

ACCOUNT, SYMPTOM

  • 具有包含所有用户的唯一列的表:

ACCOUNT

  • 具有包含所有项目的唯一列的表:

SYMPTOM

现在您可以直接使用 MyMediaLite 中的User-KNN 算法

使用已经训练好的推荐模型,您可以将任何 ACCOUNT 作为输入传递,它会为您提供可能出现的最可能出现的症状的排名列表。

Obs.:最初忽略时间,然后您可以使用它来划分过去/未来的数据,并以更现实的方式评估推荐。;-)