使用人工生成的目标类检测垃圾邮件发送者

数据挖掘 机器学习 数据集 数据清理
2022-01-20 16:02:23

我有一堆与我公司的来电和去电相关的数据,我正在尝试检测垃圾邮件来电者以便将他们列入黑名单。我从数据中提取的特征现在有点简单:

  • 来电号码:谁来电
  • N_Unique:不同电话呼叫的数量
  • N_Answered:呼叫连接的次数
  • N_Missed:呼叫被忽略/错过的次数
  • Avg_Duration:接听电话的平均持续时间

最初,我的上级给我发送了一个名为“IsSpammer”的数据集,该字段是二进制的,经过一个非常简单的随机森林(1000 棵树,默认 scikit-learn 其他所有内容),即使经过交叉验证,我也得到了 100% 的准确率。我仔细查看了数据,发现有人在公司内部拨打了 20 多个不同的号码,或者平均通话时长少于 20 秒,被标记为垃圾邮件发送者(这可能是真的),但后来我问主管这个字段是怎么回事生成,他告诉我他将它设置在随机森林发现的规则之下。

然后我意识到我遇到的每一个 ML 问题都来自一个 Kaggle 竞赛,它给了我一个清晰的预测领域,以及一个在预测领域上具有“正确”信息的训练集。如果我没有 Spammer/NotSpammer 的信息,我不知道如何进行 ML,因为显然如果我想出了一个聪明(或不聪明)的规则,那么我希望发现的最好的规则就是我'首先使用...我不确定是否获得更多功能并使用所有这些功能制定和模糊规则会有所帮助。显然我缺乏这方面的经验,所以我想我会问。

这是一个可以从使用机器学习中受益的问题吗?

2个回答

机器学习是自动发现(归纳)为某个随机变量建模的公式/规则的过程。如果你能自己发现规则,你就不需要机器来帮助你了。

作为领域专家,您(或您的老板)已经编写了一个规则来对目标类进行建模。只要这条规则被认为对业务足够好,就没有必要花费资源来生成另一个模型。

您可以使用无监督学习将呼叫者的类型聚集在一起。从那里,也许您会看到一群人拨打超过 10 个内部号码(或类似的号码),然后可以单独检查这些人是否是垃圾邮件发送者。