國立臺北護理健康大學 NTUHS
Classification
Orozco Hsu
2021-10-25
1
About me
• Education
• NCU (MIS)、NCCU (CS)
• Work Experience
• Telecom big data Innovation
• AI projects
• Retail marketing technology
• User Group
• TW Spark User Group
• TW Hadoop User Group
• Taiwan Data Engineer Association Director
• Research
• Big Data/ ML/ AIOT/ AI Columnist
2
Tutorial
Content
3
執行環境介紹
機器學習與商業應用
作業
機器學習七大步驟
Code
• Download code
• https://github.com/orozcohsu/ntunhs_2021.git
• Folder
• 20211025_day_master
4
機器學習七大步驟
5
機器學習七大步驟
• 七個步驟
• 收集資料 (Data collection)
• 準備資料 (Data preprocess)
• 選擇模型 (Model selection/ estimator)
• 訓練模型 (Model training)
• 評估模型 (Model evaluation)
• 調整超參數 (Hyper-parameter tuning)
• 預測推論 (Prediction/ Scoring)
6
收集資料
• 第一方數據
• 交易數據
• 生產數據
• 第三方數據
• 網頁埋碼
• 爬網資料
• 消費發票
7
• 開放數據源
• 天氣資料
• 捷運資料
• 用電資料
• 實價登錄
• 全國統計資料
• 數據格式
• csv
• xml
• json
• 壓縮格式
(zip, parquet, orc)
• 交易資料
(On Line Transaction Processing)
• 強調資料寫入
• ACID
• https://zh.wikipedia.org/wiki/ACID
• 資料倉儲
(On Line Analytical Processing)
• 強調資料查詢
• 分散式計算
收集資料
8
參考: http://jiagoushi.pro/book/export/html/1127
收集資料
9
參考: https://lenovopress.com/lp0832.pdf
準備資料
10
參考: https://campus.datacamp.com
準備資料
• 將資料寫入分析資料庫 (OLAP)
• 考量寫入的速度, 採用 bulk insert。
• 考量寫入的時段,一般於下班後進行。
• 考量雲端系統的資料中心位置,與執行區域切開。
• 資料庫讀取資料
• 考量資料讀取端的應用,採取不同的策略
• 目的為一般報表或視覺化報表。
• 目的為建立模型。
11
選擇模型
12
參考: https://scikit-learn.org
選擇模型
• 機器學習分為四大塊:
• Classification (分類)
• Clustering (聚類)
• Regression (回歸)
• Dimensionality reduction (降維)
• Association rule (關聯規則)
• Graphical models (圖論)
• 深度學習、強化學習為另外一塊領域,暫不提及
13
選擇模型
• Classification & Regression
• 給定一個樣本特徵 x,我們希望預測其對應的屬性值 y,如果 y 是離散的,
那麼這就是一個分類問題。
• 反之,如果 y 是連續的實數, 這就是一個回歸問題。
• Clustering
• 不同的就是Classification 在預測之前是知道 y 的範圍,或者說知道到底
有幾個類別,而聚類是不知道屬性的範圍的。
• Classification 也常常被稱為 Supervised learning,而 Clustering就被
稱為 Unsupervised learning。
14
選擇模型
• Dimensionality reduction
• 優點
• 原有特徵維度的基礎上進行降維,既滿足後續資料處理和建模需求,又能保留維度
原本的業務含義,以便於業務的理解和應用。
• 壓縮資料,減少計算資源。
• 幫助資料視覺化。
• 人工刪除
• 若該特徵值95%都是男性,甚至100%都是男性,表示該特徵不具意義,可以刪除
• 若該特徵值為連續,則需要離散化後才進行
• 透過模型檢定特徵
• 通常監督式學習降為採用LDA/t-SNE,而非監督式學習採用 PCA。
15
reduction.ipynb
訓練模型
• 監督式學習
• 非監督式學習
16
評估模型
• 監督式分類問題
• Classification Accuracy
• Confusion matrix
• 對數損失函數 (Logarithmic Loss): 該值越小越好。
• Area under curve (AUC)
• F-Measure: Precision和Recall的加權調和平均,越高證明模型越有效。
17
比較在意預測正向 = Precision
比較在意實際正向 = Sensitivity (Recall)
評估模型
• 監督式回歸問題
• MAE
• RMSE
18
model_evaluation.ipynb
評估模型
• 非監督式(分群)
• 輪廓係數法的概念是「找出同群資料點內最近/不同群越分散」的值,也
就是滿足 Cluster 的定義。
• b為不同群之間的點平均距離,a為同群之間的距離。
• S則越大越好,代表分得越清楚。
19
model_evaluation_cluster.ipynb
調整超參數
• 找到一組適合的模型訓練參數,提升模型的效率與穩定度
20
調整超參數
• 傳統的手工調參
• 利用實務經驗來給定最佳參數,通常會先初步建模並測試,有了正確率
數值再進一步憑感覺調整超參數。
• 缺點是沒辦法保證找到最好的組合、非常耗時。
• 網格搜尋 (Grid-Search)
• 假設有兩個待試超參數P1,P2,其集合為P1=[1,2,3],P2=[a,b,c],由此
兩超參數可以組合出P1×P2個組合。
• 再使用CV(交叉驗證技巧),每個組合可得到一組數值,選最高即為最佳
參數。
• 雖然可以找到最佳解,但是整個過程仍然非常耗時間。
21
調整超參數
• 隨機搜尋
• 並非所有組合都去測試,而是隨機選擇n個組合測試,並從中選出最佳者。
• 貝葉斯搜尋
• https://bradxiao.github.io/Hyperparameter-tuning/
22
調整超參數
23
參考: NTU Data Analytics Club
預測推論
• Prediction/Scoring
• 推論資料預測結果
• 結合業務端的應用
• 回饋機制的設計
• 以電信業、零售業為例說明
• 電信業 Churn model
• 零售業 RFM 客群板塊移動
24
預測推論
• 批次推論
• 即時推論
• API
• 儲存訓練完成的模型
• 模型的生命週期
• 模型儲存的格式
• pickle 或 joblib
• 模型的保存
• 模型壓縮 (gzip)
25
參考: https://min.news
model_api.ipynb
model_pickle.ipynb
demo
• 以乳癌資料集,展示資料視覺化與多個演算法分析:
26
breast_cancer_diagnostic.ipynb
執行環境介紹
• Google Colaboratory
27
執行環境介紹
• AWS - SageMaker
28
執行環境介紹
• Kaggle Notebook
29
執行環境介紹
• Anaconda Jupyter Notebook
• 個人版下載: https://www.anaconda.com/products/individual
30
執行環境介紹
• Notepad++
• VSCode
• PyCharm
31
機器學習與商業應用
32
機器學習與商業應用
• 機器學習,一種人工智慧的技術,不同於傳統程序,是通過處理
並學習龐大的數據後,利用歸納推理的方式來解決問題,所以當
新的數據出現,機器學習模型即能更新自己對於這個世界的理解,
並改變他對於原本問題的認知。
33
機器學習與商業應用
• 線性迴歸是最為原始的機器學習模型,也是
在找出自變數與依變數之間的關係中,最為
最常見的模型。
• 線性迴歸不僅可以幫助業者建立消費者洞見、
理解影響獲利性的因素,迴歸分析更是能讓
業者評估市場趨勢,並以此為基準去做商業
決策。
• 預測未來機會以及風險,如需求分析、轉換率
分析。
• 優化營運效能,將數據驅動的決策能力導入組
織文化當中。
• 優化定價策略、預估價格彈性、以及市場動態。
• 通過迴歸分析發現新的市場洞見。
34
參考: https://chih-sheng-huang821.medium.com
機器學習與商業應用
• Logistic Regression 相似於線性迴歸,然
而不同於線性迴歸,邏輯迴歸的輸出不是
「1即是0 」 。
• 邏輯迴歸為最頻繁被使用的分類演算法,
時常被應用於風險評估或判斷異常。
• 基於客戶償還貸款的可能性做客群分類。
• 通過交易行為模式判斷是否詐欺。
• 通過多項數據點判斷腫瘤是否為惡性。
• 通過消費行為及旅程分析判斷顧客是否會轉換。
35
參考: https://wenwu53.com
機器學習與商業應用
36
參考: https://wenwu53.com
機器學習與商業應用
• Naive Bayes 建立於貝氏定理的一種機器學習分類演算法,能夠
基於其他因素的影響來計算某個事件的機率。
• 通過社群媒體做語法分析來判斷市場對於產品的感知為何。
• 建立垃圾郵件的分類器。
• 通過資料採礦來建立推薦系統以判斷用戶是否會喜歡某種類型的產品。
• 通過迴歸分析發現新的市場洞見。
37
機器學習與商業應用
38
Index X1 (天氣好壞) X2 (是否周末) Y (是否出門)
1 好 是 出門
2 好 否 出門
3 好 是 不出門
4 好 否 出門
5 不好 是 出門
6 不好 否 不出門
*當出門的條件下,天氣不好的機率為:
*出門的機率為: *天氣不好的機率為:
*天氣不好的情況下,出門的機率為: *天氣不好的情況下,不出門的機率為:
機器學習與商業應用
• Decision Tree 決策樹利用特徵值劃分成不同的特徵分歧,像一
棵樹上的樹枝一般。
• 決策樹利用同樣的架構,不斷地拆分特徵的特性(遞迴區分),直
到持續特徵分歧將不會提供任何價值為止。
• 此種特性也讓決策樹在面對高維數據時,依然有可觀的正確率。
• 提供決策框架:讓管理階層能夠利用數據驅動的分法做決策。
• 挖掘消費者洞見:了解消費者購買或不購買背後的動機。
• 幫助組織評估替代方案的可行性與風險。
39
機器學習與商業應用
• Support Vector Machine (SVM) 大多時候被使用於分類中,然
而,其演算法分割的特性讓他能夠被轉換成做迴歸,在高維的空
間中構造平面或是超平面集合。
• 假設是二維的情況下,SVM就能夠根據輸出值去尋找區分輸入值
的最適線。
• 判斷照片中臉的位置。
• 預測網站、廣告、以及其他渠道的轉換率。
• 識別字體。
40
機器學習與商業應用
41
尋找一個超平面(optimal hyperplane)能將不同類別
的資料完美的分開,而且,希望此超平面與不同的類
別的距離愈大愈好
落在邊界上的樣本(在容忍邊界內的樣本)稱為Support vectors,
因此此方法被稱為Support vector machine
因為kernel function的
關係,讓SVM可以從線
性分類轉換到非線性分
類上
機器學習與商業應用
• Random Forest 隨機森林利用建立多個不同的決策樹,並賦予每
一顆不同的決策樹其分類選項,並讓各個決策樹自己產生答案,
以提高準確性。
• 處理分類問題時,此演算法的整體輸出即是利用投票方式選出最
多票數的決策樹。
• 處理迴歸分析時,輸出則是所有決策樹輸出的平均值。
• 預測整個電網的用量。
• 優化都市計畫的效能。
• 預先判斷產品品質。
42
機器學習與商業應用
• AdaBoost 通過整合多種不同的模型來做分類或迴歸分析,最後
再根據其正確率去判斷每一個不同的輸出所佔的比重為何。
• AdaBoost 及其他增強(Boosting)模型,提高準確率上非常有效。
• 通過交易的行為模式判斷是否詐欺。
• 低成本的方式來做圖片識別(相較於深度學習)。
• 用於預測客戶流失或是品牌黏性。
43
機器學習與商業應用
• Gradient Boosting Trees(GDBT)能夠序列性的產生出決策樹,
並讓每一次的決策樹專注於修復前面的樹所犯的錯,而其輸出則
是所有決策樹的結合。
• 對於主要的數據特性非常明確的數據來說,能夠過特徵工程來排
列最相關的數據特性,並以此作訓練。
• 預測需求以及存貨來提供供需匹配。
• 根據市場動態與產品特性以判斷定價。
• 提供決策框架,讓管理階層能夠用數據驅動的方法做決策。
• 相關演算法:
• XGBoost
44
機器學習與商業應用
45
參考: https://medium.com/geekculture
機器學習與商業應用
• 集群分析(K-means) 將數據分成不同
的群組當中(k個群組),而演算法
會自動將具備像似特性的數據歸類為
一組。
• 在數據的維度相似、且是連續性的數
值時,k-means會是非常合適的選擇。
• 分類消費者以優化行銷活動或是避免客
戶流失。
• 判斷信用交易、保險金融等活動是否異
常(詐欺)。
• 幫助歸類IT技術建設內不同的警訊。
46
參考: https://medium.com/analytics-vidhya
機器學習與商業應用
• Gaussian Mixture Model 混合
模型是一個可用來表示總體分佈
中含有k個子分布的概率模型。
• 混合模型表示了數據在總體中的
概率分佈,是個由 k 個子分佈所
組成的混合分佈。
• 從語音數據中做特徵提取。
• 在影片檔案中,做多種物件的追蹤。
• 利用更不明顯的數據特徵,以區別
客群,優化行銷活動。
47
參考: https://stats.stackexchange.com
機器學習與商業應用
• Hierarchical Clustering 將資料在一個階層式的樹資料結構上,
反覆的利用拆分以及聚合的方式建立出一個分類系統。
• 階層式分群的優勢在於它使用上的簡單性以及能夠在小數據上操
作,然而卻非常難處理大型的資料。
• 更細微的區分客群或用戶。
• 通過社群媒體分析來判斷產品使用程度。
48
參考: https://www.researchgate.net
機器學習與商業應用
• Association Rule Discovery (關聯規則),探索不同項目之間的關聯性。
• 又稱購物籃分析或co-occurrence grouping找出不同項與項之間可能
存在的關係。
• 可操作執行的規則(Actionable Rule)
• 例如啤酒與尿布
• 廣為人知的規則(Trivial Rule)
• 無法解釋的規則(Inexplicable Rule)
• 找不到原因,無法作為行銷活動的參考
• 相關的演算法:
• Apriori 演算法
• FP-growth
49
參考: https://medium.com
機器學習與商業應用
• Graphical models (圖論) 特別適用於非結構化資料的分析,例如 Social
Network Analysis (SNA) 社群網路行為模型探討。
• 利用節點 (node/vertex) 與邊 (edge) 所形成的資料結構上,裡用圖論演算
法進行群體分析 (cliques)。
• 相關演算法:
• Centrality 系列演算法
• Page-rank
• 最短路徑演算法
• Maximum flow problem
50
作業
• 仿造課程程式demo,使用cervical-cancer.csv資料集,完成資料分析
• Target 欄位:
• 切片檢查 (Biopsy)
• 細胞檢驗 (Citology)
• 依照上述Target欄位,透過資料視覺化分析,例如: 關鍵因子
• 資料集參考
• https://archive.ics.uci.edu/ml/datasets/Cervical+cancer+%28Risk+Factors%29
51

machine learning introduction