异常值检测花费大量时间,而且没有给出任何结果

shubham_samantshubham_samant 成员职位:2新手
2019年6月编辑 帮助
我正在使用Rapidminer教育许可版本中的自动模型功能。我的处理器是6核,i7-8750h, 16gb内存。数据集有超过30000行和12列。它有数字和文本数据。我尝试使用最佳特征(由Auto模型检测到)运行,并使用基于距离的离群值方法。该模型运行了超过18个小时,但仍在处理。
我已经安装了离群值检测扩展,但它没有帮助。
如何解决这个问题?是因为教育版只使用了1个核心吗?
好心的帮助

答案

  • hughesfleming68hughesfleming68 成员职位:323独角兽
    2019年5月编辑
    除了用较小的数据集进行实验之外,没有简单的解决方案。在加入30000行之前,尝试10%的数据。至少您将能够评估您的结果并了解您的计算时间。这种情况并不罕见,但如果你需要定期解决这种规模的问题,那么你将不得不重新考虑如何去做。并不是所有的进程都可以通过增加内核来扩展。这是一个很大的误解。
  • jacobcybulskijacobcybulski 委员、大学教授职位:391独角兽
    2019年5月编辑
    我发现异常检测扩展中包含的方法比内置在RM本身中的方法更有效。此外,扩展操作符创建了一个离群值检测模型,允许您执行以下操作:获取数据的代表性样本,构建离群值检测模型,然后将该模型应用于其余数据以识别所有其他离群值。模型的建立耗费了大量的时间,但模型的应用却非常迅速。当需要部署训练中的预测模型中创建的离群值检测时,您可以使用相同的方法,因此您将使用与训练数据集中完全相同的方法来识别和消除新数据中的异常示例。

    hughesfleming68
  • shubham_samantshubham_samant 成员职位:2新手

    我们的数据集有超过100000条记录,我将样本大小减少到30000如果我进一步减少数据集,比如3000,那么样本表示对于模型训练来说太小了。

    我试过在Python中运行完整的数据集,应用2-3种不同的算法,它成功地给了我结果。当我在python上运行离群值检测模型时,它不会出现内存不足的问题,但在数据集相对较小的Rapid Miner中,它也会内存不足。为什么autommodel -Outlier Detection在相对中等规模的数据集上失败?


  • jacobcybulskijacobcybulski 委员、大学教授职位:391独角兽
    2019年5月编辑
    我刚刚用13万创建了一个类似的模型来自Kaggle的葡萄酒评论。请看这个过程(也附在RMP中):


    请注意,这都是在准备数据,例如,确保你没有丢失的值,数值是首选的,我已经标准化了我的属性。我将所有数据分成两部分,即第一部分是用于创建异常模型的40K个示例的较小数据集,第二部分是剩余90K个示例的较大数据集,其中我通过使用预训练的异常模型发现了异常。为了可视化异常,我创建了一个PCA模型,将异常得分高的例子标记为离群值,然后绘制两者,见下图(先40K,后90K):


    在我16Gb内存的旧笔记本电脑上,这一切只用了不到5分钟。
    如果它不适合您,请尝试将RM升级到9.2+版本,因为它修复了旧版本RM中可能存在的一些错误。
    祝你好运——雅各布
    附注:此过程可用于在非常大的数据集中发现异常(您必须加入两个处理流程)或为新数据部署异常模型(底部部分可以放置在单独的过程中,但您必须保存预处理模型)。
    P.P.S.我已经包括了改进版本的过程作为V2,不幸的是,我不知道如何删除旧的附件…


    sgenzer David_A
  • sgenzersgenzer 管理员,版主,员工,RapidMiner认证分析师,社区经理,成员,大学教授,PM版主职位:2959年社区经理
    @jacobcybulski我喜欢这个……我可以将其添加到我的进程列表中以添加到Community Repo中吗?
  • jacobcybulskijacobcybulski 委员、大学教授职位:391独角兽
    2019年5月编辑
    @sgenzer我已经更新了示例,使其更完整,以显示异常模型可以被训练并用于大型数据集或部署。请随意添加这个示例。是的,它是闪电般的速度:)我不知道如何删除旧的附件:(

    varunm1 sgenzer IngoRM
登录注册置评。