2nd-ML100Days (4/16~8/15)
Overview
An Online Flipped Classroom relating to machine learning. Official website link
Mind map
Course content
Part01:資料清理數據前處理
- Day 1 資料介紹與評估資料
- Day 2 EDA 讀取資料 (EDA Data summary)
- Day 3-1 如何新建一個 dataframe?
- Day 3-2 如何讀取其他資料?
- Day 4 EDA 欄位的資料類型介紹及處理
- Day 5 EDA 資料分佈
- Day 6 EDA Outlier及處理
- Day 7 常用的數值取代 中位數與分位數連續數值標準化
- Day 8 DataFrame operationData frame merge/常用的 DataFrame 操作
- Day 9 程式實作 EDA correlation/相關係數簡介
- Day 10 EDA from Correlation
- Day 11 EDA 不同數值範圍間的特徵如何檢視/繪圖與樣式 Kernel Density Estimation (KDE)
- Day 12 EDA 把連續型變數離散化
- Day 13 程式實作 把連續型變數離散化
- Day 14 Subplots
- Day 15 Heatmap & Grid-plot
- Day 16 模型初體驗 Logistic Regression
Part02:資料科學特徵工程技術
- Day 17 特徵工程簡介
- Day 18 特徵類型
- Day 19 數值型特徵 補缺失值與標準化
- Day 20 數值型特徵 去除離群值
- Day 21 數值型特徵 去除偏態
- Day 22 類別型特徵 基礎處理
- Day 23 類別型特徵 均值編碼
- Day 24 類別型特徵 其他進階處理
- Day 25 時間型特徵
- Day 26 特徵組合 數值與數值組合
- Day 27 特徵組合 類別與數值組合
- Day 28 特徵選擇
- Day 29 特徵評估
- Day 30 分類型特徵優化 葉編碼
Part03:機器學習基礎模型建立
- Day 31 機器學習概論
- Day 32 機器學習-流程與步驟
- Day 33 機器如何學習?
- Day 34 訓練/測試集切分的概念
- Day 35 regression vs. classification
- Day 36 評估指標選定/evaluation metrics
- Day 37 regression model 介紹 - 線性迴歸/羅吉斯回歸
- Day 38 regression model 程式碼撰寫
- Day 39 regression model 介紹 - LASSO 回歸/ Ridge 回歸
- Day 40 regression model 程式碼撰寫
- Day 41 tree based model 決策樹 (Decision Tree) 模型介紹
- Day 42 tree based model 決策樹程式碼撰寫
- Day 43 tree based model 隨機森林 (Random Forest) 介紹
- Day 44 tree based model 隨機森林程式碼撰寫
- Day 45 tree based model 梯度提升機 (Gradient Boosting Machine) 介紹
- Day 46 tree based model 梯度提升機程式碼撰寫
Part04:機器學習調整參數
Day 51~53 Kaggle期中考
Part05:非監督式機器學習
- Day 54 clustering 1 非監督式機器學習簡介
- Day 55 clustering 2 聚類算法
- Day 56 K-mean 觀察 : 使用輪廓分析
- Day 57 clustering 3 階層分群算法
- Day 58 階層分群法 觀察 : 使用 2D 樣版資料集
- Day 59 dimension reduction 1 降維方法-主成份分析
- Day 60 PCA 觀察 : 使用手寫辨識資料集
- Day 61 dimension reduction 2 降維方法-T-SNE
- Day 62 t-sne 觀察 : 分群與流形還原
Part06:深度學習理論與實作
Part07:初探深度學習使用Keras
- Day 66 Keras 安裝與介紹
- Day 67 Keras Dataset
- Day 68 Keras Sequential API
- Day 69 Keras Module API
- Day 70 Multi-layer Perception多層感知
- Day 71 損失函數
- Day 72 啟動函數
- Day 73 梯度下降Gradient Descent
- Day 74 Gradient Descent 數學原理
- Day 75 BackPropagation
- Day 76 優化器optimizers
- Day 77 訓練神經網路的細節與技巧 - Validation and overfit
- Day 78 訓練神經網路前的注意事項
- Day 79 訓練神經網路的細節與技巧 - Learning rate effect
- Day 80 練習 Day 優化器與學習率的組合與比較
- Day 81 訓練神經網路的細節與技巧 - Regularization
- Day 82 訓練神經網路的細節與技巧 - Dropout
- Day 83 訓練神經網路的細節與技巧 - Batch normalization
- Day 84 練習 Day 正規化/機移除/批次標準化的 組合與比較
- Day 85 訓練神經網路的細節與技巧 - 使用 callbacks 函數做 earlystop
- Day 86 訓練神經網路的細節與技巧 - 使用 callbacks 函數儲存 model
- Day 87 訓練神經網路的細節與技巧 - 使用 callbacks 函數做 reduce learning rate
- Day 88 訓練神經網路的細節與技巧 - 撰寫自己的 callbacks 函數
- Day 89 訓練神經網路的細節與技巧 - 撰寫自己的 Loss function
- Day 90 使用傳統電腦視覺與機器學習進行影像辨識
- Day 91 練習 Day 使用傳統電腦視覺與機器學習進行影像辨識
Part08:深度學習應用卷積神經網路
- Day 92 卷積神經網路 (Convolution Neural Network, CNN) 簡介
- Day 93 卷積神經網路架構細節
- Day 94 卷積神經網路 - 卷積(Convolution)層與參數調整
- Day 95 卷積神經網路 - 池化(Pooling)層與參數調整
- Day 96 Keras 中的 CNN layers
- Day 97 使用 CNN 完成 CIFAR-10 資料集
- Day 98 訓練卷積神經網路的細節與技巧 - 處理大量數據
- Day 99 訓練卷積神經網路的細節與技巧 - 處理小量數據
- Day 100 訓練卷積神經網路的細節與技巧 - 轉移學習 (Transfer learning)
Day 101~103 Kaggle期末考
Final project : Cat dog classification
- Goal :
Train a model that has the ability to classify cats and dogs. In addition, I use tkinter to write a GUI program for convenience. GUI download url
- Method :
Use Tensorflow CNN model to complete this classification
- Result :
Kaggle Public Score : 0.92067 (use 4000 photos to train)