简化分析广告点击预测与砖统一的分析平台bob体育亚洲版bob体育客户端下载
广告团队想要分析他们的巨大的商店和品种的数据需要一个可伸缩、可扩展的、和弹性平台。bob体育客户端下载先进的分析方法,包括但不限于分类、聚类、识别、预测,建议允许这些机构从数据中获得更深入的见解和驱动的业务成果。随着对不同类型数据的增长,Apache火花提供一个API和分布式并行计算引擎很容易处理数据和,从而减少时间的价值。的砖Lakehouse平台bob体育客户端下载提供了一个优化,管理云服务在火花,并且支持自助服务提供计算资源和协作工作空间。
让我们看一个具体的例子点击率预测数据集广告和点击数据科学网站Kaggle。这个工作流的目标是创建一个机器学习模型,给出一个新的广告印象,预测是否会有一个点击。
建立我们的高级分析工作流程,让我们集中在三个主要步骤:
- ETL
- 数据探索,例如,使用SQL
- 高级分析/机器学习
建立广告的ETL过程日志
首先,我们blob存储、下载数据集AWS S3或微软Azure Blob存储。一旦我们有了blob存储中的数据,我们可以读到火花。
% scala/ /读我们到场数据集的CSV文件val df = spark.read.option (“头”,真正的).option (“inferSchema”,真正的). csv (“/ mnt /到场/ / csv / train.csv /印象”)
这将创建一个火花DataFrame——一个不可变的列表、分布式数据结构在我们的火花集群。推断模式使用.printSchema ()
。
% scaladf.printSchema ()#输出id: decimal (20.,0)点击:整数小时:整数C1:整数banner_pos:整数site_id:字符串site_domain:字符串site_category:字符串app_id:字符串app_domain:字符串app_category:字符串device_id:字符串device_ip:字符串device_model:字符串device_type:整数device_conn_type:整数碳:整数C15:整数C16:整数C17:整数C18:整数C19:整数甜:整数C21:整数
优化查询性能DBFS,我们可以将CSV文件转换为拼花格式。拼花是一个柱状的文件格式,允许高效的大数据查询的SQL或火花大多数MPP查询引擎。关于火花是如何优化了镶花的更多信息,请参考Apache火花如何执行一个快速计算使用镶花元数据。
%scala//创建镶花的文件从我们的火花DataFramedf。合并(4).write.mode(“覆盖”).parquet (“/ mnt /到场/印象/拼花/ train.csv”)
探索与火花SQL广告日志
现在我们可以创建一个SQL临时视图称为火花印象
在我们铺文件。展示砖笔记本的灵活性,我们可以指定使用Python(而不是Scala)在我们的笔记本电脑在另一个细胞。
% python#创建火花DataFrame阅读最近创建的镶花的文件印象=火花。读\ \.parquet (“/ mnt /到场/印象/拼花/ train.csv /”)#创建临时视图impression.createOrReplaceTempView (“印象”)
我们现在可以探索我们的数据与熟悉的和无处不在的SQL语言。砖和火花支持Scala, Python, R, SQL。下面的代码片段计算点击率(CTR)旗帜位置和小时的一天。
%sql——计算CTR旗帜位置选择banner_pos,总和(情况下当点击=1然后1其他的0结束)/(数(1)*1.0)作为CTR从印象集团通过1订单通过1
%sql——计算CTR的小时的一天选择substr (小时,7)作为小时,总和(情况下当点击=1然后1其他的0结束)/(数(1)*1.0)作为CTR从印象集团通过1订单通过1
预测点击
一旦我们已经熟悉了我们的数据,我们可以进行机器学习阶段,我们将我们的数据转换成特征输入到机器学习算法和训练模型,我们可以预测。因为火花MLlib算法列的特征向量的双打作为输入,一个典型的特征工程工作流程包括:
- 识别数字和分类功能
- 字符串索引
- 组装成一个稀疏的向量
下面的代码片段是一个工程工作流功能。
# Include PySpark特性工程方法从pyspark.ml.feature进口StringIndexer, VectorAssembler
#所有的列(字符串或整数)分类列maxBins =70年分类=地图(λc: c (0),过滤器(λc: c (1]
在我们使用GBTClassifer,您可能已经注意到,当我们使用字符串索引器但我们不应用在一个炎热的编码器(咸宁)。使用StringIndexer时,分类特性作为k-ary分类特性。树节点将测试功能X有一个值{类别的子集}。与StringIndexer +咸宁:你的分类特性变成一堆二进制特征。一个树节点将测试功能X = A类和所有其他类别(一个比其他测试)。当只使用StringIndexer,好处包括:每个节点有更少的特征选择的测试比二进制1-vs-rest表达特性,因此,基于因为树方法,最好不使用咸宁少,因为它是一个表达测试和它占用更多的空间。但等non-tree-based算法,如线性回归,您必须使用咸宁模型,否则将处以虚假及误导性订购类别。感谢他和约瑟夫•布拉德利布鲁克导致这篇文章!
与我们创建工作流,我们可以创建毫升管道。
从pyspark.ml进口管道#创建我们的管道管道管道= =阶段(阶段)#创建变压器来添加特性featurizer = pipeline.fit(印象)# dataframe特性和中间#转换列附加featurizedImpressions = featurizer.transform(印象)
使用显示器(featurizedImpressions。选择(“功能”、“标签”))
数据集,我们可以想象featurized。
接下来,我们将把我们的featurized数据集分成训练集和测试数据集.randomSplit ()
。
培训,测试=功能\。选择((“标签”,“特性”))\.randomSplit ([0.7,0.3),42)
接下来,我们将训练,使用GBTClassifier预测和评估我们的模型。边注,一个好的底漆与火花MLlib解决二元分类问题是苏珊李的机器学习与PySpark MLlib——解决二元分类问题。
从pyspark.ml.classification进口GBTClassifier#训练我们GBTClassifier模型分类器= GBTClassifier (labelCol =“标签”featuresCol =“特征”maxBins = maxBins maxDepth =10麦克斯特=10)模型= classifier.fit(火车)#执行我们的预测预测= model.transform(测试)
#评估GBTClassifier模型使用# BinaryClassificationEvaluator ()从pyspark.ml.evaluation进口BinaryClassificationEvaluatorev = BinaryClassificationEvaluator (\ \rawPredictionCol =“rawPrediction”metricName =“areaUnderROC”)打印ev.evaluate(预测)#输出0.7112027059
与我们的预测,我们可以评估模型根据一些评估指标,例如,ROC曲线下的面积
重要性,以及查看功能。我们还可以看到AUC值,在这种情况下0.7112027059
。
总结
我们演示了如何简化你的广告分析,包括点击预测,使用砖bob体育亚洲版统一的分析平台bob体育客户端下载(UAP)。砖UAP的,我们很快就能够执行我们的点击预测三个组件:ETL、数据探索和机器学习。我们说明了您可以运行高级分析ETL工作流,分析和机器学习管道所有几砖笔记本。
通过删除数据工程复杂性通常与这些数据相关的管道砖统一的分析平台,这允许不同的用户即数据工程师,数据分析师和数据科学家容易一起工作。bob体育亚洲版bob体育客户端下载尝试这个笔记本系列今天在砖!