《機器學習實戰》學習大綱

夏普通發表於2018-12-01

學習大綱

整個機器學習內容包括:基礎、分類、預測、無監督式學習、降維與分散式幾大塊進行。總共計劃 12 周時間。
基礎:第 1 章
分類: 第 1~7 章
預測:第 8~9 章
無監督式學習:第 10~12 章
降維與分散式:第 13~15 章

01 機器學習基礎(第一週)

https://blog.csdn.net/qq_34243930/article/details/84948770
1.1 Python 基礎知識,Numpy、pandas、Matplotlib 等庫的簡介
1.2 開發環境的搭建:Python3 + Anaconda + Jupyter Notebook
1.3 Jupyter Notebook 使用簡介

第一節學習內容
學習時間: 12/2
任務1題目: 觀看機器學習實戰緒論視訊+天池o2o比賽完全流程解析PPT
在這裡插入圖片描述
任務詳解: 第一次視訊課主要以《機器學習實戰》第一章為基礎,主要介紹機器學習的基本概念、演算法型別、推薦學習路線和一些預備知識,包括Numpy、Pandas、Matplotlib 等Python 基本庫。還有天池o2o比賽完全流程解析。
作業: 註冊天池賬號,報名參加比賽。提交結果,檢視成績。(結果 submit1.csv檔案提供,只需按照直播視訊講述的方法提交檢視成績就好。submit1.csv 檔案已放置在上)

