第 12 章:機器學習

此章節主要介紹 SAS 平台如何進行機器學習的應用

基本介紹

首先我們透過基於數學理論和電腦技術實作機器學習的應用已經存在很長時間,所謂機器學習其實是人工智慧的分支,主要是自動化建立系統,同時從資料中學習識別模式,並且以最少的人為介入進行決策。早在 1940 年心理學家、數學家和生物學家就已經有所突破奠定了電腦模擬類神經處理的基礎,接著在 1956 年則有十位頂尖科學家在達特斯學院開了人工智慧研討會,這次的會議被廣泛認為是現代人工智慧研究的誕生日,科學家們的夢想實現由電腦建構出具有人類智力特徵的複雜機器,能夠讓機器擁有人類的所有感覺和理智,以及像人類一樣思考,就是所謂的廣義人工智慧,又稱強人工智慧。但是在一些特定的領域或特殊的任務,我們則希望能夠讓機器處理的比人類更佳出色,例如: 圖像識別、人臉識別、電腦視覺、…等領域,就是所謂狹義的人工智慧,又稱弱人工智慧。緊接著在 1958 年心理學家在任職於航空實驗室時發現了類神經網路,也就是二元線線分類器,稱之為感知器,也就是感知器線性演算法 (Perceptrons Learning Alogrithm,PLA),主要能夠根據資料的特徵,將資料判斷為不同的類別,在此之後就有許多研究人員透過機器學習的技術建立類神經建模演算法。

接著在 1984 年統計學家則提出分類與迴歸樹 (Classification and regression tree,CART),以稱決策樹的方式被廣泛採用,成為機器學習許多方面的基礎。當時類神經網路和決策樹則被應用至資料探勘領域,至今機器學習已經是一門數學理論嚴謹證明的學科,其中包括複雜的建模、優化和學習等研究。更在 1998 年 SAS 的研究人員則發表針對企業進行資料探勘的研究,其中提到機器學習的技術與資料探勘、統計、模式識別、計算神經科學、資訊檢索、資料科學和人工智慧有許多相關的應用,也因此相關學科術語經常會使我們混亂,請參考以下的術語對應表。

機器學習術語

其它學科術語

Feature、Input

Independent variable、Variable、Column

Case、Instance、Example

Observation、Record、Row

Label

Dependent variable、Target

Train

Fit

Class

Categorical target variable level

再來在 2001 年統計學家認為與許多統計建模的方法相比,機器學習的重點在於提升預測的準確性,一般來說,透過訓練複雜的模型將可提高預測準確度,但是這往往會需要針對模型進行優化,然而在當時許多機器學習演算法,例如: 類神經網路、隨機森林和支持向量機,皆已經可以從資料中學習,以非線性的模式訓練資料,並且在測試資料中表現良好,此外機器學習還能夠預先處理訓練範例,以減少雜訊和交叉驗證模型,防止過適的情況發生。緊接著機器學習演算法對應至資料探勘領域則主要可以分為三大類,分別為監督式學習、非監督式學習和半監督式學習,其中半監督式主要是監督式預測與分類演算法搭配非監督式分群演算法進行實作,至於 SAS Enterprise Miner 節點和 SAS 程序提供哪些機器學習演算法請參考以下對應表。

監督式學習演算法

演算法

SAS EM 節點

SAS PROC 程序

參考文獻

Regression

High Performance Regression、LARS、Partial Least Squares、Regression

ADAPTIVEREG、GAM、GENMOD、GLMSELECT、HPGENSELECT、HPLOGISTIC、HPQUANTSELECT、HPREG、LOGISTIC、QUANTREG、QUANTSELECT、REG

Panik (2009)

Decision tree

Decision Tree、High Performance Tree

ARBORETUM、HPSPLIT

de Ville, ‎Neville (2013)

Random forest

High Performance Forest

HPFOREST

Breiman (2001)

Gradient boosting

Gradient Boosting

ARBORETUM

Friedman (2001)

Neural networks

AutoNeural、DMNeural、High Performance Neural、Neural Network

HPNEURAL、NEURAL

Rumelhnrt, Hinton, Williams (1986)

Support vector machine

High Performance Support Vector Machine

HPSVM

Cortes, Vapnik (1995)

Native Bayes

HPBNET

Friedman, Geiger, Goldszmidt (1997)

Neighbors

Memory Based Reasoning

DISCRIM

Cover, Hart (1967)

非監督式學習演算法

演算法

SAS EM 節點

SAS PROC 程序

參考文獻

Apriori rules

Association、Link Analysis

Agrawal, Imieliński, and Swami (1993)

K-means clustering

Cluster、High Performance Cluster

FASTCLUS、HPCLUS

Hartigan, Wong (1979)

Spectral clustering

Base SAS+DISTANCE+PRINCOMP

Von Luxburg (2007)

Kernel density estimation

KDE

Silverman (1986)

Kernel PCA

Base SAS+CORR+PRINCOMP+SCORE

Schölkopf, Smola, and Müller (1997)

Singular value decomposition

HPTMINE、IML

Golub and Reinsch (1970)

Self organizing maps

SOM/Kohonen

Kohonen (1984)

