跳轉到主要內容
Beplay体育安卓版本平台的博客

簡化分析廣告點擊預測與磚統一的分析平台Beplay体育安卓版本

2018年7月19日 產品

分享這篇文章

Lakehouse讀取的數據探索為什麼lakehouses未來的數據架構和數據倉庫的父親,Bill Inmon。


在磚試試這個筆記本係列

廣告團隊想要分析他們的巨大的商店和品種的數據需要一個可伸縮、可擴展的、和彈性平台。Beplay体育安卓版本先進的分析方法,包括但不限於分類、聚類、識別、預測,建議允許這些機構從數據中獲得更深入的見解和驅動的業務成果。隨著對不同類型數據的增長,Apache火花提供一個API和分布式並行計算引擎很容易處理數據和,從而減少時間的價值。的磚Lakehouse平台Beplay体育安卓版本提供了一個優化,管理雲服務在火花,並且支持自助服務提供計算資源和協作工作空間。beplay娱乐ios

讓我們看一個具體的例子點擊率預測數據集廣告和點擊數據科學網站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

總結

我們演示了如何簡化你的廣告分析,包括點擊預測,使用磚統一的分析平台Beplay体育安卓版本(UAP)。磚UAP的,我們很快就能夠執行我們的點擊預測三個組件:ETL、數據探索和機器學習。我們說明了您可以運行高級分析ETL工作流,分析和機器學習管道所有幾磚筆記本。

通過刪除數據工程複雜性通常與這些數據相關的管道磚統一的分析平台,這允許不同的用戶即數據工程師,數據分析師和數據科學家容易一起工作。Beplay体育安卓版本嚐試這個筆記本係列今天在磚!

免費試著磚
看到所有產品的帖子
Baidu
map