|
|
# 定義資料科學
|
|
|
|
|
|
|  繪製的手繪筆記](../../sketchnotes/01-Definitions.png) |
|
|
|
| :----------------------------------------------------------------------------------------------------: |
|
|
|
| 資料科學的定義 - _由 [@nitya](https://twitter.com/nitya) 繪製的手繪筆記_ |
|
|
|
|
|
|
---
|
|
|
|
|
|
[](https://youtu.be/beZ7Mb_oz9I)
|
|
|
|
|
|
## [課前測驗](https://ff-quizzes.netlify.app/en/ds/quiz/0)
|
|
|
|
|
|
## 什麼是資料?
|
|
|
在我們的日常生活中,我們不斷被資料包圍著。你現在正在閱讀的文字就是資料。你智慧型手機中朋友的電話號碼列表是資料,手錶上顯示的當前時間也是資料。作為人類,我們自然地與資料互動,例如計算我們擁有的金錢或寫信給朋友。
|
|
|
|
|
|
然而,隨著電腦的誕生,資料變得更加重要。電腦的主要功能是進行計算,但它們需要資料來操作。因此,我們需要了解電腦如何存儲和處理資料。
|
|
|
|
|
|
隨著網際網路的出現,電腦作為資料處理設備的角色更加重要。如果仔細想想,我們現在使用電腦更多是用於資料處理和通信,而不是進行實際的計算。當我們寫電子郵件給朋友或在網際網路上搜尋資訊時,我們本質上是在創建、存儲、傳輸和操作資料。
|
|
|
> 你能記得上一次真正用電腦進行計算是什麼時候嗎?
|
|
|
|
|
|
## 什麼是資料科學?
|
|
|
|
|
|
在 [維基百科](https://en.wikipedia.org/wiki/Data_science) 中,**資料科學**被定義為 *一個科學領域,使用科學方法從結構化和非結構化資料中提取知識和洞察,並將資料中的知識和可行洞察應用於廣泛的應用領域*。
|
|
|
|
|
|
這個定義突出了資料科學的以下重要方面:
|
|
|
|
|
|
* 資料科學的主要目標是從資料中**提取知識**,換句話說,就是**理解**資料,找到一些隱藏的關係並建立**模型**。
|
|
|
* 資料科學使用**科學方法**,例如概率和統計。事實上,當*資料科學*這個術語首次被提出時,有些人認為資料科學只是統計學的一個新潮名稱。如今,顯然這個領域要廣泛得多。
|
|
|
* 獲得的知識應用於產生一些**可行的洞察**,即可以應用於實際商業情境的實用洞察。
|
|
|
* 我們應能操作**結構化**和**非結構化**資料。我們稍後會在課程中討論不同類型的資料。
|
|
|
* **應用領域**是一個重要概念,資料科學家通常需要在問題領域中至少具備一定程度的專業知識,例如:金融、醫學、行銷等。
|
|
|
|
|
|
> 資料科學的另一個重要方面是研究如何使用電腦收集、存儲和操作資料。雖然統計學為我們提供了數學基礎,資料科學則應用數學概念來實際從資料中獲得洞察。
|
|
|
|
|
|
根據 [Jim Gray](https://en.wikipedia.org/wiki/Jim_Gray_(computer_scientist)) 的說法,資料科學可以被視為一種獨立的科學範式:
|
|
|
* **實證科學**,主要依賴觀察和實驗結果
|
|
|
* **理論科學**,從現有科學知識中產生新概念
|
|
|
* **計算科學**,基於一些計算實驗發現新原則
|
|
|
* **資料驅動科學**,基於發現資料中的關係和模式
|
|
|
|
|
|
## 其他相關領域
|
|
|
|
|
|
由於資料無處不在,資料科學本身也是一個廣泛的領域,涉及許多其他學科。
|
|
|
|
|
|
<dl>
|
|
|
<dt>資料庫</dt>
|
|
|
<dd>
|
|
|
一個重要的考量是<b>如何存儲</b>資料,也就是如何以允許更快處理的方式結構化資料。有不同類型的資料庫可以存儲結構化和非結構化資料,這些我們會在<a href="../../2-Working-With-Data/README.md">課程中進一步探討</a>。
|
|
|
</dd>
|
|
|
<dt>大數據</dt>
|
|
|
<dd>
|
|
|
我們經常需要存儲和處理結構相對簡單但數量非常龐大的資料。有一些特殊的方法和工具可以將這些資料分散存儲在計算機集群中,並高效地進行處理。
|
|
|
</dd>
|
|
|
<dt>機器學習</dt>
|
|
|
<dd>
|
|
|
理解資料的一種方法是<b>建立模型</b>,該模型能夠預測所需的結果。從資料中開發模型被稱為<b>機器學習</b>。你可以查看我們的<a href="https://aka.ms/ml-beginners">機器學習初學者課程</a>以了解更多。
|
|
|
</dd>
|
|
|
<dt>人工智慧</dt>
|
|
|
<dd>
|
|
|
機器學習的一個分支領域稱為人工智慧(AI),它也依賴於資料,並涉及建立模仿人類思維過程的高複雜度模型。AI方法通常能夠將非結構化資料(例如自然語言)轉化為結構化洞察。
|
|
|
</dd>
|
|
|
<dt>視覺化</dt>
|
|
|
<dd>
|
|
|
大量的資料對人類來說是難以理解的,但一旦我們使用這些資料創建有用的視覺化,我們就能更好地理解資料並得出一些結論。因此,了解多種視覺化資訊的方法非常重要——這是我們在<a href="../../3-Data-Visualization/README.md">課程第三部分</a>中會涵蓋的內容。相關領域還包括<b>資訊圖表</b>和<b>人機互動</b>。
|
|
|
</dd>
|
|
|
</dl>
|
|
|
|
|
|
## 資料的類型
|
|
|
|
|
|
如我們之前提到的,資料無處不在。我們只需要以正確的方式捕捉它!區分**結構化**和**非結構化**資料是很有用的。前者通常以某種良好結構化的形式表示,通常是表格或多個表格,而後者則僅僅是文件的集合。有時我們也可以談論**半結構化**資料,它具有某種結構,但可能差異很大。
|
|
|
|
|
|
| 結構化 | 半結構化 | 非結構化 |
|
|
|
| ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | --------------------------------------- |
|
|
|
| 人員及其電話號碼的列表 | 帶有連結的維基百科頁面 | 《大英百科全書》的文字 |
|
|
|
| 過去20年中每分鐘建築物所有房間的溫度 | 以JSON格式存儲的科學論文集合,包括作者、出版日期和摘要 | 公司文件的文件共享 |
|
|
|
| 進入建築物的所有人的年齡和性別資料 | 網頁 | 監控攝像機的原始視頻流 |
|
|
|
|
|
|
## 資料的來源
|
|
|
|
|
|
資料的來源有很多,列舉所有來源是不可能的!然而,我們可以提到一些典型的資料來源:
|
|
|
|
|
|
* **結構化**
|
|
|
- **物聯網**(IoT),包括來自不同感測器(如溫度或壓力感測器)的資料,提供了許多有用的資料。例如,如果辦公樓配備了物聯網感測器,我們可以自動控制供暖和照明以降低成本。
|
|
|
- **調查問卷**,例如在購物後或訪問網站後要求用戶完成的問卷。
|
|
|
- **行為分析**,例如幫助我們了解用戶瀏覽網站的深度以及離開網站的典型原因。
|
|
|
* **非結構化**
|
|
|
- **文字**可以是豐富的洞察來源,例如整體**情感分數**,或提取關鍵字和語義含義。
|
|
|
- **圖片**或**視頻**。監控攝像機的視頻可以用來估算道路上的交通流量,並通知人們可能的交通堵塞。
|
|
|
- 網頁伺服器的**日誌**可以用來了解我們網站的哪些頁面最常被訪問,以及訪問的時長。
|
|
|
* **半結構化**
|
|
|
- **社交網絡**圖表可以是用戶個性和信息傳播潛力的絕佳資料來源。
|
|
|
- 當我們擁有一堆派對照片時,我們可以嘗試通過建立人們互相拍照的圖表來提取**群體動態**資料。
|
|
|
|
|
|
了解不同的資料來源後,你可以嘗試思考不同的情境,應用資料科學技術來更好地了解情況並改善業務流程。
|
|
|
|
|
|
## 資料的用途
|
|
|
|
|
|
在資料科學中,我們專注於資料旅程的以下步驟:
|
|
|
|
|
|
<dl>
|
|
|
<dt>1) 資料獲取</dt>
|
|
|
<dd>
|
|
|
第一步是收集資料。雖然在許多情況下這可能是一個簡單的過程,例如資料從網頁應用程式進入資料庫,但有時我們需要使用特殊技術。例如,來自物聯網感測器的資料可能過於龐大,使用像IoT Hub這樣的緩衝端點來收集所有資料以進行後續處理是一個好方法。
|
|
|
</dd>
|
|
|
<dt>2) 資料存儲</dt>
|
|
|
<dd>
|
|
|
存儲資料可能具有挑戰性,特別是當我們談論大數據時。在決定如何存儲資料時,考慮未來希望如何查詢資料是有意義的。資料可以通過以下幾種方式存儲:
|
|
|
<ul>
|
|
|
<li>關聯式資料庫存儲表格集合,並使用一種名為SQL的特殊語言來查詢它們。通常,表格被組織到不同的組中,稱為模式。在許多情況下,我們需要將資料從原始形式轉換為適合模式的形式。</li>
|
|
|
<li><a href="https://en.wikipedia.org/wiki/NoSQL">NoSQL</a>資料庫,例如<a href="https://azure.microsoft.com/services/cosmos-db/?WT.mc_id=academic-77958-bethanycheum">CosmosDB</a>,不對資料強制執行模式,並允許存儲更複雜的資料,例如分層的JSON文件或圖表。然而,NoSQL資料庫沒有SQL的豐富查詢功能,並且無法強制執行參考完整性,即表格結構和表格之間關係的規則。</li>
|
|
|
<li><a href="https://en.wikipedia.org/wiki/Data_lake">資料湖</a>存儲用於以原始、非結構化形式存儲大量資料。資料湖通常用於大數據,當所有資料無法容納在一台機器上時,必須由伺服器集群存儲和處理。<a href="https://en.wikipedia.org/wiki/Apache_Parquet">Parquet</a>是通常與大數據一起使用的資料格式。</li>
|
|
|
</ul>
|
|
|
</dd>
|
|
|
<dt>3) 資料處理</dt>
|
|
|
<dd>
|
|
|
這是資料旅程中最令人興奮的部分,涉及將資料從原始形式轉換為可用於視覺化/模型訓練的形式。當處理非結構化資料(如文字或圖片)時,我們可能需要使用一些AI技術來提取<b>特徵</b>,從而將其轉換為結構化形式。
|
|
|
</dd>
|
|
|
<dt>4) 視覺化 / 人類洞察</dt>
|
|
|
<dd>
|
|
|
為了理解資料,我們通常需要對其進行視覺化。擁有多種視覺化技術,我們可以找到合適的方式來獲得洞察。通常,資料科學家需要“玩轉資料”,多次進行視覺化並尋找一些關係。此外,我們可能使用統計技術來測試假設或證明不同資料之間的相關性。
|
|
|
</dd>
|
|
|
<dt>5) 訓練預測模型</dt>
|
|
|
<dd>
|
|
|
由於資料科學的最終目標是能夠根據資料做出決策,我們可能希望使用<a href="http://github.com/microsoft/ml-for-beginners">機器學習</a>技術來建立預測模型。然後,我們可以使用這些模型對具有相似結構的新資料集進行預測。
|
|
|
</dd>
|
|
|
</dl>
|
|
|
|
|
|
當然,根據實際資料的不同,有些步驟可能會缺失(例如,當我們已經在資料庫中擁有資料,或者當我們不需要模型訓練時),或者有些步驟可能會重複多次(例如資料處理)。
|
|
|
|
|
|
## 數位化與數位轉型
|
|
|
|
|
|
在過去的十年中,許多企業開始理解在做出商業決策時資料的重要性。要將資料科學原則應用於企業運營,首先需要收集一些資料,也就是將業務流程轉化為數位形式。這被稱為**數位化**。將資料科學技術應用於這些資料以指導決策,可以顯著提高生產力(甚至是業務轉型),這被稱為**數位轉型**。
|
|
|
|
|
|
讓我們來看一個例子。假設我們有一門資料科學課程(像這門課程),我們在線上向學生提供,並希望利用資料科學來改進它。我們該怎麼做?
|
|
|
|
|
|
我們可以先問自己“什麼可以數位化?”最簡單的方法是測量每位學生完成每個模組所需的時間,並通過在每個模組結束時進行選擇題測試來測量所獲得的知識。通過計算所有學生的平均完成時間,我們可以找出哪些模組對學生來說最具挑戰性,並著手簡化它們。
|
|
|
> 您可能會認為這種方法並不理想,因為模組的長度可能不同。或許更公平的做法是將時間除以模組的長度(以字元數計算),然後比較這些值。
|
|
|
|
|
|
當我們開始分析多選測驗的結果時,可以嘗試找出學生難以理解的概念,並利用這些資訊來改進內容。為了做到這一點,我們需要設計測驗,使每個問題都能對應到某個特定的概念或知識塊。
|
|
|
|
|
|
如果我們想進一步深入分析,可以將每個模組所需的時間與學生的年齡類別進行對比。我們可能會發現某些年齡層完成模組所需的時間過長,或者學生在完成模組之前就中途退出。這可以幫助我們為模組提供年齡建議,並減少因錯誤期望而導致的不滿。
|
|
|
|
|
|
## 🚀 挑戰
|
|
|
|
|
|
在這次挑戰中,我們將嘗試通過分析文本來找出與資料科學領域相關的概念。我們將選取一篇關於資料科學的維基百科文章,下載並處理文本,然後建立一個像這樣的文字雲:
|
|
|
|
|
|

