Leo Yeh's Blog

SAS 文字分析 (18)

教學目標

初步了解 SAS Visual Text Analytics 產品進行客戶抱怨的文字資料進行分析。

重點概念

首先消費者金融保護局 (Consumer Financial Protection Bureau,CFPB) 是一個聯邦政府機構,旨在使金融產品及服務爲每一個人服務,不論是買房子、選擇信用卡、向國外的家人寄錢、或是以其他各種方式使用消費者金融產品,同時監管銀行、信用合作社和其他金融公司,並且強制執行金融法律,使人們免受不公正、欺騙性、濫用的行為所害。但是鑑於投訴逐年呈指數增長,此時 CFPB 要如何才能夠跟上趨勢,而且還能幫助更多人擁有豐富的資料呢?像是他們是否有辦法定量評估各種趨勢的資料呢?有沒有更好的方法來發現消費者最關心的領域,並在它們變得無法管理之前幫助在宏觀層面上解決這些問題呢?

接著在過去可能會增加更多讀者來進行手動的文字分析,並且不是解決問題的方法,首先除非採用非常具體的標準,否則一位讀者用來解決和標記投訴的方法可能與第二位讀者使用的方法完全不同,當這種差異擴展到許多讀者,則我們對於文字資料將會有許多不同的解釋。此外如果我們每天負責審查超過 100 個投訴,那麼評估前 10 個投訴的方式並不一定會得到與過去 10 個相同的詳細資訊,因為人們會疲勞,更進一步若有一種趨勢被發現,此時讀者被告知要回過頭來重新評估過去一年中所有這些新趨勢的資料,這時手動分析文字資料將無法擴展的情況,同時對於趨勢模式的簡單搜尋操作是不足夠。

再來針對手動分析文字資料所帶來的問題,我們將能夠透過 SAS Visual Text Analytics on SAS Viya 產品針對 CFPB 公開消費者投訴的文字資料進行分析,以利探索消費者投訴中的主題和類別,更進一步分析消費者的投訴情緒。此外搭配 SAS Visual Analytics on SAS Viya 產生互動式報表允許分析師探索預先存在的資料內容,同時產生時間趨勢折線圖表,以利商業分析師能夠觀察一段時間內的趨勢,透過資訊採取更適當的行動,更多案例說明,請參考官方文件

最後目前各行各業將收集更多的文字資料來確定新的模式、關係和見解,以利更了解客戶,並且獲得相對於競爭對手的優勢。當然商業分析師更能夠透過透過 SAS Viya 分析平台同時使用監督式模型和無監督模型,以利解決舊的業務問題和發展新的見解,更多應用說明,請參考官方文件。此外我們也透過註冊試用「SAS Visual Text Analytics on SAS Viya」產品 14 天,同時建議參考「學習 SAS 書籍」中「第 14 章:文字分析」的開始使用 Step by Step 圖文說明進行實機操作應用。

相關資源

SAS 學習資源 (2)

教學目標

初步了解如何開始學習 SAS 平台的基本概念。

重點概念

首先 SAS 官方提供許多教學影片研討會影片資源,初學者將能夠透過這些影片資源學習 SAS 平台,然而目前許多資料科學家主要使用 R 和 Python 為主,並且企業通常會將具有不同背景和經驗的團隊聚集在一起解決複雜問題,作為業界公認的分析領域的領導者,為何還要學習 SAS 平台呢?因為透過 SAS 平台才能夠同時管理 R、Python 和 SAS 所開發的模型,以及更能夠擴展資料科學的工作,並且加快將分析模型進行企業部署,同時滿足法規的要求,至於要如何達到呢?請先參考官方教學影片官方研討會影片的內容,當我們觀看完影片之後,將會發現不論是教學影片或研討會影片的內容皆常使用 HMEQ 資料集進行範例教學,所以什麼是 HMEQ 資料集呢?

