JOVANA
Explore Library Glossary Getting Started Three Levels Fields How it works Mission
Join the mission
All guides

資料科學究竟是什麼

一趟不帶術語的領域導覽,以及為什麼統計學是它的核心——從問題到決策的循環、資料的種類,以及統計學的兩項工作。

工作的一天:一個需要資料來回答的問題

想像你經營一家小小的手搖飲料店。上週你推出了一款新飲料——芋頭鮮奶茶——感覺很成功:店員忙個不停、排隊看起來很長,你也累得心滿意足地回家。週一你跟朋友說:「芋頭鮮奶茶真的很受歡迎。」你那位做事謹慎的朋友問了一個看似簡單的問題:「你怎麼知道的?」

這個問題正是資料科學的起點。此刻你擁有的是一種感覺,而感覺很容易騙人。也許上週剛好是發薪週,大家買什麼都買得多;也許隊伍看起來長,是因為有一台機器壞了,而不是需求上升;也許芋頭鮮奶茶賣得好,卻搶走了你最暢銷的黑糖奶茶的銷量,所以總營收其實沒有變。一個直覺沒辦法分辨這些不同的故事,但資料可以——只要你用對方法去問它。

把一個模糊的感覺,變成一個你真的能回答的問題,是這個領域裡第一項、也最被低估的技能。比較「芋頭受歡迎嗎?」(太模糊,無法回答)和「推出芋頭鮮奶茶之後,跟上市前四週相比,我們的平均每日營收有沒有提高?」後面這個版本指明了要量什麼、量哪一段期間、跟什麼相比。整個這條學習路線——以及這篇導覽——談的就是:用一種有紀律、誠實的方式,從這樣的一個問題,走到一個你站得住腳的決策。

用白話分清資料科學、統計學與機器學習

你會聽到三個幾乎被混用的詞——統計學、資料科學、機器學習——初學者常擔心自己沒搞懂它們之間某條清楚的界線。老實說,這些界線本來就很模糊,連專家也爭論不休。不過每個詞確實都有一個「重心」,用一個簡單的比喻就能說清楚。

統計學是三者中最古老的:它是一門「在不確定之中,從資料中學習」的數學科學。統計學提供一套嚴謹的工具,讓我們能問:「面對我蒐集到的這些起伏不定、充滿雜訊的數字,我能負責任地下什麼結論——而我又可能錯得多離譜?」它是讓所有人保持誠實的那一塊,也是整條學習路線的核心。

資料科學更寬廣、也更實務。它是把原始資料變成有用知識的整套功夫:找到並蒐集資料、清理雜亂、探索它、分析它(這時用到統計學),以及——這點很關鍵——把結果傳達給將據此行動的人。一位資料科學家需要一點統計、一點程式設計,還有一點對實際問題(飲料銷售、醫院候診時間、廣告點擊)的了解。你可以把統計學想成一個核心工具箱,而資料科學是「在真實世界裡使用這個工具箱」的完整工作。

機器學習(machine learning)是一族特定的技術,主要瞄準一件事:透過自動在資料中尋找模式來做預測。一個學會辨認哪些信件是垃圾的過濾器,或一個猜測哪些顧客會流失的模型,做的就是機器學習。它和統計學有大量重疊(許多方法是共用的),並屬於更大的領域——人工智慧(artificial intelligence)。現在你只要記住這個畫面:機器學習是資料科學家有時會拿來用的一項強大工具——不是工作的全部,也不是這條路線的重點。

工作流程的循環:提問 → 蒐集 → 清理 → 探索 → 建模 → 決策

幾乎每個真實專案都遵循同一條弧線,無論它花一個下午還是六個月。人們給它不同的名字——資料科學生命週期是其中一個——但這些步驟出奇地穩定。以下就是這個循環,套用在我們的芋頭鮮奶茶問題上。

  1. 問一個明確的問題。把「芋頭受歡迎嗎?」變成可衡量的:「推出芋頭鮮奶茶後,平均每日營收有沒有比前四週高?」並事先決定怎樣才算「是」。
  2. 蒐集資料。拉出對的紀錄——每日銷售、逐項收據、上市日期,也許還有天氣。決定「一列」代表什麼,並寫下每個數字的來源。
  3. 清理資料。修正錯字、刪掉重複收據、處理缺漏的價格、統一日期格式。這個不起眼的步驟最花時間——也最容易藏錯誤。
  4. 探索資料。在信任數字之前先把它畫出來。這就是探索性資料分析(EDA):看分布的形狀、看離散程度、看意外之處。眼睛能抓到公式漏掉的東西。
  5. 建模。用一個真正能回答問題的方法——在這裡,是把兩段期間相比、同時把雜訊考慮進去。「模型」可以簡單到只是一個謹慎算出的平均數,也可以複雜到一個迴歸。
  6. 做決策並溝通。把結果翻譯成行動(「留下芋頭、砍掉賣最差的那款」),並誠實地告訴大家你有多確定——包括哪些地方仍可能出錯。
