问题措辞含糊不清 - 我很乐意根据反馈进行更改。但是,我正在尝试训练神经网络来检测网站上的欺诈性交易。我有很多参数作为输入(一天中的时间,原籍国,过去一个月的访问次数,过去一个月内独特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
?
答案 0 :(得分:1)
通常完全没有其他(非欺诈)课程以及您感兴趣的课程。但我理解您的关注。基本上,NN的工作是学习“case / switch”,在大多数情况下,它会学习正确的,假设大多数样本都属于NOT FRAUD类。在一些病理情况下,分类器可以学习不同的想法,例如除非另有证明,否则一切都是FRAUD A级。您通常无法直接控制它,但可以通过创建更好的功能和其他一些技巧来更改它。现在,继续你所拥有的,看看会发生什么。
你可以做的一件事就是训练两个分类器,一个(欺诈/非欺诈),然后如果检测到欺诈,则将数据输入第二个两级分类器(FRAUD A / FRAUD B)。有时候(但并非总是如此)这样做会更好。