接著 HMEQ 的全名為 Home Equity Loans,也就是房屋淨值貸款,在過去主要為 SAS Enterprise Miner 所提供的案例研究方法所使用的資料集,官方文件中提到 HMEQ 資料集主要是描述金融服務公司向其客戶提供房屋淨值信貸額度的情境,該公司過去已經擴展了數千個信貸額度,其中許多被接納的申請人,約 20% 已經拖欠貸款,因此透過使用地理、人口統計、財務、… 等相關變數,公司期望建立一個模型來預測申請人是否會違約的模型。而在分析資料之後,公司選擇了 12 個預測變數或輸入變數的子集來模擬每個申請人是否違約,其中回應變數或目標變數為 BAD 表示申請人是否違反房屋淨值信貸額度,HMEQ 資料集中總共有 5,960 個觀測值,以及總共有 12 個輸入變數和 1 個目標變數,至於 HMEQ 資料集中變數的相關資訊,請參考下表。

編號 變數名稱 模型角色 資料類型 描述
1 BAD 目標 二元 1 為客戶違約貸款或嚴重違約,0 為客戶已償還貸款。
2 CLAGE 輸入 間隔 最長信用額度的年齡,以月為單位。
3 CLNO 輸入 間隔 信用額度。
4 DEBTINC 輸入 間隔 債務與收入比率。
5 DELINQ 輸入 間隔 逾期信用額度。
6 DEROG 輸入 間隔 主要貶損報告的數量。
7 JOB 輸入 名目 總共有六類職業類別。
8 LOAN 輸入 間隔 貸款申請金額。
9 MORTDUE 輸入 間隔 現有抵押貸款應付金額。
10 NINQ 輸入 間隔 最近的信用查詢數量。
11 REASON 輸入 名目 DebtCon 為債務合併貸款,HomeImp 為家居裝修貸款。
12 VALUE 輸入 間隔 目前屬性值。
13 YOJ 輸入 間隔 申請人目前的工作多少年。

此外 HMEQ 資料集主要能夠從 SAS 官方網站下載 CSV 檔案,更能夠直接透過 SAS Studio 撰寫 SAS 程式碼的方式建立 HMEQ 資料集,並且再撰寫 SAS 程式碼針對 HMEQ 資料集進行取樣分割的操作。

再來 HMEQ 資料集主要能夠進行機器學習演算法測試和驗證,至於如何透過機器學習演算法進行 HMEQ 資料集的決策分析,建議參考官方影片,其中主要以由淺入深的方式解釋如何透過決策樹模型針對 HMEQ 資料集產生決策規則。此外 SAS 官方文件針對 HMEQ 資料集提供許多範例教學,分別為:

  1. 透過 SAS Enterprise Miner 建立預測模型。
  2. 透過 SAS Visual Analytics 建立決策樹模型。
  3. 透過 SAS Visual Data Mining and Machine Learning 建立開源程式碼模型。
  4. 透過 SAS Studio 以 SAS 程式碼建立進階決策樹模型、森林模型和神經網路模型進行比較。
  5. 透過 Jupyter Notebook 以 R 語言建立決策樹模型、森林模型和神經網路模型進行比較。
  6. 透過 Jupyter Notebook 以 Python 語言建立決策樹模型、森林模型和神經網路模型進行比較。

此外在針對 SAS Visual Data Mining and Machine Learning 不僅提供以 HMEQ 資料集為基礎建立開源程式碼模型的範例教學之外,更提供 HMEQ 資料集為基礎許多以機器學習演算法程序的範例教學,分別為:

  1. GRADBOOST 程序
  2. SEMISUPLEARN 程序
  3. FASTKNN 程序
  4. FOREST 程序
  5. GRADBOOST 程序
  6. SVMACHINE 程序
  7. NNET 程序

以及針對透過 ASTORE 過程建立分析儲存二進位檔案對其進行管理,並且使用分析儲存針對新資料進行評分,其主要也是以 HMEQ 資料集為基礎提供教學範例