最後現今企業可以使用些許的資訊能力,無論是計算能力或實際分析商品以自動化獲取觀察資料,同時透過機器學習自動化的方法找出模式和趨勢,以利達到目標,然而人工智慧實際是將人與人之間的互動或組織與系統的互動進行連結,嘗試讓機器自主學習以利模仿人類進行重複任務(大A),再加上一點智能(小I),也就是所謂的弱人工智慧,就能夠達到預先判斷和進行決策,使得我們對於根據機器學習演算法技術進行的決策越來越有信心。此外 SAS 解決方案的價值在於提供機器學習模型,同時提供平易近人的操作畫面 (請參考 SAS 官方影片,其中主要包括決策樹隨機森林類神經網路關聯分析、…等。),讓我們輕易使用進階分析相關模型,而不必成為機器學習或人工智慧領域的專家,就能針對不同問題進行進階分析,再以人類溝通的方式將結果直接傳遞給使用者。總結來說機器學習演算法將會有很大的機會影響我們日常生活,若企業導入在 Forrester 預測分析與機器學習研究報告和 Gartner 資料科學平台研究報告中皆為領導者的 SAS 解決方案將會使得企業更有機會更加貼近客戶。

整合應用

首先當我們透過 Model Studio 中建立新專案時,預設情況下會執行分區資料,若要在之前查看或修改分區設定,則可以執行「編輯專案設定」的操作指定分區資料的方法,預設為訓練資料集 70% 和驗證資料集 30%。此外專案設定是全域的,將會應用於任何建立的新專案中,當管線被執行之後將無法再進行變更,但是若要變更變數的中繼資料,則僅能夠透過管理變數節點來進行,至於在 Model Studio 中的分析元素,主要有四項,分別為:

  1. 專案

  2. 資料來源

  3. 管線

  4. 節點

接著 Model Studio 中的專案主要分析工作的容器,每個 Model Studio 專案包括資料來源和管線,並且專案中有許多相關的中繼資料,像是專案類型、專案建立者、共享列表和上次更新歷史記錄,此外若我們建立多個管線在專案中時,則能夠比較多個管線成效的分析結果儲存在該專案中。請注意在 Model Studio 中中繼資料會被定義為變數角色、測量層級等集合和其它適用資料集的設定,若使用類似的資料集建立多個專案時,其中繼資料設定可以跨專案應用,主要是將變數名稱變更為為全域中繼資料,將適用於包括具有相同名稱變數的新資料集。

再來 Model Studio 中的管線是結構化的分析行為流程,其中包括處理資料的節點和建立模型,此外客製化管線可以被儲存在 The Exchange 給其它人使用。我們能夠以管線的形式建立分析流程,並且透過向管線新增節點來建立視覺化資料探勘的功能,至於節點可以單獨增加,或者為了節省時間,我們可以透過管線範本一次增加多個節點,預先產生的管線範本將能夠加速模型建立的速度,而管線範本主要有三個層級,分別為:

  1. 基本管線範本

  2. 中等管線範本

  3. 進階管線範本

最後基本管線範本主要由迴歸和設算所組成,其中迴歸又可分為線性或邏輯,皆是所有管線範本的一部分,而進階管線範本具有自動調整的功能,模型建立過程主要透過實驗來確定最佳的參數集模型演算法,並且隨著演算法變得越來越複雜,像是神經網絡到深層神經網路,決策森林的決策樹和梯度提升,識別這些所需的時間參數增長,這種繁瑣的調整優化工作中,我們主要會透過超參數優化機器學習模型。 (註:專案主要會儲存在「/opt/sas/viya/config/data/cas/default/projects/」目錄中。)

開始使用

  • 點選【bank.zip】下載資料壓縮檔,請解壓縮取出 CSV 檔案。

  • 登入至 SAS Viya 分析平台。

  • 在畫面左上方點選【顯示應用程式功能表】鈕。

  • 選取【管理資料】。

  • 選取【匯入】頁籤,點選【本機檔案】。

  • 選取 CSV 檔案,按下【開啟】鈕。

  • 按下【選取目的地】鈕。

  • 選取【CASUSER (xxx)】,點選【選取】。

  • 修改【目標表格名稱】為【BANK】,點選【取代檔案】。

  • 選取【輸入檔案分隔符號】,點選【自訂】。

  • 在【分隔符號】中,輸入【;】。

  • 按下【匯入項目】鈕。

  • CSV 檔案上傳成功。

  • 選取【建置模型】。

  • 按下【新增專案】鈕。

  • 輸入【名稱】為【BANK】。

  • 選取【類型】,點選【資料採礦和機器學習】。

  • 選取【範本】,點選【瀏覽範本】。

  • 選取【具有自動調整的類別目標的進階範本】,按下【確定】。

  • 按下【瀏覽】鈕。

  • 在【篩選框】中輸入【BANK】關鍵字。

  • 點選【BANK】資料集,按下【確定】鈕。

  • 按下【進階】鈕。

  • 點選【分割資料】。

  • 將【訓練】、【驗證】和【測試】,分別輸入為【70】、【20】和【10】,按下【儲存】鈕。

  • 按下【儲存】鈕。

  • 在【篩選框】輸入【y】。

  • 勾選【y】,將【角色】修改為【目標】。

  • 選取【管線】頁籤。

  • 按下【執行管線】鈕。

  • 已完成執行管線。

  • 選取【模型比較】節點,按下右鍵點選【結果】。

  • 查看【模型比較】結果,點選【評估】頁籤。

  • 查看【模型比較】結果的【評估】圖表。

  • 按下【展開】鈕,展開【ROC 報表】。

  • 勾選【一個分割】鈕,按下【關閉】鈕。

  • 按下【關閉】鈕。

  • 選取【模型比較】頁籤。

  • 選取【觀點】頁籤。