




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第18章大数据的处理与学习学习目标理解管理海量数据的挑战了解大数据管理的程序库,并能使用这些程序库进行简单操作了解使用海量数据进行机器学习的一些方法管理海量数据的挑战使用python的pandas等模块进行数据读取和处理时,所有数据都需要被读入电脑内存当前个人电脑的内存大小通常都是8GB到16GB,很少超过200GB在对海量数据(比如TB级别的交易数据)使用机器学习算法时来进行数据分析时,需要考虑到内存以及其他计算机硬件的限制例如,支付宝的月度活跃用户量超过十亿,这些用户每天都会会产生大量的支付数据。假设这些用户每个月产生50次交易,每次交易中记录10个变量(例如,交易金额,交易时间,交易双方的信息等),用8个字节的变量来存储这些信息,这样每个月得到的数据量会超过3TB大数据的管理管理大数据时,我们无法将所有的数据读入电脑内存,需要设法将较大的数据切割成较小的数据,并且将切割后的数据分别读入内存进行处理在Python语言的的生态系统中,人们经常使用Dask和Spark这两个程序库来将较大的数据切割成较小的数据,并且将切割后的数据分别读入内存进行处理。接下来将主要以dask作为例子来阐述如何管理海量数据,并且简单介绍ApacheSpark框架以及在Pthon中调用Spark的程序库PySparkDask简介Dask是一个基于Python语言的程序库,支持大数据并行计算Dsak的优点是其与pandas非常相似dask的数据帧(dataframe)是由一个或是多个pandas的数据帧组合而成基本上pandas上所有的功能都能在dask程序库中找到对应Dask通过分解和调度计算任务,高效管理内存以及利用并行计算,使得处理大数据变得更加简单高效Dask简介Dask的特点懒惰执行(LazyExecution):Dask会等到真正需要计算结果时才开始计算。你编写Dask代码实际上是在创建一个计算任务的计划,而非立即执行计算任务调度(TaskScheduling):Dask会把大的计算任务分解成很多小的任务,然后根据任务之间的依赖关系来安排它们的执行顺序内存管理(MemoryManagement):Dask在处理大数据时会很智能地管理内存,确保数据在需要时被加载到内存中,并在不再需要时释放内存Dask简介Dask的特点并行与分布式计算(ParallelandDistributedComputing):Dask可以利用电脑上的多个核心进行并行计算,也可以跨多台机器进行分布式计算,这样可以加快计算速度,处理更大的数据与Pandas,NumPy和Scikit-Learn集成:Dask提供了与Pandas,NumPy,
Scikit-Learn非常相似的接口,可以很容易地将现有的代码转换为可在Dask上运行的版本Dask与PandasDask与PandasDask数据帧与Pandas的最大区别是在许多操作中,需要使用.compute()来进行执行例如,如果df是一个Dask数据帧,那么df_filtered=df[df[‘column’]>0]这行程序不会直接得到数据帧df_filtered,而是得到一个将要执行任务的任务图。只有执行df_filtered=df[df[‘column’]>0].compute()时,Dask才会执行这一任务。因此只有加上.compute()才会得到一个新的数据帧。ApacheSpark简介ApacheSpark是一个用于大规模数据处理的统一分析引擎提供了Java、Scala、Python(PySpark)和R的高级API,以及一个优化的引擎,支持数据分析的通用计算图Spark的主要特点是其内存集群计算,可以提高应用程序的处理速度。
Spark旨在涵盖各种工作负载,如批量应用程序、迭代算法、交互式查询和流处理。它支撑了一系列的库,包括SQL和DataFrame、MLlib(机器学习)、GraphX(图处理)和StructuredStreaming(增量计算和流处理)。Dask与ApacheSpark有着许多相似的功能ApacheSpark的生态更为成熟但是Dask为Python用户提供了简单易用的大数据管理以及处理的功能ApacheSpark与PySparkPySpark是Spark的PythonAPIPySpark支持Spark的大部分特性,如SparkSQL、DataFrame、Streaming、MLlib(机器学习)和SparkCore,非常适合构建基于云的大数据处理应用程序。PySpark提供了一种无缝混合使用SQL查询、机器学习算法、流处理过程和大数据上的复杂分析计算的方式,所有这些都可以在同一个Python语言的环境中进行使用PySpark,你可以使用PythonAPI编写Spark应用程序,并利用Python丰富的数据分析库ApacheSpark与PySparkPySpark有一系列优点易用性:使用PySparkAPI用Python编写Spark应用程序,享受Python语法和丰富的生态系统的便利性能:PySpark应用程序可以利用ApacheSpark处理大型数据集的快速能力互操作性:由于Spark庞大的生态系统,可以轻松与其他大数据工具和框架集成大数据学习的挑战与对策之前所研究的许多机器学习算法都可以用于可以读入计算机内存的数据。但是在大数据的时代许多数据是无法完全读入内存的,对于这些情况也需要有相应的对策最简单的方法是将数据缩小到内存可以存储的大小对大量的数据进行随机取样,然后使用机器学习的算法对随机取样后的样本进行分析然而,随机取样需要舍弃大量的样本,因此会丢失许多有用的信息训练一个参数较多的模型时,随机取样丢失样本可能会影响到模型训练的过程大数据学习的挑战与对策之前所研究的许多机器学习算法都可以用于可以读入计算机内存的数据。但是在大数据的时代许多数据是无法完全读入内存的,对于这些情况也需要有相应的对策分布式训练用于处理大型数据集和/或利用多个计算单元(如CPU核心或GPU)进行训练,数据和计算任务被分布在多个节点上,以加快训练过程存在的问题:通信成本、同步问题和资源管理等分布式训练准备分布式环境配置多个节点,每个节点可能包含一个或多个CPU核心或GPU设置网络连接,确保所有节点之间可以通信数据分割与分配将大型数据集分割成小批数据(batches)将这些数据批次均匀地分配给各个节点,确保每个节点都有数据来进行训练复制模型在每个节点上初始化相同的模型。这意味着每个节点开始时都有相同的参数/权重分布式训练并行计算与同步每个节点使用其数据批次对模型进行训练,并计算梯度(模型参数的更新)步骤完成后,各节点需要同步。同步方式取决于所使用的分布式训练策略(例如,参数服务器模式或All-Reduce模式)梯度聚合与更新聚合所有节点计算出的梯度。在一些方法中,这个过程可能涉及梯度的平均或其他形式的整合使用整合后的梯度更新模型参数。这一步骤可以在单个中心节点上完成,或在所有节点上同时进行分布式训练迭代训练重复执行上两个步骤,直到模型达到期望的精度或完成预定的训练轮数.后处理对训练完成的模型进行评估、验证和测试如果需要,可以进行模型的保存和导出,以便将来使用或进一步分析分布式训练优化分布式训练可以显著减少模型训练时间,但也带来了通信成本、同步问题和资源管理等挑战。有效地管理这些挑战需要精心的系统设计和优化。Dask-ML是Dask框架中用于提升大数据训练效率以及可行性的模块除了Dask-ML之外,之前阐述过的xgboost以及pytorch等程序库也可以直接与Dask数据进行交互分布式训练优化:Dask-MLDask-ML的应用方式扩展Scikit-Learn:Dask-ML为众多Scikit-Learn的模块提供了并行版本,几乎可以无缝地与Scikit-Learn的对应功能互换。例如,Scikit-Learn中有linear_model模块,与之对应的dask_ml中也有linear_model模块。增量学习:Dask-ML支持部分模型的增量学习,适用于那些无法一次性加载进内存的大型数据集。例如之前所学习的神经网络训练框架Pytorch就可以通过Dask-ML来进行增量学习预处理:Dask-ML提供了可扩展的数据预处理工具,能高效地准备大规模数据集以进行训练。在dask_ml.preprocessing中也有类似于StandardScaler一类的数据缩放工具程序下面将使用Dask的数据帧读入一个数据,并对该数据进行简单总结首先安装Dask库如果要安装Dask和其所有依赖包,则使用命令:pipinstalldask[complete]如果只安装Dask(适用于只需要任务调度器的情况),则使用命令:pipinstalldask使用Dask数据帧首先导入必要的库,dask.dataframe是Dask框架中的数据帧模块,其使用方法类似于Pandas程序将数据读入数据帧程序对全样本数据进行总结,打印变量bm的中位数与均值程序然后对数据分月份进行总结,打印各月份变量bm的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 45429-2025法庭科学伪造人像检验通则
- 手部的解剖及相关知识
- 上海商学院《食品营养与产品开发》2023-2024学年第一学期期末试卷
- 华北理工大学轻工学院《社会分层与流动》2023-2024学年第二学期期末试卷
- 学生如何规范答题
- 教育家的故事
- 2025年二月份拼贴课件量子相干性色彩保持研究
- 保安主管培训课件
- 浙江省医疗卫生事业单位招聘-影像技术类历年考试真题库(含答案)
- 2024-2025学年下学期高一英语人教版同步经典题精练之阅读理解
- 基于YOLOv5深度学习模型的车牌识别系统设计
- 四年级下册英语(人教PEP)高频考点每日一练
- 《中国传统民居建筑》课件
- 重庆旅游课件教学课件
- 《机动车驾驶人考试场地布局规划指南》编制说明
- 《大数据财务分析》教学大纲
- 状语从句(练习)-2025年高考英语一轮复习(新教材新高考)
- DB11∕T 584-2022 薄抹灰外墙外保温工程技术规程
- JJF 2156-2024材料热膨胀仪校准规范
- 过敏性休克完整版本
- 院感知识培训课件
评论
0/150
提交评论