最後在 SAS Viya 分析平台中主要提供完整的模型管理生命週期的分析應用,以及協助企業落實智慧決策的分析應用,其主要也是以 HMEQ 資料集為基礎提供快速開始的教學範例。因此在學習 SAS 平台之前,則建議先了解 HMEQ 資料集的變數資訊和應用情境,對於學習將會有非常大的幫助。此外最近我個人開始在工作之餘預計將此部落格的文章內容重新整理和編排為學習 SAS 平台的線上書籍,其中內容目前主要也是以 HMEQ 資料集為基礎撰寫開始使用 SAS Viya 分析平台的圖文操作步驟,像是資料準備、商業智慧、人工智慧、整合開源、模型管理、智慧決策、程式開發、工作流程、…等應用,希望此線上書籍能夠幫助初學者學習 SAS 平台。(註:線上書籍的開始使用圖文操作教學就算沒有 SAS 平台,也能夠在二週內免費申請試用環境進行線上實機操作提高學習成效。)

相關資源

SAS 深度學習 (5)

教學目標

初步了解如何透過 DLPy 套件使用卷積神經網路來解決電腦視覺問題的基本概念。

重點概念

首先卷積神經網路 (Convolutional neural network,CNN),簡稱 CNN,主要是屬於神經網路的類別之一,其廣泛用於電腦視覺中的影像識別和分類,CNN 主要是由多個圖層和多個神經元所組成,其主要將影像資料作為輸入,並且 CNN 允許使用結構化資訊,以利在計算上更有效,並且使用更少的記憶體,典型的 CNN 將由許多不同的層組成,每種類型的層皆有特定的屬性和功能,其中主要的圖層類型,分別為:

  1. 輸入層 (Input Layer):主要儲存分類影像的原始像素值,像是 CIFAR-10 資料集中的每個影像的高度為 32,寬度為 32,深度為 3 個顏色通道,分別為藍色,綠色和紅色。
  2. 卷積層 (Convolution Layer):主要將卷積運算應用於輸入,其還計算連接到輸入中的局部區域的神經元的輸出,卷積反映了單個神經元對視覺刺激的反應,請注意卷積層執行繁重工作,並且需要大量且複雜的運算。此外卷積層能夠使用濾波器來測量輸入路徑與特徵的相似程度,所謂過濾器則是在訓練期間學習的權重向量,過濾器通常具有較小的寬度和高度,當然其與輸入具有相同的深度,像是對於彩色影像而言,對於藍色,綠色和紅色的三個顏色通道,濾鏡深度為 3,而對於黑白圖像,濾鏡深度為 1,同時我們以一定的步幅 (Stride) 在圖像上滑動濾鏡合併點積運算,所謂步幅就是我們每次移動窗口時滑動的像素數,並且透過點積運算建立一個稱為卷積特徵,像是激活圖譜 (Activation map) 或特徵圖譜 (Feature map) 的新矩陣。
  3. 池化層 (Pooling Layer):主要匯整通過逐漸減小影像表達的空間維度,此時需要計算參數來簡化卷積層的輸出,其通常放置在連續的卷積層之間,並且沿高度和寬度大小進行下取樣操作,以利減小影像呈現時的大小,透過池化層將能夠明顯減少了需要分析的參數數量,從而減少了計算數量,同時更有助於緩解過度擬合的常見挑戰,其中最大池化是最受歡迎的池化方案,因此搭配使用卷積層和池化層來加速運算效率。
  4. 完全連接層 (Fully Connected Layer):主要傳統的分層連接進行對應,透過矩陣乘法計算激活和偏移,以及為每個傳入的資訊附加參數,此外完全連接層中的神經元與前一層中的所有激活具有完全連接,所以包括大量的參數。
  5. 輸出層 (Output Layer):主要與特定的損失函數相關聯,損失函數計算預測中的誤差,其中的神經元連接到前一層中的所有激活,就像神經網路中的完全連接層一樣。此外其中的 softmax 函數主要採用分數向量,並且將其轉換為 0 至 1 之間的值的向量,其總和為 1 ,因此應用 softmax 作為激活函數將能夠確保來自完全連接層的輸出機率之和為 1。

