1. 程式人生 > >[Note] 實用資料分析Chap.1

[Note] 實用資料分析Chap.1

Chap1.緒論

資料分析橫跨了:電腦科學、人工智慧、機器學習、統計學、數學以及專業領域知識等多個領域。

1.1 電腦科學

程式設計、資料庫管理、網路管理、高效能運算

1.2 人工智慧

模擬智慧行為的演算法。實施需要推理、相似性搜尋或者無監督分類的智慧活動。

1.3 機器學習

沒有明確程式設計的情況下,賦予計算機進行學習的能力。

(有監督學習、無監督學習、強化學習)

1.4 統計學

模擬、貝葉斯方法、 預測、迴歸、線性分析、分類。

1.5 數學

線性代數、數值法、條件概念演算法。

1.6 專業領域知識

1.7 資料、資訊和知識

1.7.1 內部聯絡

資料data(facts)---->資訊information(organized facts)---->知識knowledge(apply our experience to data & information)

e.g.

data:(直接調查)多少顧客購買、滿意程度 

information:(專案報告)基於競爭者的產品,得到價格與顧客滿意度的關係

knowlegdge:(改進方案)產品的製造成本、運輸成本、品質

1.7.2 資料的本質

分型別:定類的、定序的

數值型:離散的、連續的

1.8 資料分析過程

問題--->資料準備(獲取、清洗、標準化、轉化)--->資料探索(統計、視覺化)--->預測建模--->成果視覺化

1.8.1 問題

推理性、預測性、描述性、探索性、因果、相關性

1.8.2 資料準備

可能出現的資料問題:無效資料、資料分歧、超過範圍的資料、缺失資料

好的資料的特徵:完整性、一致性、無歧義、可計量、正確性、標準化、無冗餘

1.8.3 資料探索

採用圖形或者統計的形式來考查資料,找到資料中存在的模型、關聯或關係。視覺化的方法可以提供資料預覽,從而找到可能有意義的模式。(D3.js)

1.8.4 預測建模

預測建模:一種統計手法,通過分析現有資訊以及歷史的資料預測未來的行為。是一種資料分析的過程,創造或者選擇一種統計模型,目的是為了更好地預測可能的輸出。

模型 演算法
分類的結果(分類) 樸素貝葉斯分類法
自然語言工具包 + 樸素貝葉斯分類法
數值型結果(迴歸) 隨機遊走
支援向量機
基於距離的方法+K最鄰近值
細胞自動機
描述性建模(聚類) 快速動態事件規整(Fast Dynamic Time Warping, FDTW)+ 距離度量
force 佈局和 Fruchterman-Reingold 佈局

需要對模型進行評估從而實現對特定問題的解答最優化。較優的預測結果會有一種模型符合潛在的假設。

如何判斷預測模型是否準確?證明有價值的資訊被正確表達?(確保不過分優化、不過分擬合)

· 交叉驗證:將資料劃分為樣本量相等的子集,測試預測建模的結果進而評估模型的實際表現。執行交叉驗證進而判斷各模型的健壯性,同時評估多個模型的結果以確認最優模型。

· 保持樣本:大資料集隨機分為訓練集、驗證集、測試集。

1.8.5 結果視覺化

三維圖、散點圖矩陣…(模型假設、 特徵空間維度、資料)

D3.js、Python 裡的 matplotlib 工具

1.9 定量與定性資料分析

· 定量資料:結構化資料、統計分析、客觀的結論

· 定性資料:非結構化資料、概括、主觀的結論

(1)資料沒有邏輯順序,只能分類

(2)資料有邏輯順序,不同值之間差別不連續

(3)資料連續並有邏輯順序。不同值之間存在標準化的差異,不包括零值

(4)資料連續並有邏輯順序,包含零值

1.10 資料視覺化的重要性

對資料中暗含的新模式或關係進行揭露。

探索性資料分析的目標:發現數據錯誤、檢驗假設、找到潛在的模式、適合模型的初步選擇、決定變數間的相互關係

1.11 大資料

資料量龐大:(並聯分散式架構雲端計算平臺提供處理資料的方式)

資料形式:結構化、非結構化、多結構化

速度:需要實施快速分析

最常見的架構是 MapReduce ,通過分散式叢集來對大資料集進行同步的程式設計模式。Apache Hadoop 是 MapReduce 架構中最常用的實施方式。

另外有 NoSQL 和大規模平行處理資料儲存(Massively Parallel Processing, MPP)

如何處理 PB 級的資料?資料模糊性?

“更好的演算法、更多的資料、更好的資料”

1.12 自我量化

感測器和攝像頭、社交網路分析