处理机器学习大数据的7种方法

文章目录

  • 目录
    • 1.分配更多的内存
    • 2.使用较小的样本
    • 3.将数据提交至服务器上
    • 4.更改数据格式
    • 5.使用数据流方式或者逐行读入的方法
    • 6.使用关系数据库
    • 7.使用大数据平台

目录

在实际的生产过程中,我们经常会遇到数据文件太大,而无法直接读入到计算机中进行处理,或者因为数据量太大,读入内存后运行出错。因此,如何解决大数据的读入问题是解决大数据机器学习的第一步。

1.分配更多的内存

如果硬件可以支持分配更多的内存或者使用虚拟内存的时候,可以采取扩充内存的方式
检查是否可以重新配置工具或库以分配更多的内存
比较好的例子是WEKA,他可以在运行的时候扩充内存

2.使用较小的样本

采用某种下采样的方法,从原始的海量数据中抽取部分具有代表性的样本,然后使用这些抽样的样本训练模型,并在实际的测试集上进行测试。
采用这种方法具有一定的风险,首先得保证降采样的样本能够很好的代表全部样本的一个分布,否则很容易导致模型学偏,无法很好的对新样本泛化。
但是该方法可以迅速的查看算法和结果。

3.将数据提交至服务器上

由于本地的机器一般内存比较小,所以可以将数据提交至服务器上,利用服器强大的数据处理能力,解决大数据导入内存出错的问题。

4.更改数据格式

您的数据是否存储在原始ASCII文本中,如CSV文件?
也许您可以通过使用其他数据格式来加快数据加载并减少内存使用。一个很好的例子是像GRIB,NetCDF或HDF这样的二进制格式。
有许多命令行工具可用于将一种数据格式转换为另一种不需要将整个数据集加载到内存中的数据格式。
使用另一种格式可能允许您以更紧凑的形式存储数据,从而节省内存,例如2字节整数或4字节浮点数。

5.使用数据流方式或者逐行读入的方法

可以使用一个在线的增量式的学习方法,不是将数据一下子读入到内存中,而是在模型训练的过程中不断的读入到内存中,然后使用新读入的数据对模型的参数进行更新。
例如,Keras深度学习库提供了逐渐加载图像文件的功能,称为flow_from_directory。
另一个例子是pandas,可以加载大块的大型CSV文件

6.使用关系数据库

关系数据库提供了存储和访问非常大的数据集的标准方法。
在内部,存储在磁盘上的数据可以批量逐步加载,并且可以使用标准查询语言(SQL)进行查询。

可以使用免费的开源数据库工具,如MySQL或Postgres,大多数(所有?)编程语言和许多机器学习工具可以直接连接到关系数据库。您还可以使用轻量级的方法,如SQLite。
这种方法在过去对于非常大的表格数据集非常有效。
同样,您可能需要使用可以处理重复学习的算法

7.使用大数据平台

可以使用大数据平台,使用分布式计算,解决单个电脑性能不足
设计用于处理非常大的数据集的平台,允许您在其上使用数据转换和机器学习算法。
两个很好的例子是Hadoop的Mahout机器学习库和Spark机智的MLLib库。
我确实相信这是最后的手段,当您用尽了上述选项,只是为了机器学习项目带来的额外的硬件和软件复杂性。

参考博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/445424.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《Head First设计模式》第六章笔记-命令模式

封装调用-命令模式 命令模式可将“动作的请求者”从“动作的执行者”对象中解耦。 本篇中将不再描述书中所引入的“巴斯特家电自动化公司”的遥控器控制案例,而使用简单易懂的餐厅案例。 在开始之前,让我们通过一个现实中的例子来了解命令模式。 理解…

kaggle(04)---avazu_ctr_predictor(baseline)

比赛的目的: 通过分析网上的系统日志和用户行为信息,来预测某些网页上项目的点击率。是一个二分类的问题,只需要预测出用户是否点击即可最好能够输出某个概率,比如:用户点击某个广告的概率。 比赛官网 文件信息&…

一文读懂机器学习库graphLab

文章目录目录什么是graphlab为什么使用graphlab?如何安装graphlab?graphlab的简单使用。目录 什么是graphlab GraphLab 是由CMU(卡内基梅隆大学)的Select 实验室在2010 年提出的一个基于图像处理模型的开源图计算框架,框架使用C语言开发实…

《Head First设计模式》第七章-适配器模式、外观模式

适配器模式 适配器模式是什么,你一定不难理解,因为现实中到处都是。比如说: 如果你需要在欧洲国家使用美国制造的笔记本电脑,你可能需要使用一个交流电的适配器…… 当你不想改变现有的代码,解决接口不适配问题&#…

《Head First设计模式》第八章笔记-模板方法模式

