R中分类模型的增量学习


11

假设,我有一个分类器(可以是任何标准分类器,例如决策树,随机森林,逻辑回归等),可以使用以下代码进行欺诈检测

library(randomForest)
rfFit = randomForest(Y ~ ., data = myData, ntree = 400) # A very basic classifier 

Say, Y is a binary outcome - Fraud/Not-Fraud

现在,我已经预测了一个看不见的数据集。

pred = predict(rfFit, newData)

然后,我从调查团队获得了有关我的分类的反馈,发现我犯了一个错误,将欺诈分类为“非欺诈”(即“ 一个假阴性”。无论如何,我是否可以让我的算法理解它已经犯了一个错误?即是否可以在算法中添加反馈环,以便纠正错误?

我可以想到的一个选择就是构建一个,adaboost classifier以便新的分类器纠正旧分类器的错误。或我听到了Incremental Learning或的声音Online learning。中有任何现有的实现(包)R吗?

这是正确的方法吗?还是有其他方法可以调整模型而不是从头开始构建模型?


您找到解决方案了吗?我有同样的问题。
Blu3nx

@ Blu3nx请不要使用答案来评论问题。答案就是要回答它们。

这不是一个答案,但是什么阻止了您继续myData $ Fraud [positionofincorrectvariable] =正确值?
Dale C

Answers:


2

提升策略可能会改善模型的性能,因此值得尝试。关于增量学习/在线学习,我不知道R中有任何实现它的软件包(其他,如果我错了,请纠正我)。在Scikit Learn中,有一些核心分类器可用于增量学习。但是,如果您不得不使用R,则可能别无选择,只能编写自己的增量模型。无论哪种情况,研究Scikit Learn的核心分类器都可以让您了解从哪里开始。

要记住的另一个细节是,在单个误报或误报上更新模型的程度将改善模型的性能。在欺诈领域,非欺诈实例通常是欺诈的数千至数百万倍。因此,尝试学习正确区分每个欺诈实例非常重要,但是在单个欺诈实例上更新模型可能不会显着改变模型。考虑使模型更具有欺诈意义的其他策略。

根据人类研究人员的反馈,改进监督模型的最直接方法是从校正后的实例(即正确标记后正确预测的实例)构建单独的模型。然后,可以通过汇总它们的预测类成员资格,对未来实例的分类“投票”两个模型。例如,模型A可能认为Instance1为[欺诈:0.65,非欺诈:0.35],而模型B认为Instance1是[欺诈:0.47,非欺诈:0.53]。因此,合奏的预测将为[欺诈:(0.65 + 0.47)/2=0.56,非欺诈:(0.35 + 0.53)/2=0.44]。

如果原始模型的性能好于偶然性,则正确分类的实例数量将大于错误分类的实例数量。因此,如果对模型进行过多比例的训练,则您不希望对模型赋予相等的权重。有两种直接的方法可以解决这种差异:1)等待您累积足够的校正实例,使其近似等于原始模型所训练的数量,或者2)根据模型在验证集上的表现为每个模型分配权重。


0

过去,我做了一些有关在线学习和增量学习的研究。您需要考虑一些想法。

每个分类器都可以“进行”增量学习,唯一的问题是,某些分类器很难做到。这样就没有增量学习算法,只有使用通用算法来实现购买的一种方法。通常,您会选择其中一种,并采用培训方式并以批处理或在线方式提供数据。

您可以通过两种方式执行此操作:a)每次有新样本(或一组样本)到达时,从头开始重新训练模型。显然这并不理想,但是如果您的模型不太复杂(意味着您可以在实例之间执行整体训练),并且您限制了数据集的大小(丢弃旧数据,新数据或随机数据,并保持稳定数量的训练实例) ),它可以在某些情况下工作。在这里可以找到支持向量机进行“伪增量”学习的一个很好的例子。

b)通过仅在预测错误时修改这些参数来找到更新模型参数/权重的方法。神经网络自然很适合此操作,因为您可以训练模型,保存权重,然后在出现新一批数据时对其进行重新训练。此外,您可以调整学习率,以使您的新输入内容具有更多/更少的相关性。如果您可以根据情况选择任何算法,那将是我的选择。然而,有许多其它方法:例如在贝叶斯方法可以修改分布施加数值进行递增/递减到某些参数(参见为另一个例子。)

做一些阅读,寻找与您想要的学习算法行为相匹配的先前方法。在开始时为自己设置一切而不是使用此库或那个库似乎令人生畏,但是当您到达负责模型的所有学习过程的地步时,它变得非常酷。

祝好运!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.