阿里數據服務P6~P7晉升要點

這是我在2015年高德負責P6晉升評審爲團隊成員準備的要點,整理下。前端

1. 數據倉庫難點

1.1 分佈式OLAP設計與選型

  • 傳統BI 友盟,Talking Data 啓明星
  • keylin
  • phoniex
  • ocean base
  • garuda
  • drds
  • impala
  • drill

框架優劣,實現方式,性能對比python

1.2 分佈式OLAP優點

  • 支持ad-hoc
  • 上卷,下鑽,切片,切塊
  • 數據端開發迅速

1.3 分佈式OLAP 難點

  • 海量數據聚合
  • 要求RT可用
  • 阿里生態系統限制
  • 時間緊迫

1.4 分佈式OLAP實現

  • 分庫分表 DRDS
  • 數據倉庫
    • 基本行爲
    • 離線點擊
    • 崩潰行爲
  • 主題域— 數據立方體(Cube)
    • 用戶分析
    • 活躍度
    • 渠道專題

1.5 目前缺陷

在沒索引的維度較慢
阿里生態圈的喜與優web

外網工具豐富算法

web工做臺
運維控制檯
可靠工做流網絡

閉門造車,輪子過期
須要多部門協助架構

1.6 總體工做流

採集 — 收容 — 計算 — 導出 — 存儲 — 服務 — 前端框架

2. 服務演化

2.1 單一應用

全部功能部署一塊兒,ORM 是核心運維

2.2 垂直應用

拆分應用, MVC 是核心dom

2.3 分佈式服務框架

核心業務抽取複用, RPCscrapy

2.4 流動計算框架

提升機器利用率, SOA

3. 挖掘架構

3.1 數據層

3.2 算法層

3.2.1 特徵工程:

清洗 :
髒數據 (亂碼,機型非法取值)
空缺值(日誌記錄不規範,常常出現某些平臺字段爲空)
噪聲 (取值非法)
分箱
離羣挖掘
迴歸

集成:
冗餘屬性 (重複字段,同一字段命名不一樣)
數值衝突檢測( 單位不一樣,字段長度不一樣)

變換:
歸一化
投影 (PCA)

歸約
數據壓縮 (空間索引,小波變換,PCA,迴歸,機率分佈模型,粗糙集,採樣)
維度規約 特徵提取

離散化 值區間


特徵工程

3.2.2 分類:

SVM
隨機森林
GBDT
神經網絡

3.3.3 聚類

基於劃分

Kmean
KMeoid
EM

基於密度

DBScan
Optics

基於層次

自頂向下
自底向上

基於柵格

String
WaveCluster

3.3.4 迴歸

線性迴歸
邏輯迴歸

3.3.5 關聯

FPGrowth
Aprioi

3.3.6 空間算法

元胞自動機
空間尺度變化模型
空間自迴歸(SAR)
層次貝葉斯

3.3 策略/模型層

3.4 評估層

3.4.1 算法評測

規則掃描

數據規則
業務規則

白盒測試

MR 單元測試
MR 集成測試
MR 性能測試

Job 監控

Job 性能
Job 配置
Job 報警

算法收益對比

可視化對比工具
收益統計工具
AB Test

3.5 服務層

高效,可靠,分佈式的數據服務
日誌監控
日誌迴流

3.6 挖掘工做流

  1. 收集數據
    收集數據通常是補充外部數據,包括採用爬蟲和接口,獲取,補充目前數據不足部分。Python scrapy,requests是很好的工具。
  2. 準備數據
    主要包括數據清洗,預處理,錯值糾正,缺失值填補。連續值離散化,去掉異常值,以及數據歸一化的過程。同時須要根據準備採用的挖掘工具準備恰當的數據格式。
  3. 分析數據
    經過初步統計、分析以及可視化,或者是探索性數據分析工具,獲得初步的數據概況。分析數據的分佈,質量,可靠程度,實際做用域,以肯定下一步的算法選擇。 R的ggplot,python的matplotlib,js 的leaflet,d3都是很好的可視化工具。

4. 訓練算法

整個工做流最核心的一步,根據現有數據選擇算法,生成訓練模型。主要是算法選擇和參數調整
算法的選擇,須要對算法性能和精度以及編碼實現難度進行衡量和取捨。 (甚至算法工具箱對數據集的限制狀況都是算法選擇考慮的內容) 實際工程上,不考慮算法複雜度超過O(N^2)的算法。Java的Weka和Python的Scipy是很好的數據挖掘分析工具。
參數調整。這是一門神奇的技能,只能在實際過程當中體會。

5. 測試算法

這一步主要是針對監督算法(分類,迴歸),爲了防止模型的Overfit,須要測試算法模型的覆蓋能力和性能。方法包括Holdout,還有random subsampling.
非監督算法(聚類),採用更加具體的指標,包括熵,純度,精度,召回等。

6 使用,解釋,修正算法

數據挖掘不是一個靜態的過程,須要不斷對模型從新評估,衡量,修正。算法模型的生命週期也是一個值得探討的話題。

相關文章
相關標籤/搜索