然而除了上述主要的圖層類型之外,在 SAS 深度學習應用中還有支援不同圖層應用,像是 Batch Normalization Layer、Concatenation Layer、Residual Layer、Keypoints Layer、Object Detection Layer、Projection Layer、Segmentation Layer、Shuffle Layer、Transposed Convolution Layer、… 等圖層,其中透過批次正規化圖層 (Batch Normalization Layer) 主要能夠解決收斂問題,此外合併層 (Concatenation Layer) 和剩餘層 (Residual Layer) 又稱為跳過層 (Skip-Layer) 連接主要能夠幫助神經網路記住早期學到的潛在特徵,至於詳細資訊請參考官方文件

接著在 SAS Viya 分析平台中,除了提供 SAS Scripting Wrapper for Analytics Transfer (SWAT) 用於各種通用程式語言使用 SAS Viya 函數的軟體套件,更提供深度學習套件功能的進階 Python 函式庫 DLPy,所謂 DLPy 主要提供了一種方便的方法應用深度學習的功能來解決電腦視覺文字分析時間序列預測的問題,至於其特色主要為:

  1. 載入和建構影像,文字,語音和時間序列資料的深度學習模型。
  2. 提供 Keras 風格和 PyTorch 風格的進階 API 使用語法。
  3. 提供了許多預定義的神經網絡架構模型和提供預先訓練過的權重,像是 LeNet、VGG、ResNet、DenseNet、Darknet、Inception、YoloV2 、Tiny_Yolo、… 等。
  4. 提供內建模型分析和資料視覺化工具,像是熱圖和特徵圖,以利使用者能夠針對深度學習模型進行分析,更深入了解電腦視覺問題中黑匣子的神秘面紗。
  5. 提供深度學習相關任務的多種支援功能,像是神經網路視覺化、特徵圖、預測結果、資料分割、資料增強、模型部署、… 等。
  6. 輕鬆建立特定任務的模型,每個深度學習套件皆需要很多技巧來定義不同任務的模型,因此為特定任務創建了預先定義模型,以利盡最大努力消除這種負擔。
  7. 輕鬆整合開源程式碼的套件,將能夠讓使用者從 SAS Viya 分析平台獲取資料至本地客戶端,並且將其轉換為流行的資料格式,像是 DataFrame,轉換之後的資料就能夠無縫的應用至其它開源程式碼套件中的模型,像是 scikit-learn。
  8. 提供匯入和匯出 ONNX 格式的深度學習模型。

再來透過 SAS 官方影片的展示,我們能夠初步了解資料科學家將能夠透過 DLPy 套件完成以下任務,分別為:

  1. 建立用於特徵提取的複雜模型,像是 ResNet 模型。
  2. 使用模型用於影像分割和物體追蹤,像是 U-Net 模型。
  3. 使用模型用於物體檢測,像是 R-CNN 模型 (VGG16)。
  4. 使用模型用於影像分類,像是 ShuffleNet 模型和 MobileNet 模型。
  5. 使用多任務模型用於影像標記的深度學習,以利獲得產品推薦。

然而 DLPy 深度學習套件能夠將對所建立用於電腦視覺問題的模型匯入和匯出為 ONNX 格式的深度學習模型,至於相關操作,請參考 SAS 官方影片

