1. 程式人生 > >大資料分析筆記——1

大資料分析筆記——1

大資料計算架構

1、資料儲存系統

  資料儲存系統包括資料採集層(系統日誌、網路爬蟲、無線感測器網路、物聯網,以及各種資料來源),資料清洗、抽取與建模(將各種型別的結構化、非結構化、異構資料轉化為標準儲存格式資料,並定義資料屬性及值域),資料儲存架構(集中式或分散式檔案系統、關係型資料庫或分散式資料庫、行儲存資料結構或列儲存資料結構,鍵值對結構,雜湊表(Hash Table)檢索等)。   資料儲存架構是大資料計算的基礎,上層各種分析演算法、計算模型及計算效能都依賴於資料儲存系統的表現,因此,資料儲存系統是大資料研究的一個重要領域。

2、資料處理系統

  資料處理系統包括針對不同型別資料的計算模型(如針對非結構化資料的MapReduce 批處理模型、針對動態資料流的流計算(Stream Compating)模型、針對結構化資料的大規模併發處理(MPP)模型、基於物理大記憶體的高效能記憶體計算(In-memory Computing) 模型)

;針對應用需求的各類資料分析演算法(迴歸分析、聚合演算法、關聯規則演算法、決策樹演算法、貝葉斯分析、機器學習演算法等);提供資料計算處理各種開發工具包和執行支援環境的計算平臺(如Hadoop、 Spark、Storm等)

3、資料應用系統

  資料應用系統是基於上述儲存系統和計算處理平臺提供各行業領域的大資料應用技術解決方案。

資料分析演算法分類

1. 迴歸分析類

  迴歸演算法是通過最小化預測值與實際結果之間的差值而得到輸入特徵之間關係的一類演算法。常見演算法如下:

1) Ordinary Least Squares Regression(OLSR)
2)Linear Regression
3)Logistic Regression
4)Stepwise Regression
5)Locally Estimated Scatterplot Smoothing(LOESS)
6)Multivariate Adaptive Regression Splines(MARS)

2. 基於示例的演算法

  指的是最後建成的模型對原始資料樣本例項依舊有很強的依賴性。這類演算法在做預測決策時,一般都是使用某類相似度準則,比對待預測的樣本和原始樣本的相近度,再給出相應的預測結果。常見演算法如下:

1)k-Nearest Neighbour (kNN)
2)Learning Vector Quantization (LVQ)
3)Self-Organizing Map (SOM) 
4)Locally Weighted Learning (LWL)

3. 決策樹類演算法

  決策樹類演算法會基於原始資料特徵,構建一棵包含很多決策路徑的樹。預測階段選擇 路徑進行決策。常見演算法如下:

1) Classification and Regression Tree (CART)
2) Iterative Dichotomiser 3 (1D3) 
3) C4.5 and C5.O (different versions of a powerful approach)
4) Chi-squared Automatic Interaction Detection (CHAID) 
5) Conditional Decision Trees

4. 貝葉斯類演算法

  指的是在分類和迴歸問題中,隱含使用了貝葉斯原理的演算法,常見演算法如下:

1) Naive Bayes 
2) Gaussian Naive Bayes
3) Multinomial Naive Bayes
4) Averaged One-Dependence Estimators (AODE)
5) Bayesian Belief Network (BBN)
6) Bayesian Network (BN)

5. 聚類演算法

  聚類演算法是把輸人樣本匯聚成圍繞一些中心的“資料團”,以發現數據分佈結構的一些 規律。常用演算法如下:

1) K-means
2) Hierarchical Clustering
3) Expectation Maximization (EM) 

6. 關聯規則演算法

  關聯規則演算法試圖抽取出最能解釋訓練樣本之間關聯關係的規則,也就是獲取一個事件和其他事件之間依賴或關聯的知識,常見演算法如下:

1) Apriori algorithm 
2) Eclat algorithm 

7. 人工神經網路類演算法

  這是受人腦神經元工作方式啟發而構造的一類演算法。這裡說的人工神經網路偏向於更傳統的感知演算法,包括:

1) Perceptron
2) back-Propagation
3) Radial Basis Function Network (RBFN)

8. 深度學習

  深度學習是機器學習領域的演算法,相對於上述演算法,有更深的層次和更復雜的結構。常見演算法如下:

1) Deep Boltzmann Machine (DBM) 
2) Deep Belief Networks (DBN) 
3) Convolutional Neural Network (CNN) 
4) Stacked Auto-Encoders

9. 降維演算法

  降維演算法試圖用更少的資訊(更低維的資訊)總結和描述出原始資訊的大部分內容,很多時候用它先預處理資料,主要演算法如下:

1) Principal Component Analysis (PCA)
2) Principal Component Regression (PCR)
3) Partial Least Squares Regression (PLSR)
4) Sammon Mapping
5) Multidimensional Scaling (MDS)
6) Linear Discriminant Analysis (LDA)
7) Mixture Discriminant Analysis (MDA)
8) Quadratic Discriminant Analysis (QDA)
9) Flexible Discriminant Analysis (FDA) 

10. 模型融合演算法

  模型融合演算法像是一種優化手段/策略,它通常是結合多個簡單的弱機器學習演算法去做更可靠的決策。主要演算法如下:

1) Random Forest 
2) Boosting 
3) Bootstrapped Aggregation (Bagging)
4) AdaBoost 
5) Stacked Generalization (blending)
6) Gradient Boosting Machines (GBM)
7) Gradient Boosted Regression Trees (GBRT)

  其他大資料計算還涉及的演算法有預測演算法(如遺傳演算法BP)、推薦演算法(PageRank,EdgeRank,協同過濾)等。

資料預處理

  資料預處理就是在資料探勘前,先對原始資料進行必要的清洗、整合、轉換、離散和規約等一系列的處理工具,使之達到挖掘演算法進行知識獲取研究所要求的最低規範和標準。[2]  資料預處理的主要任務如下:  1) 資料清洗:填補缺失資料、消除噪聲資料等。(異常檢測、去重、填補缺失值)  2) 資料整合:將所有的資料統一儲存在資料庫、資料倉庫或檔案中形成一個完整的資料集,這一過程主要用於消除冗餘資料。  3) 資料轉換:主要是對資料進行規格化操作,如將資料值限定在特定的範圍內。  4) 資料規約:剔除無法刻畫系統關鍵特徵的資料屬性,只保留部分能夠描述關鍵特徵的資料屬性集合。(降維、刪減、離散化)

1、資料清洗

  資料清洗技術的研究,最早是從糾正美國的社會保險號開始的。研究內容包括:

  • 對資料集進行異常檢測
  • 對資料物件去重
  • 對缺失資料的清洗 (近似值替換缺失值)

2、消除噪聲資料

  噪聲資料是一組測量資料中由隨機錯誤或偏差引起的孤立資料。消除噪聲資料的主要方法是分箱方法。分箱方法根據擬處理資料周圍的資料值,平滑需要處理的資料。具體分為"按箱平均值平滑"和"按箱邊界平滑"。

參考: [1]《大資料分析與計算》 湯羽/林迪/範愛華 清華大學出版社 [2]《基於資料倉庫的資料清洗方法研究》周芝芬