第二節學習內容
學習時間: 12/3
**任務1題目:**配置開發環境,熟悉 Jupyter Notebook
**任務詳解:**以Python3為開發語言,安裝軟體Anaconda。Anaconda自帶Jupyter Notebook,熟悉Jupyter Notebook的基本用法。
參考資料:
[Jupyter Notebook入門教程(上)]
( https://mp.weixin.qq.com/s/O2nTGOtqGR-V33-YJgPgJQ)
[Jupyter Notebook入門教程(下)]
( https://mp.weixin.qq.com/s/AwSzkjlpwvdUzh6CmHq6AQ)
**作業:**使用Jupyter Nootbook,對Numpy、Pandas、Matplotlib各寫一個小的demo程式。要求是解釋性說明和程式碼相結合的形式。

02 k-近鄰演算法(第一週)

https://blog.csdn.net/qq_34243930/article/details/84948770
2.1 k-近鄰演算法概述
2.2 示例:使用 k-近鄰演算法改進網站的配對效果
2.3 示例:手寫識別系統

學習內容
學習時間: 12/4—12/7
任務1題目: 書籍閱讀
任務詳解: 閱讀《機器學習實戰》書籍第二章2.1、2.2、2.3章節
參考資料: 李航《統計學習方法》第3章

作業1: 簡要概括 k-近鄰演算法的原理,優缺點。
作業2: 將本章中“使用 k­近鄰演算法改進網站的配對效果”完整程式碼鍵入,並新增詳細註釋。
作業3: 將本章中“手寫識別系統”完整程式碼鍵入,並新增詳細註釋。

03 決策樹(第二週)

https://blog.csdn.net/qq_34243930/article/details/84948790
3.1 決策樹的構造
3.2 在 Python 中使用 Matplotlib 註解繪製樹形圖
3.3 測試和儲存分類器
3.4 示例:使用決策樹預測隱形眼鏡型別

學習內容
學習時間: 12/09-12/10
任務1題目: 書籍閱讀
任務詳解: 閱讀《機器學習實戰》書籍第三章3.1、3.3、3.4節(3.2節選做)
參考文獻: 李航《統計學習方法》第5章中的5.1-5.3節

作業1: 概括決策樹分類演算法的原理。
作業2: 在構建一個決策樹模型時,我們對某個屬性分割節點,下面四張圖中,哪個屬性對應的資訊增益最大?
在這裡插入圖片描述
作業3: 將本章中“使用決策樹預測隱形眼鏡型別”完整程式碼鍵入,並新增詳細註釋。

04 樸素貝葉斯(第二週)

https://blog.csdn.net/qq_34243930/article/details/85016783
4.1 基於貝葉斯決策理論的分類方法
4.2 條件概率
4.3 使用條件概率來分類
4.4 使用樸素貝葉斯進行文件分類
4.5 使用 Python 進行文字分類
4.6 示例:使用樸素貝葉斯過濾垃圾郵件
4.7 示例:使用樸素貝葉斯分類器從個人廣告中獲取區域傾向

學習內容
學習時間: 12/11-12/14
任務1題目: 書籍閱讀
任務詳解: 閱讀《機器學習實戰》書籍第四章
參考文獻: 李航《統計學習方法》第4章
參考資料: [通俗易懂!白話樸素貝葉斯]
( https://mp.weixin.qq.com/s/7xRyZJpXmeB77MZNLqVf3w)
作業1: 概括樸素貝葉斯分類演算法的原理,為什麼稱之為“樸素”?
作業2:
在這裡插入圖片描述
試由下表的訓練資料學習一個樸素貝葉斯分類器並確定x=(2,S)的類標記y。表中X1和X2為特徵。
作業3: 將本章中“使用樸素貝葉斯過濾垃圾郵件”完整程式碼鍵入,並新增詳細註釋。
作業4: 將本章中“使用樸素貝葉斯分類器從個人廣告中獲取區域傾向”完整程式碼鍵入,並新增詳細註釋。

05 Logistic 迴歸(第三週)

https://blog.csdn.net/qq_34243930/article/details/86772736
5.1 基於 Logistic 迴歸和 Sigmoid 函式的迴歸
5.2 基於最優化方法的最佳迴歸係數確定
5.3 示例:從疝氣病症預測病馬的死亡率

第一節學習內容
學習時長:12/16-12/17
任務1題目:書籍閱讀
任務詳解:閱讀《機器學習實戰》書籍第5章
參考文獻:李航《統計學習方法》第6章中的6.1節
作業1:寫出並解釋邏輯迴歸的損失函式,推導引數w的梯度下降公式。
提交日期:12/16
提交形式:文字或者截圖打卡
作業2:將本章中“從疝氣病症預測病馬的死亡率”完整程式碼鍵入jupyter notebook,並新增詳細註釋。
提交日期:12/17
提交形式:程式碼截圖打卡或git連結提交

作業參考答案
說明:當天作業參考答案隔天釋出
1.1
https://github.com/RedstoneWill/MachineLearningInAction-Camp/blob/master/Week3/Materials/Logistic Regression/Logistic_Regression.ipynb

Jupyter Notebook 見GitHub

06 支援向量機

(第三週)
6.1 基於最大間隔分隔資料
6.2 尋找最大間隔
6.3 SMO 高效優化演算法
(第四周)
6.4 利用完整 Platt SMO 演算法加速優化
6.5 在複雜資料上應用核函式
6.6 手寫識別問題

第一節學習內容
學習時長:12/18-12/24
任務1題目:書籍閱讀
任務詳解:閱讀《機器學習實戰》書籍第6章
參考資料:
李航《統計學習方法》第7章
[深入淺出機器學習技法(一):線性支援向量機(LSVM)]
( https://mp.weixin.qq.com/s/Ahvp0IAdgK9OVHFXigBk_Q)
[深入淺出機器學習技法(二):對偶支援向量機(DSVM)]
( https://mp.weixin.qq.com/s/Q5bFR3vDDXPhtzXlVAE3Rg)
[深入淺出機器學習技法(三):核支援向量機(KSVM)]
( https://mp.weixin.qq.com/s/cLovkwwgGJRgSSa1XWZ8eg)
作業1:推導SMO演算法
提交日期:12/19
提交形式:文字或者截圖打卡
作業2:理解書中程式清單6-2的簡化SMO演算法程式,對程式中詳細註釋。
提交日期:12/21
提交形式:文字或者截圖打卡
作業3:為了防止SVM出現過擬合,應該對引數C進行如何設定?
提交日期:12/23
提交形式:文字或者截圖打卡
作業4:將本章中“手寫識別問題”完整程式碼鍵入,並新增詳細註釋。
提交日期:12/24
提交形式:程式碼截圖打卡或git連結提交

作業參考答案
2.1 李航《統計學習方法》第7章7.4.1小節
2.2 略

作業參考答案
說明:當天作業參考答案隔天釋出
1.1
在這裡插入圖片描述
1.2 Jupyter Notebook 見GitHub

比賽:天池O2O資料預測大賽(初級)

第二節學習內容
學習時長:12/25-12/28
任務1題目:天池o2o預測賽(初級)
任務詳解:建立一個簡單的線性模型,線上提交預測結果,檢視成績
視訊不清晰也可以去荔枝微課看,地址: https://m.weike.fm/lecture/10234967 ;(觀看密碼:011220)
原始碼檔案:連結: https://pan.baidu.com/s/1FwCcG0Pk1V_0mK1MCbkPlg ;;提取碼:y5z6

作業1:使用簡單模型,線上提交預測結果,檢視成績
提交日期:12/28
提交形式:程式碼截圖打卡或git連結提交,比賽上傳結果介面排名截圖打卡上傳

07 利用 AdaBoost 元演算法提高分類效能(第五週)

7.1 基於資料 多重抽樣的分類器
7.2 訓練演算法:基於錯誤提升分類器的效能
7.3 基於單層決策樹構建弱分類器
7.4 完整 AdaBoost 演算法的實現
7.5 測試演算法:基於 AdaBoost 的分類
7.6 示例:在一個難資料集上應用 AdaBoost
7.7 非均衡分類問題

第一節學習內容
學習時長:12/30-01/02
任務1題目:書籍閱讀
任務詳解:閱讀《機器學習實戰》書籍第7章
參考文獻:
李航《統計學習方法》第8章8.1/8.2/8.3節

作業1:AdaBoost選擇分類器是弱分類器還是強分類器?解釋原因。
提交日期:12/30
提交形式:文字或者截圖打卡
作業2:將本章中“在一個難資料集上應用AdaBoost”完整程式碼鍵入jupyter notebook,並新增詳細註釋。若有可能,自己可以優化該程式碼。
提交日期:01/02
提交形式:程式碼截圖打卡或git連結提交

作業參考答案
說明:當天作業參考答案隔天釋出
1.1 弱分類器。若是強分類器,那麼該分類器佔的權重alpha會很大,相當於其它分類器不起作用了。所以,多個弱分類器起到“三個臭皮匠,賽過諸葛亮”的效果。
1.2 Jupyter Notebook 見GitHub

08 預測數值型資料:迴歸(第五週)

8.1 用線性迴歸找到最佳擬合直線
8.2 區域性加權線性迴歸
8.3 示例:預測鮑魚的年齡
8.4 縮減係數來“理解”資料
8.5 權衡偏差和方差
8.6 示例:預測樂高玩具套裝的價格

第二節學習內容
學習時長:1/03-1/04
任務1題目:書籍閱讀
任務詳解:閱讀《機器學習實戰》書籍第8章
作業1:嶺迴歸和Lasso迴歸有什麼區別?
提交日期:1/03
提交形式:程式碼截圖打卡或git連結提交
作業2:將本章中“預測鮑魚的年齡”完整程式碼鍵入jupyter notebook,並新增詳細註釋。若有可能,自己可以優化該程式碼。
提交日期:1/04
提交形式:程式碼截圖打卡或git連結提交
作業參考答案
說明:當天作業參考答案隔天釋出
2.1
2.1 使用的正則化不同,嶺迴歸使用L2正則化,Lasso使用L1正則化。L2正則化優點是易於求導,簡化計算,更加常用一些。L1正則化優點是能得到較稀疏的解,但缺點是不易求導。
在這裡插入圖片描述

09 樹迴歸(第六週)

9.1 複雜資料的區域性性建模
9.2 連續和離散型特徵的樹的構建
9.3 將 CART 演算法用於迴歸
9.4 樹減枝
9.5 模型樹
9.6 示例:樹迴歸於標準迴歸的比較
9.7 使用 Python 的 Tkinter 庫建立 GUI

第一節學習內容
學習時長:1/06-1/09
任務1題目:書籍閱讀
任務詳解:閱讀《機器學習實戰》書籍第9章

作業1:將本章中“樹迴歸與標準迴歸的比較”完整程式碼鍵入jupyter notebook,並新增詳細註釋。若有可能,自己可以優化該程式碼。
提交日期:1/09
提交形式:程式碼截圖打卡或git連結提交
作業2(選做):將本章中“使用Python的Tkinter庫建立GUI”完整程式碼鍵入jupyter notebook,並新增詳細註釋。若有可能,自己可以優化該程式碼。
提交日期:1/09
提交形式:程式碼截圖打卡或git連結提交

補充作業!!!!!!!
天池O2O優惠券使用預測分析比賽開始啦!
學習時長:1/6-1/11
任務1題目:阿里雲天池o2o優惠券使用預測分析比賽(初級)
任務詳解:建立一個簡單的線性模型,線上提交預測結果,檢視成績
視訊地址: https://m.weike.fm/lecture/10888815(觀看密碼:031220)
原始碼檔案: https://pan.baidu.com/s/1MQIutT1ALrPETGE1SXy_pQ(提取碼:rql8)

作業名稱:使用簡單模型,線上提交預測結果,檢視成績
作業提交日期:1/11
任務提交形式:程式碼截圖打卡或git連結提交,比賽上傳結果介面排名截圖打卡上傳

10 利用 K-均值聚類演算法對未標註資料分組(第六週)

10.1 K-均值聚類演算法
10.2 使用後處理來提高聚類效能
10.3 二分 K-均值演算法
10.4 示例:對地圖上的點進行聚類

第二節學習內容
學習時長:1/10-1/12
任務1題目:書籍閱讀
任務詳解:閱讀《機器學習實戰》書籍第10章

作業1:將本章10.4.2中“對地理座標進行聚類”完整程式碼鍵入jupyter notebook,並新增詳細註釋。若有可能,自己可以優化該程式碼。
提交日期:1/11
提交形式:程式碼截圖打卡或git連結提交

11 使用 Apriori 演算法進行關聯分析(第七週)

11.1 關聯分析
11.2 Apriori 原理
11.3 使用Apriori 演算法來發現頻繁集
11.4 從頻繁項集中挖掘關聯規則
11.5 示例:發現國會投票中的模式
11.6 示例:發現毒蘑菇的相似特徵

第一節學習內容
學習時長:1/13-1/14
任務1題目:書籍閱讀
任務詳解:閱讀《機器學習實戰》書籍第11章11.1/11.2/11.3節

作業1:使用Apriori演算法進行關聯分析的目標主要包含哪兩個方面?Apriori的原理是什麼?
提交日期:1/14
提交形式:文字或者截圖打卡

作業參考答案
說明:當天作業參考答案隔天釋出
1.1 Apriori演算法關聯分析的目標主要包括兩項:發現頻繁項集和發現關聯規則。Apriori原理是說如果某個項集是頻繁的,那麼它的所有子集也是頻繁的。反過來說,如果一個項集是非頻繁集,那麼它的所有超集也是非頻繁的。

第二節學習內容
學習時長:1/15-1/18
任務1題目:書籍閱讀
任務詳解:閱讀《機器學習實戰》書籍第11章11.4/11.6節

作業1:將本章11.6中“發現毒蘑菇的相似特徵”完整程式碼鍵入jupyter notebook,並新增詳細註釋。若有可能,自己可以優化該程式碼。
提交日期:1/18
提交形式:程式碼截圖打卡或git連結提交

12 使用 FP-growth 演算法高效發現頻繁項集(第八週)

12.1 FP 樹:用於編碼資料集的有效方式
12.2 構建 FP 樹
12.3 從一顆 FP 樹中挖掘頻繁項集
12.4 示例:在 Twitter 源中發現一些共現詞
12.5 示例:從新聞網站點選流中挖掘

第一節學習內容
學習時長:1/20-1/21
任務1題目:書籍閱讀
任務詳解:閱讀《機器學習實戰》書籍第12章12.1/12.2節

作業1:FP-growth演算法的基本工作流程是什麼?其相比Apriori演算法優點是什麼?
提交日期:1/21
提交形式:文字或者截圖打卡
作業2:理解帶頭指標表的FP樹(圖12.2),理解FP樹生成程式碼。
提交日期:1/21
提交形式:文字或者截圖打卡

作業參考答案
說明:當天作業參考答案隔天釋出
1.1 FP-growth演算法的基本工作流程分為兩步。一、首先構建FP樹。需要對原始資料集掃描兩遍,第一遍對所有元素項的出現次數進行計數,第二遍只考慮那些頻繁元素。二、挖掘頻繁項集。
FP-growth演算法只需要對資料庫進行兩次掃描,而Apriori演算法對於每個潛在的頻繁項集都會掃描資料集判定給定模式是否頻繁,因此FP-growth演算法的速度要比Apriori演算法更快。
1.2 略

第二節學習內容
學習時長:1/22-1/25
任務1題目:書籍閱讀
任務詳解:閱讀《機器學習實戰》書籍第12章12.3/12.5/12.6節

作業1:將本章12.5中“從新聞網站點選流中挖掘”完整程式碼鍵入jupyter notebook,並新增詳細註釋。若有可能,自己可以優化該程式碼。
提交日期:1/25
提交形式:程式碼截圖打卡或git連結提交

13 利用 PCA 來簡化資料(第九周)

13.1 降緯技術
13.2 PCA
13.3 示例:利用 PCA 對半導體制造資料降維

第一節學習內容
學習時長:1/27-1/28
任務1題目:書籍閱讀
任務詳解:閱讀《機器學習實戰》書籍第13章13.1/13.2/13.3節

作業1:將本章13.3中“利用PCA對半導體制造資料降維”完整程式碼鍵入jupyter notebook,並新增詳細註釋。若有可能,自己可以優化該程式碼。
提交日期:1/28
提交形式:程式碼截圖打卡或git連結提交

14 利用 SVD 簡化資料(第九周)

14.1 SVD 的應用
14.2 矩陣分解
14.3 利用 Python 實現 SVD
14.4 基於協調過濾的推薦引擎
14.5 示例:餐館菜餚推薦引擎
14.6 示例:基於 SVD 的影像壓縮

第二節學習內容
學習時長:1/29-2/1
任務1題目:書籍閱讀
任務詳解:閱讀《機器學習實戰》書籍第14章14.1-14.6節

作業1:將本章14.5中“餐館菜餚推薦引擎”完整程式碼鍵入jupyter notebook,並新增詳細註釋。若有可能,自己可以優化該程式碼。
提交日期:1/30
提交形式:程式碼截圖打卡或git連結提交

作業2:將本章14.6中“基於SVD的影像壓縮”完整程式碼鍵入jupyter notebook,並新增詳細註釋。若有可能,自己可以優化該程式碼。
提交日期:2/1
提交形式:程式碼截圖打卡或git連結提交

15 大資料與 MapReduce(第十週)

15.1 MapReduce:分散式計算的框架
15.2 Hadoop 流
15.3 在 Amazon 網路服務上執行 Hadoop 程式
15.4 MapReduce 上的機器學習
15.5 在 Python 中使用 mrjob 來自動化 MapReduce
15.6 示例:分散式 SVM 的 Pegasos 演算法
15.7 你真的需要 MapReduce 嗎?

比賽:天池O2O資料預測大賽(高階)(第十週)

第 1~7 章總結(第十一週)
第 8~9 章總結(第十一週)
第 10~12 章總結(第十二週)
第 13~15 章總結(第十二週)
其它機器學習演算法(擴充,待定)(第十二週)

講在前面

1、資料紛雜,資料不在多,而在精。
不要沉入蒐集資料中,要學會捨棄不需要的資料。
保證高效學習。
2、動手很重要。
3、推薦的機器學習路線/教程
吳恩達,Coursera,machine learning課程(不是CS229,入門非常好)
臺灣大學 林軒田的《機器學習基石》(講解透徹,由淺入深)
臺灣大學 林軒田的《機器學習技法》(乾貨,有概括,知識體系完善)
周志華《機器學習》
李航《統計學方法》
吳恩達,deep learning.ai
4、選擇 《機器學習實戰》的原因
在這裡插入圖片描述
在這裡插入圖片描述
手把手從0實現機器學習主流演算法,實戰和理論的交叉,這裡我們用Python3實現
我們實現機器學習演算法,加深對理論知識的理解。
提高實戰能力,比賽經驗。
作業程式碼等會發在老師GitHub上
5、具備先修知識:線性代數、概率論、python、機器學習基本知識
推薦廖雪峰Python3
6、需要開發環境anaconda+notebook(建議,不強制)

相關文章