Alan Tsai 的學習筆記


學而不思則罔,思而不學則殆,不思不學則“網貸” 記錄軟體開發的點點滴滴 著重於微軟技術、網頁開發、DevOps、C#, Asp .net Mvc、Azure、AI、Chatbot、Docker、Data Science

[Data Science 到底是什麼從一個完全外行角度來看][13]Data的運用 - 介紹篇

image
圖片來源: https://pixabay.com/en/books-spine-colors-pastel-1099067/https://pixabay.com/en/math-blackboard-education-classroom-1547018/

還記得之前提到過,如果Data是原油那麼Data Science就是提煉成石油的技術

到目前為止,解決了Data的儲存和運算的部分。但是就算可以處理Big Data,該怎麼處理?如何把處理結果變成有意義或者可以動作的策略

如果說,Big Data的儲存和運算在武俠小說裡面屬於內功的話那麼Data Process Workflow(資料處理流程)就同等於招式一樣。

沒有足夠的內力(Data),招式在精妙也沒有用(就像瞎子摸象,就算摸的技巧再好,也因為局限的關係摸不到全貌,一定會有偏頗)。

反過來說,如果內力深厚,但是不會招式,那麼同等於英雄無用武之地。

在這個系列的接下來將會著重在介紹Data Processing的部分。這篇將會是概觀介紹。

Data Processing Workflow指的是什麼?

Data Processing Workflow其實非常廣的一個詞,所以這邊會定義一下這裡指的是什麼。

image
Data Processing Workflow圖
還記不記得之前的這張圖?這次有做了一些調整。

中間的Big Data

這邊變成了灰色表示已經講完了。Big Data在中間是因為整個的核心其實是Data。如果沒有Data就算有在好的“招式”也沒有用。

一切從解決問題開始

整個的Workflow從想找到某個問題的解決方案開始。這個非常重要。因為接下來的處理方式都是依照這個問題來延伸出來。

這個和開發軟體一樣,如果一開始的需求分析就錯了,那麼後面做的再好客戶一定不滿意,因為這個不是他想解決的問題

題外話,還記得之前提到Data Scientist有提到會需要某個Domain Knowledge(領域知識) - 因為沒有這個領域知識根本問不出問題。

Exploratory Analysis階段

在這個部分,將會依照想要處理的問題去收集資料、收集完了之後需要對資料進行處理和分析,然後才會有所謂的clean data(乾淨)

反過來說,如果一開始問題定義不明確,或者對於整個Domain不熟悉,那麼收集的資料一定會有偏頗,對有偏頗的資料進行處理和分析肯定就錯了。

這個階段會需要:

  • 資料清洗的能力 - 在不同領域有不同名稱,例如:Extract Transofrm and Load (ETL)或者Data Munging
  • 統計學的概念 - 這樣才會有辦法作分析
  • Data Visualization(資料視覺化)的技能 - 這樣才更好了解資料

這個階段也是傳統Data Analysis在做的事情。

這個階段花的時間最多 - 有做過研究,大約80%的時間都是花在這個階段。

Machine Learning (機器學習) 階段

傳統的Data Analysis(資料分析)是不會有Machine Learning的階段,或者準確一點說,並不會像現在Machine Learning的定義方式來產生出模型。

個人覺得Machine Learning(以下簡稱ML)這個詞有點誤導傾向,因為聽到ML第一個想到的是 AI。好像是在講AI自動進化的感覺。但是,實際上不是,或者說只是AI進化的一小塊部分而已。

image
ML process

整個Machine Learning的目的是在建立一個Prediction Model。透過這個Prediction Model,只需要把資料丟進去,就會得到“準確”的預測結果。

而Prediction Model其實就是 Clean Data + Algorithm最後產生出來。

而Algorithm是什麼?其實就是一些Statistical Model(統計模型)定義出來。

所以ML和一般程式開發很不一樣,一般程式開發寫的是邏輯,但是ML其實不是寫邏輯,而是挑選最適合目前預測內容和資料的algorithm。所以他在調整的是兩個東西:

  1. Training Data (也就是Clean Data)
  2. Algorithm - 使用哪個演算法和演算法本身參數的調整

所以最後的Prediction Model找到的不是最終解法,而是找到Data之間的關聯性,因此Model不會一直有效,因為假設什麼原因導致那個關聯性斷了,Model就不準確了。

以上是一個非常快速的介紹ML,之後會到了ML階段會有更深入的一些介紹。

發佈

不管有沒有走ML,最後一定會有一些分析結果或者有走ML會有Prediction Model。

這些資訊如何容易的呈現給他人來看?如何把Model變成簡單方式就可以讓一般人操作?這個階段其實就是把整個結果很好的呈現出來。

這個Workflow裡面,越前面的階段越重要,換句話說,定義問題最重要。因為,每一個階段的動作會相依上一個階段的結果,所謂 失之毫釐,差以千里,因此很長會在 各個階段往回跳來跳去

需要有什麼提前知識?

在接下來的內容,會需要有個前置條件,就是多多少少有碰過程式開發。

不需要很深入的了解,但是要有基本知識像是什麼是variable(參數)這種很簡單的概念即可。

因為,接下來的一些資料處理都會使用R語言,這邊不會一個一個語法介紹R。只會把整個的歷史和特色概念介紹一下,剩下都是邊操作邊說明,因此如果從來沒有碰過程式肯能會覺得不太懂(不過應該就算沒有碰過程式開發應該也會看的懂才對)

至於另外一個重要的概念:一些簡單的統計概念也會很有幫助,不過這個部分會有特定篇幅做一些簡單介紹,因為如果沒有這些背景在看一些Data Process的時候會看不太懂。

結語

這篇對於整個Data運用的整個階段做了一個簡單和快速的介紹,為接下來介紹的內容先打下一些基礎。

下篇([14]如何問對的問題?)將會從最終要的部分開始,怎麼定義一個問題?什麼樣的定義才是好的定義。

comments powered by Disqus