美文网首页Python小哥哥
7 中方法处理 ML 中大型数据加载问题

7 中方法处理 ML 中大型数据加载问题

作者: 我爱学python | 来源:发表于2019-05-19 16:57 被阅读4次

在处理机器学习算法时,因为数据库太大而无法放置进内存的情况很常见。

这就引出了如下的问题:

如何加载我的大容量数据文件?

当因我尝试运行数据集算法而导致程序崩溃时,我该怎么办?

你能帮我解决内存不足的问题吗?

在这篇文章中, 我想找出一些你会考虑的一些建议。

分配更多内存

某些机器学习工具或数据库可能受到默认内存配置的限制。检查是否可以重新配置工具或数据库来使其分配到更多内存。Weka 是一个很好的例子, 在该示例中, 您可以在启动应用程序时将内存增加为参数。

使用较小的样本

是否确实需要处理所有数据?随机抽取数据的样本, 例如前1000行或10万列。在对所有数据 (使用渐进式数据加载技术) 拟合最终模型之前, 请使用这个较小的示例来解决问题。

我认为这是一个很好的做法, 在一般的机器学习中,这种方式可以让你快速得到抽查的算法和周转的结果。您还可以考虑,对用于匹配一个算法的数据量进行灵敏度分析, 而不是用模型技能。也许有一个递减反馈的自然点, 让你可以使用其作为你小样本的一个合适的大小值。

使用具有更多内存的计算机

你必须在你的电脑上工作吗?也许你可以访问一台更大的计算机, 是以你电脑的内存的数量级倍数存在的那种。例如,在云服务上租用大内存服务器就是一个好的选择是;例如亚马逊 Web 服务, 它提供的机器的 RAM 为每小时还不到一美元。我发现这种方法在过去非常有用。

更改数据格式

数据是否存储在原始 ASCII 文本中, 如 CSV 文件?也许您可以通过使用其他数据格式,来加快数据加载并且降低内存的使用率。二进制格式就是一个很好的例子, 如 GRIB、NetCDF 或HDF等格式。有许多命令行工具可用于将一种数据格式转换为另一种不要求将整个数据集加载到内存的格式的方法。使用另一种格式可以使您将数据存储在更紧凑的窗体中, 借此节省内存, 如2字节的整数或4字节的浮动。

流数据或使用渐进加载

所有的数据都需要同时存储在内存中吗?也许您可以使用代码或库,将数据流逐步加载到内存中以进行使用。这可能需要使用优化技术 (如随机梯度下降) 来迭代学习的算法, 而不是要求内存中所有数据都执行矩阵操作的算法, 如某些线性和逻辑回归的实现。例如, Keras 深层学习库提供此功能来逐步加载图像文件, 并称为flow_from_directory。另一个例子是可以在大块中加载大的 CSV 文件的熊猫库(Pandas)。

使用关联数据库

关系数据库提供了一种存储和访问非常大的数据集的标准方法。从内部来看,存储在磁盘上的数据可以逐步加载, 并可以使用标准查询语言 (SQL) 来进行查询。可以使用诸如MySQL或Postgres这样的免费开源数据库工具, 而且大多数 (也许是所有?) 编程语言和许多机器学习工具都可以直接连接到关联数据库。您还可以使用轻量级方法, 如SQLite。我在过去发现这种方法对于非常大的表格数据集非常有效。同样, 您可能需要使用可以处理迭代学习的算法。

使用大型数据平台

在某些情况下, 您可能需要求助于一个大的数据平台。这是一个为了处理非常大的数据集而设计的平台, 它允许您在上面使用数据转换和机器学习算法。两个好例子是用Mahout机器学习库的Hadoop以及用MLLib库的Spark。我相信当你已经用尽上述方法,这是会是解决这个问题的终极方法。然而, 在一些数据集非常非常大的情况下,之前的方法并不会是这些数据集缩短。

相关文章

  • 7 中方法处理 ML 中大型数据加载问题

    在处理机器学习算法时,因为数据库太大而无法放置进内存的情况很常见。 这就引出了如下的问题: 如何加载我的大容量数据...

  • RecyclerView 的优化介绍

    数据处理和视图加载分离:数据的处理逻辑尽可能放在异步处理,onBindViewHolder 方法中只处理数据填充到...

  • 06.Objective-C 分类(Categroy)的底层结构

    问题 Category 的底层结构 分类的加载处理过程 分类中load方法加载过程 initialize方法的调用...

  • R语言 陆胖的数据分析之旅

    从Excel文件中加载数据 问题 如何从Excel文件中加载数据 方法 xlsx包中的函数read.xlsx()可...

  • 四、Core ML模型的热更新

    关键词:Core ML,热更新,动态部署,动态加载 在《二、使用Core ML加载.mlmodel模型文件》中我们...

  • iOS总结

    1.分类的加载处理过程 通过Runtime加载某个类的所有Category数据 把所有Category的方法、属性...

  • 数据预处理(ML)

    影响数据质量的还有时效性、可信性、可解释性。因此要进行数据预处理。数据预处理技术:可以做到数据清理用来清除数据中的...

  • 机器学习笔记

    精品笔记 ML AI 斯坦福机器学习笔记 GTD 数据预处理 数据预处理 预处理终版.

  • app测试神坑

    1. 点击加载更多,的分页处理技术,是否有重复数据,数据显示是否完整,加载过程中是否页面跳动,是否有卡在加载中的状...

  • BootStrap Table复选框默认选中功能的实现代码

    1.方法一:根据bootstrap中的onLoadSuccess的方法(数据加载成功后) 2.方法二:根据在加载数...

网友评论

    本文标题:7 中方法处理 ML 中大型数据加载问题

    本文链接:https://www.haomeiwen.com/subject/fueqzqtx.html