【问题标题】:What would be the ideal amount of RAM for processing large datasets in Weka?在 Weka 中处理大型数据集的理想 RAM 量是多少?
【发布时间】:2022-01-29 13:37:57
【问题描述】:

我正在做一个关于基于异常的入侵检测的项目,我正在尝试使用 Weka 来测试一些 ML 单一分类器和针对 MQTT-IoT 数据集的集成方法。其中两个 .csv 文件非常大,每个包含超过一百万个条目。我的 PC 只能将这些加载到应用程序中以显示所有内容,但这使用了我的所有 16BG RAM,并且必须使用 VRAM,这进一步减慢了一切。我认为可能可行的几个解决方案是:

A) 获得更多 RAM,但 32BG 是否足够?我觉得一旦我真正开始训练模型,事情可能会开始飞向太空

B) 使用我的数据集的较小样本。这是有道理的,但我对机器学习的主题相对较新,并且被告知我必须小心这样做,以免影响我的特征之间的相关性。我也不太熟悉执行此操作的方法,因为我不认为我可以只复制和粘贴较小的块。

C) 在 azure 上创建一个带有大量 RAM 的 VM,并将其用于我要求更高的测试。

我们将不胜感激有关任何这些选项的任何建议/帮助。

【问题讨论】:

    标签: memory weka ram allocation


    【解决方案1】:

    对此没有简单的答案。

    由于其内部数据结构,不同的算法需要不同的内存量。此外,属性的类型会影响内存消耗,因为名义属性可能会转换为多个二进制属性,从而可能会爆炸数据矩阵中的属性数量。

    不要将 GUI 用于内存密集型任务,因为它会保留数据副本以进行可视化等。命令行更适合内存消耗。

    在生成数据子集时,您可以尝试使用监督子抽样来保持类分布相似: https://weka.sourceforge.io/doc.dev/weka/filters/supervised/instance/Resample.html

    另外,尝试增量算法,因为它们不必将数据加载到内存中进行训练: https://weka.sourceforge.io/doc.dev/weka/classifiers/UpdateableClassifier.html

    当然,不要使用交叉验证,因为您必须将数据保存在内存中才能生成折叠,从而打败增量方法。

    最后但同样重要的是:更多的内存总是有利于机器学习。

    【讨论】:

      猜你喜欢
      • 2023-04-02
      • 2017-09-24
      • 2019-12-27
      • 1970-01-01
      • 1970-01-01
      • 2022-11-12
      相关资源
      最近更新 更多