如何将训练数据集中的模型扩展到覆盖所有训练数据的方面

3
我在面试中被要求使用机器学习解决一个用例。我需要使用机器学习算法识别交易中的欺诈行为。我的训练数据集包括100,200个交易,其中100,000个是合法交易,200个是欺诈交易。
我不能将整个数据集用于建立模型,因为这会导致数据偏差,并且得到的模型会非常糟糕。
例如,我可以从好的交易中选择200个样本和200个欺诈交易,并使用它们作为训练数据来建立模型。但问题是,如何将这200个好的交易扩展到所有的100,000个交易记录,以便我的结果可以映射到所有类型的交易上。由于我没有遇到过这种情况,所以不知道如何处理。
请问有任何指导吗?
2个回答

2
这是一个面试中提出的一般性问题。关于问题的信息简洁而模糊(例如,我们不知道特征的数量!)。你需要问自己的第一件事是:面试官希望我如何回答?因此,基于这个上下文,答案必须以类似的一般方式进行制定。这意味着我们不必找到“解决方案”,而是要提供论据,表明我们实际上知道如何处理问题,而不是解决它。

我们面临的问题是少数类(欺诈)仅占总数的约0.2%。这显然是一个巨大的不平衡。仅预测所有情况为“非欺诈”的预测器将获得99.8%的分类准确度!因此,一定要做一些事情。

我们将定义我们的主要任务为二元分类问题,其中我们希望预测交易是否被标记为正(欺诈)或负(非欺诈)。

第一步是考虑我们有哪些技术可用于减少不平衡。这可以通过减少多数类别(欠采样)或增加少数类别样本的数量(过采样)来实现。但两者都有缺点。前者意味着从数据集中严重损失潜在的有用信息,而后者可能存在过拟合的问题。一些改善过拟合的技术是SMOTE和ADASYN,它们使用策略来提高新合成样本的多样性。
当然,在这种情况下,交叉验证变得至关重要。此外,在进行过采样时,必须“协调”交叉验证方法,以确保我们充分利用这两个想法。请查看http://www.marcoaltini.com/blog/dealing-with-imbalanced-data-undersampling-oversampling-and-proper-cross-validation 了解更多详情。
除了这些采样方法之外,在选择我们的学习器时,许多机器学习方法可以针对特定指标进行训练/优化。在我们的案例中,我们不想绝对优化准确率。相反,我们想要训练模型来优化ROC-AUC或者专门寻找高召回率,即使牺牲精确度,因为我们想要预测所有积极的“欺诈”行为,或者至少发出警报,即使有些会被证明是误报。模型可以调整内部参数(阈值)以找到这两个指标之间的最佳平衡。有关指标的更多信息,请查看https://www.analyticsvidhya.com/blog/2016/02/7-important-model-evaluation-error-metrics/上的这篇不错的博客。
最后,我们只需要根据经验评估模型,检查哪些选项和参数最适合给定的数据集。遵循这些思路并不能保证我们百分之百地能够解决手头的问题。但它确保了我们处于一个更好的位置,试图从数据中学习,并能够摆脱那些恶意的欺诈者,同时也许能找到一份不错的工作;)

1
在这个问题中,您希望将交易分类为良好或欺诈。然而,您的数据非常不平衡。因此,您可能会对异常检测感兴趣。我会让您阅读整篇文章以获取更多细节,但我会在我的答案中引用一些部分。
我认为这将使您相信这是解决此问题所需的方法。
如果满足以下三个条件,答案是肯定的。
您已经标记了训练数据异常和正常类别是平衡的(至少为1:5)数据不是自相关的。(一个数据点不依赖于先前的数据点。这经常在时间序列数据中出现)。如果上面所有条件都成立,我们不需要异常检测技术,可以使用像随机森林或支持向量机(SVM)这样的算法。
然而,通常很难找到训练数据,即使您能找到它们,大多数异常事件的比例是1:1000到1:10 ^ 6,其中类别不平衡。
现在来回答你的问题:
一般来说,类别不平衡问题可以通过多次重新采样数据来解决。其思想是首先通过将所有异常数据点与一部分正常数据点(例如4倍的异常数据点)结合创建新的数据集。然后使用SVM或随机森林为每个数据集构建分类器,并使用集成学习组合这些分类器。这种方法效果良好,产生了非常好的结果。 如果数据点之间存在自相关性,则简单的分类器效果不佳。我们使用时间序列分类技术或循环神经网络来处理这些用例。 我还建议另一种方法解决这个问题。在这篇文章中,作者说: 如果没有训练数据,仍然可以使用无监督学习和半监督学习进行异常检测。但是,在构建模型之后,您将不知道它的表现如何,因为没有测试数据。因此,在将这些方法放入关键路径之前,需要在现场测试其结果。

然而,您可以使用一些欺诈性数据来测试您的无监督算法是否表现良好,如果它表现得足够好,它可以成为一个首选解决方案,以帮助收集更多数据来训练后期的监督分类器。


请注意,我不是专家,这只是我在结合我的知识和最近阅读的一些文章后想出来的。
如果您有更多关于机器学习的问题,我建议您使用这个StackExchange社区
希望这能帮到您 :)

我正在寻找一种扩大结果的方法,而不是替代方法。 - sohil
@sohil,如果你读了我在答案中引用的第二段文字,它解释了如何扩展你的想法以利用你拥有的所有数据:“通常,通过多次重新采样数据构建集成来解决类别不平衡问题[...]” - codingfish

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接