/BigData20180301

巨量資料導論 上課資料

Primary LanguageJupyter Notebook

巨量資料分析導論 上課資料

底下為概略的課綱,實際內容會隨著學生的反應調整。

(原先預定會涵蓋的容器技術,因為比較屬於 DevOps 技術而不是資料分析技術,經過考量先從課綱中往後挪,如果課程最後有足夠的時間才會再排入課綱。)

修課前提:

學生需了解網路基本原理、熟悉 Python 程式設計、熟悉命令列指令操作。

課程目標:

讓學生瞭解巨量資料分析理論,並知悉巨量資料分析技術,預期課程結束時,學生能以 Python 相關套件實作出一個財金應用專題。

評分方式:

  • 課堂參與及個人新知報告 (20%)
  • 平時作業 (20%)
  • 期中考 (30%)
  • 期末報告 (30%)

參考書籍:

(上面書籍學校圖書館或高雄市立圖書館應該都借的到,也可查詢一下高雄雲端書庫裡面有沒有。)

課綱:

Week 01. 課堂大綱解說與電腦環境設定說明

Week 02. Python 簡介

Week 03. Python 機器學習 (一)

先複習一下 Numpy, MatPlotLib,然後再簡單的說明一下機器學習的概念跟 Python 套件、模組 (e.g., scikit-learn) 的使用。從動手做激發同學們的對理論自發性的探索。

Week 04. Python 機器學習 (二)

複習 Pandas,然後繼續說明一下 supervised 跟 unsupervised machine learning 的例子。講了一點點 dimensionality reduction 跟 preprocessing。

Week 05. Python 機器學習 (三)

繼續說明 dimensionality reduction, preprocessing, model selection 等概念。

Week 06. 國定假日,不上課! (Oh Yeah~)

Week 07. 巨量資料 (Big Data) 分析簡介

Week 08. 雲端服務簡介

Week 09. 期中複習 (公布期中考題目)

Week 10. Hadoop 簡介

我們稍微說明了 Hadoop Ecosystem 及 HDFS 的架構。然後動手操作電腦中心的大數據平台,不過一開始上課時遇到一些讀寫的問題 (已修正)。之後,我們安裝了 Virtualbox,並嘗試下載最新的 Ubuntu 映像檔來使用,不過遇到版本不符的問題。所以,最後我們使用 vagrant 直接下載 Virtual Machine 的 Box 來使用。

我會請電腦中心開帳號給各位同學來練習使用 HDFS。

另外,希望各位同學嘗試使用 virtualbox 在自己的電腦上面安裝一個 Linux 作業系統來做練習。如果想要學習使用 vagrant,可以參考這個連結

Week 11. HDFS 使用練習 (一)

本次上課,我們在學校的電腦上使用 VirtualBox 安裝了 Ubuntu 16.04,並稍微說明 Linux 的使用。

每個同學都有收到一組帳號密碼,可以在管院電腦中心的 Hadoop 集群上面練習 HDFS 的使用。

另外,我們還說明如何在 AWS EC2 建立的 Instance 上面設定 notebook server,好讓 local 端可以連上雲端使用 Jupyter notebook。如果想要善用雲端的 GPU,也可以透過這樣的方式使用。

Week 12. HDFS 使用練習 (二)

  • 複習一下 Hadoop 的核心觀念。參考:Hadoop 簡介
  • 簡介 Spark
  • 在大數據平台上操作 spark shell,讀取 HDFS 上的文字檔。
  • 說明 RDD, DataFrame, Dataset
  • 說明 Transformation 及 Action APIs
  • 複習 Python 的 Functional Programming 工具:lambda, map, reduce, filter

Week 13. 深度學習簡介 (一)

Week 14. 深度學習簡介 (二)

  • 說明使用 Keras 建的 MLP 來做 Titanic 資料集的生存預測
  • 說明 GD 跟 SGD。參考此一連結
  • 說明 Python 的 yield 關鍵字跟 Generator
  • 說明 online learning 跟 mini-batch
  • OOP範例
  • Homework 05 - DUE: 6/07 (四) 06:00pm (上課前)

Week 15. Spark 機器學習 (一)

Week 16. Spark 機器學習 (二)

Week 17. 拾缺補遺

  • 複習了整個學期的課程內容
  • 課程中無法涵蓋的熱門主題,如 docker, kubernetes, reinforcement learning,則給同學們一些方向,讓同學們自主學習。

Week 18. 期末報告

  • 每組五分鐘,擇要報告期末報告內容。
  • 每組需將期末報告做成網頁上線,內容參考這裡
  • 各組主題及網址

Week XX. 容器技術簡介

參考資料:

深度學習相關:

其他相關資料: