数据增加的速率远远高于计算机硬件的发展,在机器学习、大数据领域,最常遇到的为你可能就是数据的量太大,而无法将其加载到内存中。遇到这种情况我们应该怎么办呢?
1、最简单粗暴的方法可能就是采样了:
这也是传统数据分析、机器学习领域最常用的方法,虽然在大数据时代我们更注重于全量数据分析,但是通过采样来快速的了解数据是机器学习领域常用的方法。采样可以是随机采样也可以根据一定策略来对数据进行抽取。对大数据应用来说,在构建模型时,当数据量达到一定的量级后,再增加更多的数据对模型性能的提高带来的影响几乎可以忽略不计,因此说采样是一个简单有效的方法。
2、最直接的方式:增加内存
随着技术的发展,硬件的价格持续下降,使得我们有能力来负担相对较大容量的内存。如果是租用了云主机,那更能体现成本优势!成本方面的略微提升却可以极大的提高我们对数据分析的能力,使得机器学习算法发挥出其大数据领域的优势,何乐不为?
3、高级技巧:转换数据格式
应用于机器学习、大数据领域的数据大都是以文本格式存在,主要是处于使用方便的考虑,但是如果将其转换为HDF、GRIB等二进制格式,则可以极大的降低对存储空间的需求与占用。另外,在不影响机器学习算法计算精度的情况下,把double转换成float格式也是一个可选项(需要根据具体的语言来确定)。
4、“懒人”的办法:数据库
数据库可以帮我们来格式化数据,方便我们的使用,对于中小型应用可以选择关系数据库。而对于那些数据容量大,又不需要类似事务等支持的情况来说,列式数据库也是一种常用的方法,特别是hive的诞生使得“懒人”们无需开发即可使用类似大数据、机器学习的高级功能。
5、正规军作战:使用开源大数据机器学习算法库
对于TP级甚至是PB级的应用来说,那几乎就只可能选择大数据平台了,目前最佳的选择就是Spark的MLlib库。但这需要额外的硬件以及对开源软件的熟悉与使用,对人员的额外培训也是一个问题。在成本可以负担的情况下,对人力资源的耗费也较高,不过这也可能是基于海量数据是进行机器学习的最后选择了。
专业机器学习、大数据培训团队
识别二维码,获取免费培训机会