最後為什麼要使用卷積神經網路呢?相較於傳統前饋神經網路不能很好地擴展到完整影像,而透過 CNN 的容量將能夠透過改變其深度和寬度來控制 CNN 對影像的性質,像是統計的平穩性和像素依賴性的局部性做出了強有力且大多數正確的假設。此時與具有相似大小的層的標準前饋神經網路相比,其主要能夠透過影像輸入的架構來最小化神經元的數量,與完全連接的網路相比,其僅將每個神經元連接到輸入的局部區域,此時局部區域的大小主要由濾波器大小定義,因此與完全連接的網絡相比,使用較小的局部區域,將能夠顯著減少神經元連接和權重的數量,所以更容易訓練並且它們的效能不會更差,像是在 20 世紀後期 Yann LeCun 和其同事開發一種名為 LeNet 的卷積神經網路來識別手寫數字,其中 LeNet 在前兩層的不同位置對相同的濾波器使用相同的權重,與完全連接的神經網路相比,卷積神經網路明顯的減少了需要學習的參數數量。

相關資源

SAS 文字分析 (17)

教學目標

初步了解 SAS Visual Text Analytics 產品進行文字資料分析應用的基本概念。

重點概念

首先文字是人工產生最大的資料來源,其每天以指數倍數成長,像是發送電子郵件、在社群媒體上發貼文、與聊天機器人或數位助理進行互動、…等文字記錄,而當我們透過網際網路不斷傳輸和儲存這些資訊時,其中越來越多的知識、觀點和經驗將會被擷取為非結構化的文字資料,此時企業要如何透過文字資料進行分析,以利帶來業務轉型或創新價值。所謂文字分析主要是針對文字資料手動審查和分類該內容,以利企業組織擴大閱讀,以及用於量化文字資料隱藏在其中所代表的人類行為模式,同時文字分析為非結構化資料提供了結構,因此能夠進行分析。至於自然語言處理 (Natural Language Processing,NLP) 是文字分析過程的基礎,其主要執行語言分析,以利幫助機器閱讀文字資料,更進一步幫助機器識別和理解語言的結構,同時透過與自然語言相關的機器學習演算法自動提取關鍵特徵和關係概念。此外當企業使用非結構化文字資料作為最大的資料來源,這時文字分析功能將會是企業部署人工智慧應用的核心關鍵,文字分析的結果將能應用於各種業務情境,像是快篩金融詐欺、追蹤服務品質、量化客戶回饋、改善運營流程、增強預測模型準確性、… 等,更多資訊請參考官方白皮書

接著在 SAS Viya 分析平台中的 SAS Visual Text Analytics (VTA) 產品將能夠透過自然語言處理找出重要的資訊,並且整合機器學習演算法和語言規則的方法,加強文字分析的結果。若我們透過 SAS Visual Text Analytics (VTA) 產品進行文字分析時,則主要有四個階段,分別為:

  1. 文字資料準備:主要透過自然語言處理技術將文字資料自動分為預先定義的概念,像是日期、時間、測量、金錢、組織、百分比、人員、位置… 等。
  2. 文字資料剖析:主要透過自然語言處理技術將文字資料自動分為段落、句子、詞語、…等有意義的元素。
  3. 文字主題指派:主要透過特徵擷取技術將文字資料自動根據相關術語指派為相關主題。
  4. 文字分類評估:主要透過文字建模技術將文字資料自動依主題進行文字分類為相關類別。

此外透過 SAS Visual Text Analytics (VTA) 產品所提供的視覺化網站操作界面將能夠以人工的方式自訂類別,以利企業組織發現文字資料中趨勢和模式,同時 SAS Viya 平台支持整個分析生命週期,從資料準備到探索分析,再將模型投入正式以實現價值,透過協同合作的分析平台中建立,管理和共享內容,以及基於開放式的架構,企業組織中的使用者將能夠選擇使用開發源始碼 Python 和 R 進行整合應用,更多資訊請參考官方網站