模板方法模式 之前所学习的模式都是围绕着封装进行,如对象创建、方法调用、复杂接口的封装等,这次的模板方法模式将深入封装算法块,好让子类可以在任何时候都将自己挂接进运算里。 模板方法定义:模板方法模式在一个方法中定义一…

机器学习基础-吴恩达-coursera-(第一周学习笔记)----Introduction and Linear Regression

课程网址:https://www.coursera.org/learn/machine-learning Week 1 —— Introduction and Linear Regression 目录 Week 1 Introduction and Linear Regression目录一 介绍1-1 机器学习概念及应用1-2 机器学习分类 二 单变量的线性回归2-1 假设函数hypothesis2…

常见8种机器学习算法总结

简介 机器学习算法太多了,分类、回归、聚类、推荐、图像识别领域等等,要想找到一个合适算法真的不容易,所以在实际应用中,我们一般都是采用启发式学习方式来实验。通常最开始我们都会选择大家普遍认同的算法,诸如SVM&a…

redis——数据结构(字典、链表、字符串)

1 字符串 redis并未使用传统的c语言字符串表示,它自己构建了一种简单的动态字符串抽象类型。 在redis里,c语言字符串只会作为字符串字面量出现,用在无需修改的地方。 当需要一个可以被修改的字符串时,redis就会使用自己实现的S…

Hotspot虚拟机的对象

创建 Step1:类加载检查 虚拟机遇到一条 new 指令时,首先将去检查这个指令的参数是否能在常量池中定位到这个类的符号引用,并且检查这个符号引用代表的类是否已被加载过、解析和初始化过。如果没有,那必须先执行相应的类加载过程。 Step2:分…

剑指offer(刷题1-10)--c++,Python版本

文章目录目录第一题:解题思路:代码实现:c顺序查找二分查找Python第二题:解题思路:代码实现:cpython第三题:解题思路:代码实现:c使用栈辅助反转链表python第四题&#xff…

redis——数据结构(整数集合,压缩列表)

4、整数集合 整数集合(intset)是 Redis 用于保存整数值的集合抽象数据结构, 可以保存 int16_t 、 int32_t 、 int64_t 的整数值, 并且保证集合中不会出现重复元素。 实现较为简单: typedef struct intset {// 编码方…

原 剑指offer(刷题11-20)--c++,Python版本

文章目录目录第11题:解题思路:代码实现:cpython第12题:解题思路:代码实现:cpython第13 题:解题思路:代码实现:cpython第 14题:解题思路:代码实现&…

LRU介绍和实现

LRU全称是Least Recently Used,即最近最久未使用的意思。 LRU算法的设计原则是:如果一个数据在最近一段时间没有被访问到,那么在将来它被访问的可能性也很小。也就是说,当限定的空间已存满数据时,应当把最久没有被访问…

机器学习知识总结系列- 知识图谱(0-0)

文章目录目录机器学习知识图谱目录 本系列的文章只是根据个人的习惯进行总结,可能结构与一些书籍上不太一样,开始的内容比较简单,会随着后续的深入,不断丰富和更新图谱,同时也期待有相同兴趣的朋友一起给我留言一起丰富…

跳表介绍和实现

想慢慢的给大家自然的引入跳表。 想想,我们 1)在有序数列里搜索一个数 2)或者把一个数插入到正确的位置 都怎么做? 很简单吧 对于第一个操作,我们可以一个一个比较,在数组中我们可以二分,这…

机器学习知识总结系列- 基本概念(1-0)

文章目录目录1. 机器学习的定义2. 机器学习的分类2.1根据是否在人类监督下进行训练监督学习非监督学习半监督学习强化学习2.2根据是否可以动态渐进的学习在线学习批量学习2.3根据是否在训练数据过程中进行模式识别实例学习基于模型的学习3. 机器学习中的一些常见名词4. 机器学习…

剑指offer(刷题21-30)--c++,Python版本

文章目录目录第 21题:解题思路:代码实现:cpython第22 题:解题思路:代码实现:cpython第23 题:解题思路:代码实现:cpython第24 题:解题思路:代码实现…

redis——对象

刚写了redis主要的数据结构: 动态字符串、双端链表、字典、压缩列表、整数集合、跳表等 redis肯定不能直接使用这些数据结构来实现数据库,它用这些数据库建立了一个对象系统,包含: 字符串对象、列表对象、哈希对象、集合对象、…

剑指offer(刷题31-40)--c++,Python版本

文章目录目录第31 题:解题思路:代码实现:cpython第32题:解题思路:代码实现:cpython第33题:解题思路:代码实现:cpython第34题:解题思路:代码实现&a…

redis——数据库

redis服务器将所有数据库都保存在redis/redisServer中,数组db存放所有数据库,每一项是一个redisdb结构。dbnum代表数据库数量。 客户端有一个指针指向当前数据库,可以切换,也就是移动指针。 键空间 现在稍微介绍一下redisdb结构…