底下為概略的課綱,實際內容會隨著學生的反應調整。
(原先預定會涵蓋的容器技術,因為比較屬於 DevOps 技術而不是資料分析技術,經過考量先從課綱中往後挪,如果課程最後有足夠的時間才會再排入課綱。)
學生需了解網路基本原理、熟悉 Python 程式設計、熟悉命令列指令操作。
讓學生瞭解巨量資料分析理論,並知悉巨量資料分析技術,預期課程結束時,學生能以 Python 相關套件實作出一個財金應用專題。
- 課堂參與及個人新知報告 (20%)
- 平時作業 (20%)
- 期中考 (30%)
- 期末報告 (30%)
- Sebastian Raschka, Python Machine Learning, Packt Publishing, 2015
- 林大貴, Python+Spark 2.0+Hadoop機器學習與大數據分析實戰, 博碩出版社, 2016
- 林大貴, TensorFlow+Keras深度學習人工智慧實務應用, 博碩出版社, 2017
(上面書籍學校圖書館或高雄市立圖書館應該都借的到,也可查詢一下高雄雲端書庫裡面有沒有。)
- Python簡介
- Homework 01 - DUE: 2018/03/16 12:00pm (中午 12 點)
先複習一下 Numpy, MatPlotLib,然後再簡單的說明一下機器學習的概念跟 Python 套件、模組 (e.g., scikit-learn) 的使用。從動手做激發同學們的對理論自發性的探索。
複習 Pandas,然後繼續說明一下 supervised 跟 unsupervised machine learning 的例子。講了一點點 dimensionality reduction 跟 preprocessing。
繼續說明 dimensionality reduction, preprocessing, model selection 等概念。
- 關於 Overfitting
- 什麼是 L1/L2 Regularization
- Model Selection
- SVM with polynomial kernel visualization
- Data Preprocessing
- Model Evaluation
- Big Data 簡介講義
- Homework 03 - DUE: 2018/04/19 6:00pm (上課前)
- 參考:[資料分析&機器學習] 第4.1講 : Kaggle競賽-鐵達尼號生存預測�(前16%排名)
我們稍微說明了 Hadoop Ecosystem 及 HDFS 的架構。然後動手操作電腦中心的大數據平台,不過一開始上課時遇到一些讀寫的問題 (已修正)。之後,我們安裝了 Virtualbox,並嘗試下載最新的 Ubuntu 映像檔來使用,不過遇到版本不符的問題。所以,最後我們使用 vagrant 直接下載 Virtual Machine 的 Box 來使用。
我會請電腦中心開帳號給各位同學來練習使用 HDFS。
另外,希望各位同學嘗試使用 virtualbox 在自己的電腦上面安裝一個 Linux 作業系統來做練習。如果想要學習使用 vagrant,可以參考這個連結。
- 管院電腦中心大數據平台使用手冊(努力撰寫中)
- Single Node Cluster 安裝指令
- Multi Node Cluster 安裝指令
- Hadoop+Spark安裝設定
- Linux檔案與目錄管理指令
- vagrantbox.es
本次上課,我們在學校的電腦上使用 VirtualBox 安裝了 Ubuntu 16.04,並稍微說明 Linux 的使用。
每個同學都有收到一組帳號密碼,可以在管院電腦中心的 Hadoop 集群上面練習 HDFS 的使用。
另外,我們還說明如何在 AWS EC2 建立的 Instance 上面設定 notebook server,好讓 local 端可以連上雲端使用 Jupyter notebook。如果想要善用雲端的 GPU,也可以透過這樣的方式使用。
- 複習一下 Hadoop 的核心觀念。參考:Hadoop 簡介
- 簡介 Spark
- 在大數據平台上操作 spark shell,讀取 HDFS 上的文字檔。
- 說明 RDD, DataFrame, Dataset
- 說明 Transformation 及 Action APIs
- 複習 Python 的 Functional Programming 工具:lambda, map, reduce, filter
- 複習 Python 的 OOP
- 簡介神經網路
- 簡介 Keras
- Homework 04 - DUE: 5/31 (四) 06:00pm (上課前)
- 說明使用 Keras 建的 MLP 來做 Titanic 資料集的生存預測
- 說明 GD 跟 SGD。參考此一連結。
- 說明 Python 的 yield 關鍵字跟 Generator
- 說明 online learning 跟 mini-batch
- OOP範例
- Homework 05 - DUE: 6/07 (四) 06:00pm (上課前)
- 請務必分好組 (三人一組),並決定期末報告的題目
- Spark 介紹與安裝
- Bonus 01 - DUE: 6/14 (四) 06:00pm (上課前)
- 管理學院大數據平台使用說明
- 期末報告摘要,DUE: 6/21 (四) 06:00pm (上課前)
- 複習了整個學期的課程內容
- 課程中無法涵蓋的熱門主題,如 docker, kubernetes, reinforcement learning,則給同學們一些方向,讓同學們自主學習。
- VirtualBox下載
- Python官網
- scikit-learn官網
- kaggle官網
- Docker官網
- Kubernetes
- Ansible官網
- Vagrant官網
- Hadoop官網
- Spark官網
- Keras 官網
- Theano - 注意:Theano 已不再更新。
- TensorFlow 官網
- CNTK
- PyTorch 官網
- Deep Learning 中文版
- Keras 中文說明文件
- 與高中生談 Deep Learning (蔡炎龍老師)
- Deep Learning by Andrew Ng
- CS231n: Convolutional Neural Networks for Visual Recognition
- 李宏毅老師 YouTube 頻道
- Unofficial Windows Binaries for Python Extension Packages
- UC Irvine Machine Learning Repository
- 鳥哥Linux私房菜
- 現代 IT 人一定要知道的 Ansible 自動化組態技巧
- 數據分析專題(一):引爆資料中心革命:雲端運算
- 數據分析專題(二):從儲存、挖掘到溝通,引領產業新面貌:大數據(Big Data)
- 數據分析專題(三):人工智慧的黃金年代:機器學習
- 數據分析專題(四):機器學習的衰頹興盛:從類神經網路到淺層學習
- 數據分析專題(五):類神經網路的復興:深度學習簡史
- 數據分析專題(六):神經網路的復興:重回風口的深度學習