再來我們透過 SAS Model Studio 工具建立文字分析專案,預設會產生「資料節點」->「概念節點」->「文字剖析節點」->「情緒節點」->「主題節點」->「類別節點」的管線,然而一開始必須先指定資料中一個資料欄位為文字角色,再切換至管線頁籤執行管線,當管線成功執行之後,我們將能在類別節點上按右鍵選擇「結果」來查看「類別」節點的結果,結果主要包括「摘要」頁籤和「輸出資料」頁籤,在摘要頁籤中主要顯示的元件數取決於是否存在自動產生的類別,如果在管線執行期間沒有建立類別,則僅顯示「類別評分程式碼」,此時我們需要將主題節點的特定主題增加為類別之後,再重新執行管理,當建立類別之後,將會顯示「對自動產生類別的診斷計數」和「對自動產生類別的診斷度量」圖表,其中「對自動產生類別的診斷計數」圖表主要會按照類別顯示真陽性,偽陰性和偽陽性的文件數量,「對自動產生類別的診斷度量」圖表主要會按照類別顯示 F 量值、召回和精準度,至於計數和度量的定義,請參考下表。

類型 名稱 說明
計數 真陽性 (True Positives,TP) 主要為我們想要檢索所請求的資訊。
計數 偽陰性 (False Positives,FP) 主要為我們期望避免檢索與請求無關的資訊。
計數 偽陽性 (False Negatives,FN) 主要為我們期望避免遺漏與請求相關的資訊。
計數 真陰性 (True Negatives,TN) 主要為我們不想要檢索不相關的資訊。
度量 誤分類率 (Misclassification) 主要為錯誤分類的分數,公式為 (FP + FN) / (TP + TN + FP + FN)。
度量 精度度 (Precision) 主要為檢索到的相關文檔的分數,公式為 TP / (TP + FP)。
度量 召回 (Recall) 主要為檢索到的相關文件的分數,公式為 TP / (TP + FN)。
度量 F 量值 (F-Measure) 主要為精度和召回的調和平均數,公式為 (2 × Precision × Recall) / (Precision + Recall)。

最後 SAS Visual Text Analytics (VTA) 產品除了有提供自然語言處理的功能之外,更有提供專有的規則編寫語法,稱為 LITI,全名為 Language Interpretation for Textual Information,以利幫助我們從非結構化文字資料中提取所需的資訊,這種組合主要包括規則建立工具和自動規則產生等支援功能,並且應用了統計機器學習所提供的功能,同時基於規則的方法,以提高提取的透明度。因此我們主要將 LITI 語法用於撰寫概念規則,然而有許多不同類型的規則可用於提取概念,並且我們能夠在每個自訂概念中指定多個規則,至於有哪些常見的規則類型,請參考下表。

