全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 数据分析与数据挖掘
1115 0
2020-12-10
用于大数据和机器学习的Spark MLlib简介
Apache Spark是一个数据处理框架,它可以对非常大的数据集快速执行处理任务,还可以自行或与其他分布式计算工具一起在多台计算机之间分布数据处理任务。它是用于大数据和机器学习的快速闪电般的统一分析引擎
为了支持带有Spark的Python,Apache Spark社区发布了一个工具PySpark。使用PySpark,可以使用Python编程语言来处理RDD。
Spark的组件包括:
火花芯
Spark SQL
火花流
火花MLlib
GraphX
星火R
火花MLlib
火花芯
Apache Spark提供的所有功能都建立在Spark Core的顶部。它管理所有必不可少的I / O功能。用于任务调度和故障恢复。Spark Core嵌入有称为RDD(弹性分布式数据集)的特殊集合。RDD是Spark的抽象之一。Spark RDD处理跨集群中所有节点的数据分区。它将它们作为一个单元保存在群集的内存池中。在RDD上执行两项操作:
转换:此函数可根据现有RDD生成新的RDD。
行动:在转换中,RDD是彼此创建的。但是,当我们要使用实际数据集时,那时候我们将使用Action。
Spark SQL
Spark SQL组件是用于结构化数据处理的分布式框架。Spark SQL可以访问结构化和半结构化信息。它还支持跨流数据和历史数据的强大的交互式分析应用程序。DataFrame和SQL提供了一种访问各种数据源的通用方法。它的主要功能是基于成本的优化器和中型查询容错功能。
火花流
它是核心Spark API的附加组件,它允许对实时数据流进行可扩展的,高吞吐量,容错的流处理。Spark Streaming将实时数据分成小批。然后将其交付给批处理系统进行处理。它还提供了容错特性。
Spark GraphX:
Spark中的GraphX是用于图形和图形并行执行的API。它是一个网络图分析引擎和数据存储。图形中也可以进行聚类,分类,遍历,搜索和寻路。
SparkR:
SparkR提供了分布式数据帧实现。它支持大数据集上的选择,过滤,聚合等操作。
Spark MLlib:
Spark MLlib用于在Apache Spark中执行机器学习。MLlib由流行的算法和实用程序组成。Spark中的MLlib是可扩展的机器学习库,它讨论了高质量算法和高速算法。机器学习算法,例如回归,分类,聚类,模式挖掘和协作过滤。MLlib中还提供了诸如通用梯度下降优化算法之类的低级机器学习原语。
Spark.ml是Spark的主要机器学习API。 Spark.ml库 提供了一个基于DataFrames的高层API,用于构建ML管道。
Spark MLlib工具如下:
机器学习算法
特色化
流水线
坚持不懈
实用工具
机器学习算法
ML算法构成MLlib的核心。这些包括常见的学习算法,例如分类,回归,聚类和协作过滤。
MLlib对API进行了标准化,以使其更容易将多种算法组合到单个管道或工作流程中。关键概念是Pipelines API,该管道概念受scikit-learn项目的启发。
变压器:
变压器是一种算法,可以将一个DataFrame转换为另一个DataFrame。从技术上讲,Transformer实现了transform()方法,该方法通常通过附加一个或多个列将一个DataFrame转换为另一个。例如:
特征转换器可以获取一个DataFrame,读取一列(例如,文本),将其映射到一个新列(例如,特征向量),并输出一个新的DataFrame并附加映射的列。
学习模型可能需要一个DataFrame,读取包含特征向量的列,预测每个特征向量的标签,然后输出带有预测标签的新DataFrame作为列添加。
估算器:
估算器是一种算法,可以适合于DataFrame来生成Transformer。从技术上讲,一个Estimator实现一个fit()方法,该方法接受一个DataFrame并生成一个Model,即一个Transformer。例如,诸如LogisticRegression之类的学习算法是Estimator,调用fit()可以训练LogisticRegressionModel,后者是Model,因此是Transformer。
Transformer.transform()和Estimator.fit()都是无状态的。将来,可通过替代概念来支持有状态算法。
每个Transformer或Estimator实例都有一个唯一的ID,该ID对指定参数(在下面讨论)很有用。
特色化
功能化包括特征提取,变换,降维和选择。
特征提取是从原始数据中提取特征。
功能转换包括缩放,更新或修改功能
特征选择涉及从大量特征中选择必要特征的子集。
管道:
管道将多个“变形器”和“估计器”链接在一起,以指定ML工作流程。它还提供了用于构建,评估和调整ML管道的工具。
在机器学习中,通常需要运行一系列算法来处理数据并从中学习。MLlib将这样的工作流表示为管道,它由一系列按特定顺序运行的管道阶段(变形器和估计器)组成。在本节中,我们将使用这个简单的工作流作为运行示例。
示例:以下给出的管道样本按以下特定顺序执行数据预处理:
1.应用字符串索引器方法查找分类列的索引
2.对分类列应用OneHot编码
3.将字符串索引器应用于输出变量“标签”列
4. VectorAssembler应用于分类列和数字列。VectorAssembler是一种转换器,它将给定的列列表组合为单个向量列。
管道工作流将按上述特定顺序执行数据建模。
从pyspark.ml.feature导入OneHotEncoderEstimator,StringIndexer,VectorAssembler
categoricalColumns = ['工作','婚姻','教育','默认','房屋','贷款']
阶段= []
对于categoricalColumns中的categoricalCol:
    stringIndexer = StringIndexer(inputCol = categoricalCol,outputCol = categoricalCol +'Indexer')
    编码器= OneHotEncoderEstimator(inputCols = [stringIndexer.getOutputCol()],outputCols = [categoricalCol +“ Vec”])
    阶段+ = [stringIndexer,编码器]
label_stringIdx = StringIndexer(inputCol ='deposit',outputCol ='label')
阶段+ = [label_stringIdx]
numericColumns = ['age','balance','duration']
assemblerInputs = [c +“ Vec”对于categoricalColumns中的c] + numericColumns
Vassembler = VectorAssembler(inputCols = assemblerInputs,outputCol =“功能”)
阶段+ = [Vassembler]
从pyspark.ml导入管道
管道=管道(阶段=阶段)
pipelineModel = pipeline.fit(df)
df = pipelineModel.transform(df)
selectedCols = ['label','features'] + cols
df = df.select(selectedCols)
数据框
数据框提供了比RDD更用户友好的API。用于MLlib的基于DataFrame的API为ML算法和多种语言提供了统一的API。数据框有助于实际的ML管道,特别是功能转换。
从pyspark.sql导入SparkSession
spark = SparkSession.builder.appName('mlearnsample')。getOrCreate()
df = spark.read.csv('loan_bank.csv',标头= True,inferSchema = True)
df.printSchema()
持久性:
持久性有助于保存和加载算法,模型和管道。由于模型具有持久性,因此有助于减少时间和精力,可以在需要时随时加载/重用它。
从pyspark.ml.classification导入LogisticRegression
lr = LogisticRegression(featuresCol ='features',labelCol ='label')
lrModel = lr.fit(火车)
从pyspark.ml.evaluation导入BinaryClassificationEvaluator
评估者= BinaryClassificationEvaluator()
打印(“ ROC下的测试区域”,evaluator.evaluate(预测))
预测= lrModel.transform(test)
projections.select('age','label','rawPrediction','prediction')。show()
实用程序:
线性代数,统计和数据处理的实用程序。示例:mllib.linalg是用于线性代数的MLlib实用程序。
题库
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群