fbpx

哈囉,大家好,我是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
預測YESTP(True Positive)

FP(False Positive)

#Type I Error

預測NOFN(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:評估表現

Leave a Reply