|
|
|
|
|
|
請訪問 [`notebook.ipynb`](../../../../1-Introduction/01-defining-data-science/notebook.ipynb ':ignore') 閱讀程式碼。您也可以執行程式碼,並即時查看它如何進行所有的資料轉換。
|
|
|
|
|
|
> 如果您不知道如何在 Jupyter Notebook 中執行程式碼,可以查看 [這篇文章](https://soshnikov.com/education/how-to-execute-notebooks-from-github/)。
|
|
|
|
|
|
## [課後測驗](https://ff-quizzes.netlify.app/en/ds/quiz/1)
|
|
|
|
|
|
## 作業
|
|
|
|
|
|
* **任務 1**:修改上述程式碼,找出與 **大數據** 和 **機器學習** 領域相關的概念
|
|
|
* **任務 2**:[思考資料科學場景](assignment.md)
|
|
|
|
|
|
## 致謝
|
|
|
|
|
|
本課程由 [Dmitry Soshnikov](http://soshnikov.com) 用 ♥️ 編寫。
|
|
|
|
|
|
---
|
|
|
|
|
|
**免責聲明**:
|
|
|
本文件已使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。儘管我們努力確保翻譯的準確性,但請注意,自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應被視為權威來源。對於關鍵信息,建議使用專業人工翻譯。我們對因使用此翻譯而產生的任何誤解或誤釋不承擔責任。 |