哈囉,大家好,我是Teresa,10/29的晚上參加了機器學習的主題小聚,可真是收穫滿滿,講師說話非常有邏輯架構,在此感謝蝦皮的兩位工程師 Kevin和Vincent 蒞臨快樂學程式的主題小聚直播活動來和各位觀眾互動,更感謝有熱情的觀眾支持,讓這次的直播能圓滿落幕。
此篇會做主題小聚的重點摘要與回顧,如果喜歡、想追蹤我更多筆記,可以加入程式小白的 JS Python 學習群的社團。社團中也會有其他學習夥伴和你一起討論、交流、互動哦!
什麼是Machine Learning?
給機器或電腦資料並搭配相對應的看法,它能從過去人類給的資料中學習模式甚至預測,以做出比人類更好的行為或是技術。它的趨勢從2014年開始飆升,都要歸功於硬體技術的發展,讓過去沒辦法計算的部分都可以開始計算。
資料分析師:整理需求端的需求,並從資料庫中抓資料來分析
資料科學:用數學模型把分析完的結果做預測或自動化
ML:作資料的安排或API給後端或前端工程師取用
Machine Learning跟Deep Learning的差異:
Machine Learning:人工智慧的一種方法
Deep Learning:指的是ML中的一種類型,如:人類神經元的模型
Machine Learning的三大主角
所有的機器學習都有共同目標:找一個對的 Y = F(X)
X = Features
Features指的是任何能幫助預測Label的資料,一組Feature會對應一個Label
Y = Outcome = Label(類別或數值)
F = Function = Model
Deep Learning的實際案例
Computer Vision
如:圖片辨識、手寫辨識、人臉辨識
Natural Language Processing
如:情感分析、說話辨識(音軌轉文字)、垃圾郵件分類
NLP + CV
爬蟲後,會有文字和圖片,機器根據學習到的規則將圖片產出文字
常見Machine Learning套件
Pandas:組成table,可存取大量資料
Numpy:矩陣運算
Matplotlib&Seaborn:資料視覺化
Sklearn:各種模型
Machine Learning的種類
監督式學習
需要明確的答案(Label),學習人類的事,做出相似的預測
適合分類問題、數值預測問題(回歸)
例子:預測用戶類型
非監督式學習
不需要明確的答案,適合分群問題,尋找相似數據
例子:相似用戶、商品分群
強化學習
相較於前兩者是從資料中產生預測模型,
模型的輸出更看重是否可以依照環境互動蒐集反饋,從反饋中自我學習,強調互動性
分類(監督式學習)與分群(非監督式學習)
classification:先告訴機器規則,並給解答,之後有相似的圖片會進行分類
clustering:比較像的圖片會聚集在一起
分類問題:
找出決策邊界:找出分割線來切分資料
迴歸問題:
目標是找到最適合的線,預測結果是數值
分群問題:
將空間中特徵表現相近的資料分為同一群,並無標準答案
目標是:最大化組間誤差;最小化組內誤差
機器如何學習
Q:很多分割線,該選哪一條?
A:盡可能選誤差、損失(loss)最小的線,讓線與資料的距離都相對大
loss指的是:距離線的距離,平均損失最小化,此過程稱為Gradient Descent
可能會有局部最佳解或全域最佳解,可以透過調整學習的參數來避免此問題
Machine Learning流程
定義問題:由需求端提出需求 ->
好的問題很難被定義,需求端在多數時候只會給一個模糊的敘述
因此關鍵在如何將商業問題轉為Machine Learning問題
如何定義好的Y、如何找到可以幫助我們預測的X、有Label的資料如何取得
整合資料:適合用於模型的資料 ->
特徵工程:最重要的部分是把相對沒有鑑別度的資料做轉換,讓模型學到重要的特徵 ->
將原始資料轉化成為能協助Model預測的Feature,標準答案不存在
如何選擇Feature?
只保留價值較高的Feature,並非越多越好
可用方法:降低模型複雜性、減少訓練時間、提升模型表現、移除雜訊
訓練模型:輸出結果 ->
驗證結果:不斷循環直到得到滿意的結果
前三個步驟占了80%的時間;後兩個步驟只占20%的時間,其中特徵工程是影響模型最重要的步驟
常用的ML Model
SVM、Logistics Regression、Decision Tree、KNN、LightGBM、Random Forest、XGBoost
Majority Vote、Stacking、Boosting
模型評估
Under-fitting:增加有用的Feature、資料量、換training model、調參數
Over-fitting:泛化能力差(只會寫考古題、一換資料表現就嚴重下降)
可以減少Feature、增加資料量、檢查資料品質、換training model、調參數、regulatization(正規化:去掉單位的影響)
Appropirate-fitting:模型夠好就好,正確率80%-90%
注意:有時候,為了讓結果好或準確率高有時候模型也會作弊,將大多數資料都預測較多數的那類
如何判斷?
實際YES | 實際NO | |
預測YES | TP(True Positive) | FP(False Positive) #Type I Error |
預測NO | FN(False Negative) #Type II Error | TN(True Negative) |
True / False:預測正確?;Positive / Negative:預測方向
Accuracy = (TP+TN)/Tot.N
Precision = TP / (TP+FP)
Recall = TP / (TP +FN)
F1 Score = 2 / (1/precision)+(1/recall)
ML Pipeline
EDA:認識資料、資料視覺化、確認Label分布 ->
Feature Engineering:缺值處理、outlier過濾、特徵轉換、優化 ->
Standardization:將特徵壓縮到同樣範圍內 ->
Train :訓練模型、參數調效、模型選擇 ->
Validation:評估表現