【问题标题】:How to train a neural network to detect presence of a pattern?如何训练神经网络来检测模式的存在?
【发布时间】:2015-02-23 14:24:53
【问题描述】:

问题措辞含糊不清 - 我很乐意根据反馈对其进行更改。但是,我正在尝试训练一个神经网络来检测网站上的欺诈交易。我有很多参数作为输入(一天中的时间、原籍国、过去一个月的访问次数、过去一个月来自唯一 IP 的访问次数、交易次数、平均交易规模等)。总共可能有超过 100 个输入。输入已经过规范化和清理,它们形成time series。从历史上看,我可以查看我的数据并确定交易是 A 类或 B 类欺诈或非欺诈性交易。我的训练集可能很大(几千或几万个点)。

最终,我想要一个指标:A 类欺诈、B 类欺诈或非欺诈。通常,欺诈性交易往往符合某种模式。我无法准确识别模式(这就是我使用 NN 的原因)。但是,非欺诈性交易可以是任何类型的模式。因此,当第三个桶是“其他”时,将事物识别为 3 个桶似乎很奇怪。

如果这是一个开关/案例,它会是这样的:

switch transactionData
  when transactionData.transaction_count < 0.2 && ....
    FRAUD_A
  when transactionData.transaction_count > 0.5 && ....
    FRAUD_B
  else
    NOT_FRAUD

显然,这些是简化的案例,但我的问题是如何正确训练 else 案例。我是否获得三种类型的数据(fraud_a、fraud_b 和 not_fraud)并对其进行训练?或者有没有其他方法可以训练other

【问题讨论】:

  • “我会得到三种类型的数据(fraud_a、fraud_b 和 not_fraud)并训练它们吗?”基于我对这些东西的有限理解:是的。
  • not_fraud 将有许多不同类型的数据模式。可能没有任何东西可以将它们串在一起。
  • 可能听起来不愉快,但我认为您只需要开始看看会发生什么。到目前为止,您似乎对您的数据和“else”类没有足够的了解。获取您的特征并训练它们(或使用其他一些分析,如聚类),以便查看数据的本质。只有这样,您才能在“else”中识别可能的子类。
  • 但是,即使else 中有子类,我也不一定在意。不欺诈就可以——我不需要知道哪一种方式不是欺诈。
  • 我刚开始使用ML,但是如果您对数据使用HMM,则可以对数据进行分类,然后根据您可以预测欺诈或非欺诈,欺诈可以进一步分为类型A 型或 B 型。如果您认为 HMM 不起作用,请回复以使我了解更多。我想知道为什么。

标签: neural-network training-data


【解决方案1】:

通常可以将其他(非欺诈)课程与您感兴趣的课程一起上。但我理解您的担忧。基本上,NN 的工作是学习“case/switch”,并且在大多数情况下它将学习正确的一个,假设大多数样本属于 NOT FRAUD 类。在某些病理情况下,分类器可以学习不同的想法,例如除非另有证明,否则一切都是 FRAUD A 类。您通常无法直接控制它,但可以通过创建更好的功能和其他一些技巧来改变它。现在,继续你所拥有的,看看会发生什么。

您可以做的一件事是训练两个分类器,一个(欺诈/非欺诈),然后如果检测到欺诈,则将数据输入第二个二分类分类器(欺诈 A/欺诈 B)。有时(但并非总是)这会更好。

【讨论】:

    猜你喜欢
    • 2011-05-05
    • 2018-10-30
    • 2011-06-02
    • 2015-04-17
    • 2011-04-07
    • 1970-01-01
    • 1970-01-01
    • 2020-08-24
    • 1970-01-01
    相关资源
    最近更新 更多