這個工作流程是一個循環,不是一條直線。你在最後學到的(「營收幾乎沒動,但毛利改善了」)會把你送回去問一個更精準的問題。真實的專案會繞這個循環很多次。

一張環形圖,用箭頭連接各階段——提問、蒐集、清理、探索、建模、決策——並有一個箭頭從最後一個階段繞回第一個。

關於這個循環有兩點誠實的提醒。第一,它是反覆迭代的:你很少會走一遍就完工。探索資料時常會發現你的問題問錯了,於是又被送回起點。第二,聽起來最風光的步驟(建模、機器學習)通常只佔工作的一小部分。對從業者的調查一再發現,蒐集與清理資料吃掉了一半以上的時間。如果你能學會喜歡這個部分、而不是嫌棄它,你就已經領先大多數人了。

資料的種類:列、欄,以及變數的型別

在能分析任何東西之前,我們需要對「資料」長什麼樣有共同的畫面。大多數時候,它是一張表——像試算表一樣。每一列是你觀察到的一個東西(一筆訂單、一位顧客、一天),稱為觀測值。每一欄是你針對這些東西記錄的一個屬性(飲料名稱、價格、日期),稱為變數。單一格子裝著一個值:某一筆特定訂單的價格。

當一張表遵守一條簡單規則——每列一個觀測值、每欄一個變數、每格一個值——我們就稱它為整齊資料。整齊資料不是為了龜毛而龜毛;它是後續每一項工具(圖表、彙總、模型)都默默期待的形狀。雜亂的資料是分析卡關的頭號原因,所以及早認得整齊的形狀很值得。

一張整齊的飲料店訂單表:每一列是一筆訂單(觀測值),每一欄是一個變數(飲料、容量、價格、日期),而每一格裝著單一個值。

一個格狀表,列是一筆筆訂單,欄分別標示為飲料、容量、價格、日期,每格只有一個值。

現在來談關鍵的觀念:不是所有欄位都屬於同一種。變數型別分成兩大家族。類別變數記錄某物屬於哪一組——飲料名稱(芋頭、黑糖、綠茶)或容量(小、中、大)。有些類別有自然的順序(小 < 中 < 大——稱為有序的,ordinal),有些則沒有(飲料名稱——稱為名目的,nominal)。數值變數記錄一個你可以做算術的量——以元計的價格,或一筆訂單的品項數。數字也有兩種:離散的(整數計數,像 3 件)和連續的(刻度上的任意值,像重量 412.7 公克)。

import pandas as pd

# Each row is one order; each column is one variable.
orders = pd.read_csv('orders.csv')

orders.head()                   # peek at the first few rows
orders.describe()               # quick numeric summary: mean, min, max...
orders['drink'].value_counts()  # count orders per category
用 pandas(一個熱門的 Python 表格工具)做第一眼檢視。value_counts 彙總類別欄位;describe 彙總數值欄位。用哪一種彙總,取決於變數的型別。

統計學的兩項工作:描述與推論

統計學做兩件截然不同的工作,把它們分清楚,能讓你省下無數的混亂。第一件工作是描述你手上真正擁有的資料;第二件是推論一個你無法完整看見的更大世界。初學者把這兩者混為一談;專業人士則對「自己正在做哪一件」斤斤計較。

描述統計只是彙總你眼前的數字。如果今天有 500 位顧客買了飲料,他們付的平均價格、最常被點的飲料、最高與最低的帳單——這些是摘要統計量,它們的主張不會超出今天這 500 位顧客。最熟悉的一個是平均數(日常說的「平均」):把所有值加起來,再除以總個數。(當少數幾筆超大帳單會扭曲平均時,中位數——正中間的那個值——往往是更公允的摘要。)

\bar{x} = \frac{1}{n}\sum_{i=1}^{n} x_i

用符號寫出的樣本平均數:x̄(x-bar)是全部 n 個值的總和除以 n。我們先用文字介紹過它——公式只是你已經懂的觀念的速記。

接下來這個關鍵,正是第二項工作存在的原因。你幾乎永遠拿不到你在乎的「所有人」的資料。你在乎的是你所有的顧客,今天的、以及未來幾個月的——這整個群體叫做母體。但你能量到的永遠只是其中一片:剛好上門的人、剛好被你記錄到的那幾天。這一片就是樣本。整個統計學的冒險,就是用你手上的樣本,去對你拿不到的母體說出一些值得信賴的話。

