【 NCCU DA 3.0 社課九|機器學習入門】

機器學習是數據分析的進階應用,他能夠幫助我們從現有數據中預測未來。應用的範圍也相當廣泛,舉凡產品需求預測、消費行為預測、顧客分級等等,都可以利用機器學習方法做準確的分析。

此次社課榮幸邀請到了<容噗玩Data>的張容溥老師為我們講解機器學習的種類、預測方法及原理,並使用信用卡違約資料做實際的案例操作。以下將逐一介紹機器學習的基本理論與演算法。

Part 1 | 機器學習理論

資料種類:資料主要可以分為兩種形式,分別是結構化資料非結構化資料,兩者的最大的差別在於是否為有規定的資料格式以及是否為關聯式資料庫。

  • 結構化資料:資料型態會是有規定的,關聯式資料庫(MySQL)便是其中一種。其特點為欄位定義明確、資歷格式固定、語法重複使用率高。大部分使用的數據都屬於結構化資料。
  • 非結構化資料:沒有規定的資料型態,本身屬於非關聯式資料庫(No SQL),舉凡文字、圖片等資料型態皆為非結構化資料。

那我們可以利用結構化資料做什麼樣的分析呢?

結構化資料分析方法:結構化資料主要可以進行描述性分析、預測分析以及因果分析

1.描述性分析

  • 現有資料分析結果,解釋已發生事情
  • 例如::RFM顧客分級/關聯分析/分群

2.預測分析

  • 依據現有資料料預測未來
  • 例如:股市漲跌/預計送達時間

3.因果分析

  • 欄位間的因果分析
  • 例如:因為客流下降5%所以營收下降10%

對於資料與分析種類有了初步認識後,下一步就是要按照資料的型態與選擇的分析種類去挑選合適的演算法。

常見演算法種類:常見演算法主要可以分為兩大類,分別是:

1.非監督式學習

  • 無標準答案
  • 多用於描述性分析

2.監督式學習

  • 有標準答案
  • 多用於預測分析

那麼拿到一筆資料及決定好分析方法後,又該如何操作預測出我們想要的結果呢?

預測:主要可以分為

1.數值預測,例如:預計送達時間

2.分類預測,例如:是否下雨

3.機率預測,例如:降雨機率

預測基礎流程

  1. 資料清洗:在建模以前我們必須先初步了解資料集的資訊,注意有無缺失值或離群值避免預測結果的不準確
  2. 缺失值處理:補值、刪除
  3. 離群值處理:轉換後保留、刪除
  4. 隨機抽樣:接著我們可以利用Python中的train_test_split將資料拆分為訓練集(70~80%)和測試與驗證集(20~30%)。
  5. 模型建立與預測:確認應變量Y種類並選擇適合演算法
  6. 模型診斷:根據數值型與類別型資料選擇合適的評估指標評估模型的好壞
  • 數值型資料:MAE、MSE、RMSE、MPE(減少單位差異,20~40%算好)
  • 類別型資料:準確率(Accuracy)、精確率(Precision)、招回率(Recall)、精確率與招回率的調和平均數(F1 score=2*(Precision * Recall)/(Precision + Recall))
混淆矩陣與類別型資料評估指標

7. 適配(擬合):模型建立好後可依據bias和variance檢視是否有overfitting或underfitting的情況。

  • overfitting:高 variance,低 bias
  • underfitting:低 variance,高 bias

接下來的第二和第三部分,我們將對非監督式和監督式演算法進行詳細介紹。

Part 2 | 非監督式演算法

K-means分群:此演算法的目的主要是利用距離來定義相似度(距離越近越相似)讓相似資料都各自分成一堆(組內差(SSE)小),組間距離拉大(組間差(SSR)大)把樣本分成 K 群。

主要可以應用於輪廓的探勘或是將資料貼標。然而要注意的是,此種演算法只能運用於數值,例如:性別便無法使用K-means分群,因此要特別注意欄位的特性。

  • 步驟:
  1. 決定分群數:可以由人為決定或AI決定。以AI決定的常見用法為Elbow Method,也就是Python中的函數 — KneeLocator,以此得知最好的K值。同時也可以生成k值與SSE圖來找到轉折點。
  2. 隨機生成中心點
  3. 計算樣本到中心的距離,最常使用的距離公式是歐氏距離
  4. 分配樣本到最近子群
常見距離公式
x:中心點

KNN:此演算法除了可以進行分群以外,在資料有缺失或不足時,我們也常使用KNN來用鄰近點找出相似資料進行補植。

  • 步驟:
  1. 距離計算:首先我們要計算要各個樣本與預測目標的距離
  2. 決定k值:距離計算完後我們要決定用距離最接近預測目標的k個樣本去決定目標類別
  3. 投票決定類別:以k個樣本中最多的類別去決定預測目標的類別

Part 3 | 監督式演算法

迴歸模型:當我們想要找多個自變數(independent variable)與依變數(dependent variable)之間的關係時,就可以利用迴歸模型。

找到關係後便可以將新的資料帶入進行預測。可以運用在銷售預測、分析價格彈性,甚至是評估商業決策風險等等。

  • 種類:

(1) 基本款:線性、廣義線性(如:羅吉斯Logistic,只能用於類別預測,預測目標為二元時表現最佳)

(2) 主流款:當模型發生過度配適(Over-fitting)時,必須進行正規蘳以去除或減少一些不必要變數對於預測結果的貢獻性。

  • 一般常用的模型有:Lasso(部分便量係數「等於零」)、Ridge(部分變量係數「趨近零」)、ElasticNet (綜合了Ridge 懲罰項達到有效正規化優勢以及Lasso 懲罰項能夠進行變數挑選優勢)

(3) 其他款:Spline、多項式

迴歸模型

決策樹:決策樹會根據訓練資料產生一棵樹,依據訓練出來的規則來對新樣本進行質化或量化的預測。

  • 質化:對於相似的X,預測是所有對應Y的「平均值」
  • 量化:對於相似的X,預測是所有對應Y的「多數類別」

目前主流的種類採用 CART (Classification and Regression Tree) 演算法原理。此外因為是樹狀結構,所以執行時速度快且每個分類階段都明確清楚。

(1) 模型分枝的切割點將以混亂程度評估指標來決定,其中常見的指標有以下兩種:

  • Gini Impurity:值為0純度愈高,分類效果較好。
  • Information Gain:值越大代表說純度提升越大,也就是說分類的效果較好,模型會選擇 Gain 最大的方法做資料的切割。

此外,決策樹較需擔心適配度。若是有過度配飾問題可進行剪枝,可取Gini小於某個值比較相對最佳結果即可。

以iris data為例的決策樹模型

--

--