如何使用“ID”作为 ML 模型的输入变量?

机器算法验证 机器学习 物流 神经网络 张量流 嵌入
2022-04-09 14:37:58

我试图包含一个变量,如“帐号”,它是一个“ID”,作为逻辑回归模型的预测变量。事实上,我的数据集中有几列是“ID”,但对于预测结果很重要。例如,如果一个帐号与一个欺诈性电话号码相关联,我希望我的模型能够捕捉到这种关系。将这些变量转换为分类变量并不是一个解决方案,因为每列中有超过 2000 万个。我已经完成了词嵌入并将每个 ID 转换为向量空间,然后应用 PCA 来减小空间的大小,并将每个 ID 替换为一个向量和一个 ID 列,这些列现在是连续变量。然而,当 ID 的数量超过一百万时,这个想法就会失败。如果您指出与我的问题类似的示例/研究,我将不胜感激。如果我需要更详细地解释问题,请告诉我。我在 python 中使用 gensim 库进行词嵌入,并使用 amazon ML 来训练和测试模型。

更新:最近 tensorflow 开发人员添加了一个名为“散列”和“嵌入”的新功能。

2个回答

不应将电话号码等 ID 变量作为预测变量包含在内,因为您正在尝试训练模型以了解一般模式。电话号码并没有让模型真正了解是什么驱动了欺诈与非欺诈。事后您最好使用查找表来标记与该电话号码相关的交易。

通过在 tensorflow 中实现的新功能(例如散列和嵌入),我能够利用数据中的 ID 变量并将它们用作预测变量。您可以在这篇文章中找到解释: https ://developers.googleblog.com/2017/11/introducing-tensorflow-feature-columns.html