一張圖說明推論:我們從一個大得多的母體(那團點雲)中抽出一個樣本(少數幾個點),量測這個樣本,再小心地往回推論整體。從樣本跳到母體的這一躍,正是不確定性進場的地方。

一大團標示為母體的點雲,其中一小圈被圈出的子集標示為樣本,並有一個箭頭從樣本指回母體。

推論統計——也叫統計推論——正是這一躍,只是要小心地做。因為樣本只是一片,任何你從它算出的數字(像今天的平均帳單),如果換一批顧客來抽,結果都會稍有不同。這種抖動是真實且可量測的;我們把它典型的大小稱為標準誤。一個美妙的事實——接下來兩篇會拆解它——是這個抖動會隨著樣本變大而縮小,大致與「樣本數開根號分之一」成比例。

\text{standard error} \;\approx\; \frac{\sigma}{\sqrt{n}}

這是預告,不是要你背的公式:樣本平均數的典型抖動,大約是資料的離散程度(σ)除以樣本數的開根號(√n)。樣本變成四倍,抖動才減半。

「好」長什麼樣:誠實、不確定性、可重現性

好的資料工作與壞的資料工作之間,大部分的差別不是技術能力——而是知識上的誠實。工具很容易跑;難的是那種「如實報告它們真正說了什麼」的紀律。三個習慣把值得信賴的分析者和其他人區分開來,整條學習路線也會不斷回到它們。

第一,永遠讓你的不確定性跟著答案一起出場。一個單一的數字像「營收上升 6%」,藏起了它可能有多搖晃。這正是我們要報告「範圍」的原因。信賴區間是標準的說法:「我最好的估計是 6%,而真實值合理地落在大約 1% 到 11% 之間。」但要當心全統計學中最常見的誤讀:95% 信賴區間「並不」表示「真實值有 95% 的機率落在這個特定範圍內」。這個 95% 描述的是「程序」——如果你把整套抽樣與計算的過程重複很多次,它產生的區間中約有 95% 會包含真實值。而你眼前的這個區間,要嘛包含、要嘛不包含。第 4 篇會把這點講精確;現在你只要尊重一件事:那個「95%」是方法的性質,不是對這一個區間下的賭注。

第二,永遠別把一個模式當成一個原因,也別把「在統計上顯著」當成「重要」。冰淇淋銷量與溺水人數一起上升,並不代表冰淇淋會淹死人——是炎熱的夏天同時推高了兩者。這就是相關不等於因果的陷阱,有一整條路線專門用來逃離它。同樣地,只要樣本夠大,你能偵測到一個小到永遠賺不回新飲料成本的營收變化:它是真的,卻幾乎沒有實用價值。統計顯著性回答的是「這大概不只是雜訊吧?」;它不回答「這大到值得在意嗎?」兩個問題都要問。

第三,讓你的工作可重現。如果你下個月無法重跑你的分析、並得到相同的答案,你就無法真正信任它——別人也無法。可重現性意味著把每一步寫成程式碼、而不是用手動點來點去,保留原始資料不動,並記下你做過的選擇。一開始它感覺像是多出來的工,但它是你能為未來的自己做的最大的一件好事。

這條路線接下來的內容

你現在握有地圖了。這條路線——機率與推論——建立起後面每一條路線都倚賴的核心推理。以下就是這條路,每一篇導覽聚焦一個大觀念。

  1. 隨機性、隨機變數與分配——不確定性的文法:機率、隨機變數,以及描述世界大半樣貌的那幾種分配形狀。
  2. 抽樣與中央極限定理——為什麼幾千個慎選的人就能代表數百萬人,以及為什麼平均數會變成可預測的鐘形。
  3. 估計與信賴區間——為你不知道的事情標上一個誠實的數字,並附上一個範圍。
  4. 假設檢定與 p 值——人人都在用、多數人卻讀錯的那套儀式,終於說清楚。
  5. 貝氏思考——做統計的另一條路:從一個信念出發,用證據更新它,再把答案讀成一個用得上的機率。

在這條路線之外,是這些觀念真正上工的地方。實驗設計教你 A/B 測試——公司究竟如何透過隨機分派得知什麼有效。迴歸,建立在最小平方法之上,衡量關係並做出預測。因果推論直面所有問題中最難的那個——X 真的造成 Y 嗎?而資料整理、視覺化與資料技術棧這幾條路線,涵蓋了把雜亂資料整好、看清楚、並穩定地把整套跑起來的實務功夫,一路通往生產環境的機器學習

你今天不需要把這些都背下來。你只需要你在這篇導覽裡已經練過的心態:問一個明確的問題、尊重你的樣本與真實世界之間的落差、並對自己有多確定保持誠實。帶著它,剩下的就只是把工具學起來,一次一個清楚的觀念。準備好了,就翻到下一頁。