通过 MATLAB 处理大数据
谢谢大家支持,可以让更多朋友和有兴趣志同道合的人关注这个公众号。让知识传播的更加富有活力,谢谢各位读者。
很多人问我为什么每次的头像是奥黛丽赫本,我只能说她是我女神,每天看看女神也是不错的嘛!
查看之前博文点击右上角关注查看历史消息
最近我在用MATLAB的时候总是觉得运行太慢,太费内存。今天给大家推荐下面的新算法,希望对大家有帮助
大数据指的是创建的数据和供分析的数据的数量与速率迅速增加。
大数据使分析师和数据专家有机会获得更好的见解,进行更明智的决策,但是它同时也会带来许多的挑战:可用的内存可能无法足以处理大数据集,可能需要花太久的时间进行处理或可能流动太快而无法存储。标准算法通常不能以合理的时间或内存来处理大数据集等等。
目前没有任何一种单一方法可以处理大数据。为此,MATLAB 提供了许多工具来解决这些挑战。
在 MATLAB 中处理大数据
1. 64 位计算。
64 位版本的 MATLAB 可迅速增加内存中可保留的数据量——通常可达到任意 32 位程序的 2000 倍。32 位程序限制您只能使用 2 GB 的内存,而 64 位 MATLAB 的内存可以达到操作系统的物理内存限制。对于 Windows 8,台式机内存为 500 GB,Windows Server 内存为 4 TB。
2. 内存映射的变量。
借助 MATLAB 中的 memmapfile 函数,您可以将文件或文件的一部分映射到内存中的 MATLAB 变量。这样,您就可以高效访问磁盘上由于太大而无法保留在内存中或需要花太长时间而无法加载的大数据集。
3. 磁盘变量。
matfile 函数使您可以直接从磁盘上的 MAT 文件访问 MATLAB 变量(使用 MATLAB 索引命令),无需将全部变量加载到内存。这使您可以在大数据集上进行块处理,这些大数据集因为太大而无法保存在内存中。
4. 内在的多核数学。
MATLAB 中的许多内置数学函数,如 fft、inv 和 eig 都是多线程的。通过并行运行,这些函数充分利用计算机的多核,提供高性能的大数据集计算。
5. GPU 计算。
如果您正在使用 GPU,Parallel Computing Toolbox 中的 GPU 优化的数学函数可以为大数据集提供更高的性能。
6. 并行计算。
Parallel Computing Toolbox 提供并行 for 循环 , 该循环在多核计算机上并行运行您的 MATLAB 代码和算法。如果您使用 MATLAB Distributed Computing Server,则可以在机器群集上并行执行,这些机器可扩展到数千台计算机。
7. 云计算。
对于数百或数千台计算机的按需并行处理,您可以在 Amazon Elastic Computing Cloud(亚马逊弹性计算云)(EC2) 上使用 MATLAB Distributed Computing Server 并行运行 MATLAB 计算。借助云计算,您无需购买或维护您自己的群集或数据中心就可以处理大数据。
8. 分布式阵列。
使用 Parallel Computing Toolbox 和 MATLAB DistributedComputing Server,您可以处理分布在计算机群集内存中的矩阵和多维数组。使用此方法,您可以针对因太大而无法由单台计算机内存处理的大数据集,进行存储和执行计算。
9。 流式算法。
使用系统对象,您可以对因太大或太快而无法保留在内存中的数据传入流执行流式处理。此外,您还可以使用 MATLAB Coder 通过 MATLAB 算法生成嵌入式 C/C++ 代码,并针对高性能实时系统运行产生的代码。
10. 图像块处理。
使用 Image Processing Toolbox 中的 blockproc 函数,您可以处理特别大的图像,方法是每次以模块的形式高效处理它们。与 Parallel Computing Toolbox 一起使用时,在多核和 GPU 上并行运行计算。
11. 机器学习。
机器学习有助于通过大数据集提取见解和开发预测性模型。广泛的机器学习算法,包括 Statistics and Machine Learning Toolbox 和 Neural Network Toolbox 中提供的促进式 (boosted) 和袋装 (bagged) 决策树、K 均值和分层聚类、k-最近邻搜索、高斯混合、期望最大化算法、隐马尔可夫模型和神经网络。
量化投资与机器学习
知识、能力、深度、专业
勤奋、天赋、耐得住寂寞