規則類型 描述和基本語法
CLASSIFIER 主要識別文本中匹配的單個術語或字串,基本語法為 CLASSIFIER:string<,information>。
CONCEPT 主要參考其它概念來識別相關資訊,基本語法為 CONCEPT:argument-1
C_CONCEPT 主要返回僅在指定上下文中發生的匹配資訊,基本語法為 C_CONCEPT:_c{argument}
CONCEPT_RULE 主要使用布林運算元來確定匹配項目,基本語法為 CONCEPT_RULE:(
NO_BREAK 主要透過確保僅在找到整個字符串時發生匹配來防止部分匹配,基本語法為 NO_BREAK:_c{argument}。
REGEX 主要透過正規表達式來識別文本中匹配的系列文字類型的資訊模式,基本語法為 REGEX:regular-expression。
REMOVE_ITEM 主要當一個單詞是多個概念的唯一識別時確保正確匹配,基本語法為 REMOVE_ITEM:(ALIGNED, “_c{concept name}”,<”argument”>)。

當然我們除了能夠新增自訂概念的規則,更能夠新增類別的規則,然而類別規則僅解析為「True」或「False」布林值,當為「True」時的結果是匹配,反之當為「False」時的結果是不匹配。類別規則比 LITI 規則更易於編寫,至於有哪些常見用於撰寫類別規則的布林運算子類型,請參考下表。

運算子類型 說明
AND 如果文字資料中出現所有參數,則匹配。
OR 如果文檔中至少出現一個參數,則匹配。
NOT 如果文字資料中沒有出現參數,則匹配。
ORD 如果所有參數都按照規則中指定的順序發生,則匹配。
SENT 如果所有參數以任何順序出現在同一個句子中,則匹配。
PAR 如果所有參數都出現在單個段落中,則匹配。
DIST_n 如果所有參數都出現在彼此的 n 個 Token 內,而不管它們的順序如何,則匹配。

此外更多有關自訂概念規則和類別規則的最佳實務,建議請參考官方出版的「SAS Text Analytics for Business Applications」書籍。

總結我們透過 SAS Visual Text Analytics (VTA) 產品以簡單手動和複雜自動的方式針對文字資料進行分析,以及針對文字資料自動識別概念、剖析文字、提取主題和匹配類別。

相關資源

SAS 資料管理 (18)

教學目標

初步了解如何透過 SAS Data Preparation 解決方案落實分析生命週期的基本概念。

重點概念

首先資料整合和資料準備是兩個不同的方法,這幾十年來 SAS 9 平台支援傳統資料管理進行資料整合方法為企業提供了許多成熟的解決方案,並且連續九年被 Gartner 評選為資料整合工具的領導者,其中主要管理結構化資料為主,並且包括整合、品質和治的相關應用程式支援資訊人員和 ETL 開發者。然而若要推動進階分析、機器學習和人工智慧,則需要採用不同的資料準備方法,此時 SAS Viya 平台支援資料準備,其主要是透過自助式互動的方式進行資料的準備,過程中無需撰寫程式碼,更能夠搭配資料品質的強大功能進行資料轉換和清理,並且在分散式平行架構上進行快速和高效的資料處理,加速分析生命週期,以利滿足商業分析師和資料科學家的需求,至於資料整合和資料準備的差別,請參考下表。

資料整合 資料準備
使用者 資訊人員和 ETL 開發者 商業分析師和資料科學家
撰寫程式
目標用途 資料市集、資料倉儲和資料湖 資料探索、資料分析和資料湖
資料類型 結構化資料 多元類型資料
資料來源 以內部系統為主 以外部系統為主
資料模型 複雜 簡單
資料時間 日/週/月 分鐘/小時
使用目的 業務案例 進階分析

接著資料準備主要會進行資料存取、資料探索、資料清理、資料轉換和資料分析,其中從資料存取至資料轉換主要會花費 80% 的時間,而剩下 20% 的時間才會進行資料分析,此時 SAS Viya 平台所提供的資料準備功能,我們能夠在分為五個階段,分別為:

  1. 管理資料:存取資料載入資料至 CAS 中,並且存取資料結構和內容。
  2. 準備資料:選擇資料、操作資料,並且將資料結構化為需要的資料格式。
  3. 清理資料:將資料轉換為一致性的格式。
  4. 管理和治理資料:自動化資料準備和監控任務,並且更容易管理跨使用者環境。
  5. 協同合作:分享資料和資料準備計劃,並且促進不同使用者之間的合作。

不同階段將會對應使用 SAS Viya 分析平台中不同的工具,管理資料階段主要會使用 SAS Data Explorer 用於將 SAS 資料集,關聯式資料庫之資料表,分隔檔案和社群媒體資料載入至 SAS Viya 分析平台中以進行查看和進階分析,SAS Environment Manager 用於管理 CAS 資料庫和資料表,類似於 SAS Data Explorer 的操作界面,並且為資料連接建立和維護身份驗證網域,以及管理可用於資料的使用者定義格式和管理品質知識庫。準備資料階段主要會使用 SAS Data Studio 用於進行資料操作和將新資料匯總至 SAS Viya 分析平台中進行資料轉換,此時準備資料的使用者必須屬於資料建立者客製群組中的成員之一,過程中主要進行資料欄位轉換、資料列轉換、多輸入轉換和客製化轉換。清理資料階段主要會使用 SAS Data Studio 用於使用 SAS 品質知識庫 (Quality Knowledge Base,QKB) 中定義的資料品質轉換功能,其中包括解析、擷取欄位、標準化、對應、分群、記別分析、… 等功能。管理和治理資料階段主要會使用 SAS Lineage Viewer 用於顯示 SAS Viya 分析平台中物件的關係,像是資料來源和資料計劃,SAS Environment Manager 用於管理資料計劃和報表等內容,並且提供計劃和監視工作任務排程的執行狀態,以及查看日誌的功能。協同合作階段主要會使用 SAS Drive 用於企業組織中共享資料表,報表,資料計劃和工作任務,以利促進使用者之間的協同合作。

再來資料準備將會因為資料量和資料來源的數量不斷增加導致可能成本高昂且複雜,雖然傳統的資料管理流程能夠產生一定程度的數據,但是自助式服務的資料準備方式將能夠在短時間內準備用於分析的資料,同時目前有許多的公司主要是以資料驅動為主,因此企業主要會根據資料做出決策分析。此外商業分析師和資料科學家根據過往的經驗通常會看到特別需要用於分析模型的缺少資料,此時透過自助式服務進行資料準備任務將能夠獲取資料,並且用於建立分析模型進行實驗比較,以利加速分析生命週期,所謂分析生命週期主要有兩個主要階段,分別為發現和部署。在發現階段中,我們主要提出一個問題透過詢問業務問題來推動發現過程,並且定義業務需要知道的內容,然後必須理解業務所要表達問題是否能夠使用預測分析來解決,此時預測分析就會需要適當準備適合的資料,但是當來自不同來源和不同格式的資料需要用於預測分析模型的輸入時,則資料準階段就會變得更加重要,同時我們主要使用互動自助式的視覺化工具用於探索資料,此時相關工具需要讓不同的使用者進行操作,從沒有統計知識的商業分析師至擅於實驗分析的資料科學家,相關工具必須能夠搜索關係、趨勢和模式,以利更深入的了解資料,因此資料探索階段細分化了業務問題,並且開發和測試如何解決業務問題相關的想法,但是這可能會需要增加、刪除和組合變數,此時將會需要更多的資料準備任務,以及當我們使用分析和機器學習建模演算法來確定資料中的關係並回答業務問題,並且分析工具將會尋找預測所需的可靠資料和建模技術進行組合,沒有一種演算法始終表現最佳,解決業務問題最適當演算法的分析模型將取決於資料準備,再透過實驗找出問題背後最關鍵和可靠的答案。在部署階段中,我們主要在開發和增加更多資料,並且建立模型之後,我們將會需要落實和進行模型部署,此時資料準備不會停止,因為我們必須透過不同使用者協同合作,以利持續準備最新的訓練資料用於建立分析模型,並且部署最適當演算法的分析模型至正式環境中。

最後資料準備工具必須與資料治理功能密切配合,僅有當我們擁有高品質資料時,自助服務才能夠真正發揮用途,以利加速分析生命週期。然而許多自助式服務的資料準備工具皆沒有資料治理的功能,為什麼這很重要呢?我們皆知道垃圾進,垃圾出 (Garbage In Garbage Out,GIGO) 的觀念,如果將錯誤和無意義的資料輸入電腦系統,電腦自然也一定會輸出錯誤和無意義的結果,在企業組織中分析主要會由不同的使用者群組分工合作完成整個分析生命週期,其中包括資訊人員,ETL 開發者,商業分析師和資料科學家,此時就會需要使用相同的資料,並且使用相同的原則和標準處理流程,此時這種協作就必須遵循受資料治理原則的驅動。換句話說,資料治理是該過程的關鍵部分,主要用於啟用更好的合作和共同的工作,當然資料準備過程和最佳實務仍然必須符合企業組織的資料治理流程和規則,所有與資料相關的流程都必須符合企業組織的整體資料治理解決方案。

總結我們將能夠透過 SAS Data Preparation 解決方案在分析生命週期發現和部署階段中讓不同使用者協同合作,以利持續準備最新的訓練資料用於建立分析模型。

相關資源

📖 more posts 📖