資料分析 Machine Learning (5)

教學目標

初步了解如何透過 Amazon Machine Learning 線上服務建立第一個機器學習實驗,此篇主要為學習筆記。

重點概念

機器學習主為為自動從我們的資料中找出模式和使用它們對於新的資料進行可用預測的技術,因此我們的資料搭配機器學習理應能夠建立智慧的應用程式,此外在企業實務應用中有許多商業邏輯與規則,此外使用機器學習的技術將可以自動從資料中學習商業邏輯與規則。但是若我們已經有資料和應用程式,要如何以現有的資料整合機器學習的技術,將應用程式轉變為智慧的應用程式,此時就能夠使用 Amazon Machine Learning 雲端服務,簡單三個階段就能夠建立智慧的應用程式,分別為:

  1. 訓練模型。
  2. 評估和優化。
  3. 取得預測結果。

所謂 Amazon Machine Learning 雲端服務主要是讓開發人員輕鬆使用機器學習技術,主要透過視覺化工具和精靈,引導我們完成機器學習模型的建立流程,並且無須學習複雜的機器學習演算法和技術,Amazon Machine Learning 雲端服務採用的機器學習技術經過驗證並且能夠高度擴展,透過從現有資料的模式建立機器學習模型,然後再使用機器學習模型處理新的資料,以利為應用程式產生預測結果,目前常見的機器學習實用案例,只要藉由二元或多元分類機器學習演算法就能達到貫務應用,主要有六項,分別為:

  1. 詐騙偵測: 協助客戶識別出潛在的詐騙交易,或者偵測詐騙行為。
  2. 客戶流失率預測: 協助客戶找出可能流失的高風險客戶,透過促銷的方式積極與客戶接觸,或者擴展客戶的服務範圍。
  3. 文件分類: 協助客戶處理非結構化的文字,並且根據內容採取相關的行動。
  4. 內容個人化: 協助客戶根據過往使用者的行為推薦產品,或者優化網站流程,以利網提供更完善的個人化客戶體驗。
  5. 改善客戶支援: 協助客戶處理任何形式的意見回饋,然後安排合適的客戶支援專家聯繫溝通。
  6. 目標性的行銷活動: 協助客戶根據過往使用者的活動,為目標客戶選擇最具相關性的行銷活動。

接著在開始使用 Amazon Machine Learning 雲端服務之前,要先了解下述五個關鍵概念,分別為:

  1. 資料來源: 主要包括輸入資料相關的中繼資料。
  2. 機器學習模型: 主要從輸入資料。
  3. 評估: 主要是評測機器學習模型的品質。
  4. 批次非同步預測: 主要是預測多個輸入的觀察資料。
  5. 即時同步預測: 主要是預測單獨輸入的觀察資料。

事實上五個關鍵概念對應至建立智慧的應用程式的三個階段,分別為

  1. 訓練模型: 建立資料來源物件指向我們的資料,接著探索和了解我們的資料,以及轉換資料和訓練機器學習模型。
  2. 評估和優化: 了解模型品質,以及調整對於模型的解釋。
  3. 取得預測結果: 可以分為批次非同步預測和即時同步預測。

再來我們試著使用 Amazon Machine Learning 雲端服務建立第一個機器學習實驗,主要應用為識別目標性行銷活動的潛在客戶,資料內容來自於 University of California at Irvine (UCI) 機器學習儲存庫有關銀行與行銷的資料集,主要內容包括客戶基本資訊和之前與行動活動的互動情況。

首先請下載相關檔案的兩個檔案 banking.csvbanking-batch.csv ,並且上傳兩個檔案至 Amazon S3 雲端儲存空間中機器學習專屬的 Bucket 中。


檔案上傳完成之後,點選 banking.csv 檔案查看相關路徑。

開啟 Amazon Machine Learning 雲端服務主控台,按下「Get started」,再按下「Launch」鈕。


在「S3 location」輸入 banking.csv 檔案的路徑 ,並且按下「Verify」鈕驗證資料。

若 banking.csv 檔案未授權,請按下「Yes」鈕允許 banking.csv 檔案授權存取。

確認資料無誤之後,請按下「Continue」鈕。

針對「Does the first line in your CSV contain the column names?」請勾選「Yes」。

點選「Name」欄位進行排序,確認欄位類型無誤之後,按下「Continue」鈕。

勾選「y」欄位設定為目標。

按下「Review」鈕,再按下「Continue」鈕。


選擇「Default (Recommended)」預設為二元分類演算法,再按下「Review」鈕。

按下「Create ML model」鈕。

此時將會開始建立機器學習模型,狀態為「Pending」。

當建立機器學習模型完成時,則狀態為「Completed」。

點選摘要報告下方「Latest evaluation result」中的 AUC 評分結果。

點選「Adjust score threshold」鈕調整門檻值,以利修正機器學習模型,例如: 當預設門檻值為 0.5 時,則機器學習模型準確率為 0.9111,但是將門檻值為 0.58 時,則機器學習模型準確率提高為 0.9122,接著按下「Save score threshold at 0.58」鈕。


點選左上方的「Amazon Machine Learning」下拉選單中的「Batch Preditions」項目。

按下「Create new batch predictions」鈕。

點選剛建立完成的機器學習模型「ML model: Banking.csv」。

按下「Continue」鈕。

勾選「My data is in S3, and I need to create a datasource」選項,接著輸入「Datasource name」為「Banking Data Batch Predictions」,再來在「S3 location」輸入 banking-batch.csv 檔案的路徑,以及針對「Does the first line in your CSV contain the column names?」勾選「Yes」,最後按下「Verify」鈕,若 banking-batch.csv 檔案未授權,請按下「Yes」鈕允許 banking-batch.csv 檔案授權存取。

按下「Continue」鈕。

在「S3 location」輸入儲存機器學習模型預測結果的路徑,按下「Review」鈕,若儲存機器學習模型預測結果的路徑未授權,請按下「Yes」鈕允許儲存機器學習模型預測結果的路徑授權存取。

按下「Create batch prediction」鈕。

此時將會開始透過機器學習模型建立批次預測,狀態為「Pending」。

當建立批次預測完成時,則狀態為「Completed」。

此時切換至 Amazon S3 主控台中儲存機器學習模型預測結果的路徑下的資料夾「batch-prediction」->「result」,即可找到壓縮的結果檔案。

解壓縮之後開啟該 csv 結果檔案即可查看預測的結果。

此外我們也可以嘗試即時預測的功能。

點選「Paste a record」鈕,接著輸入下述資料記錄,再按下「Submit」鈕。

1
32,services,divorced,basic.9y,no,unknown,yes,cellular,dec,mon,110,1,11,0,nonexistent,-1.8,94.465,-36.1,0.883,5228.1

按下「Create prediction」鈕。

此時概據資料記錄即時預測的結果就會以 JSON 資料格式返回,其中預測分數為 0.042389288544654846。

最後按下「Create endpoint」鈕,再按下「Create」鈕。

當即時端點建立完成之後,就能透過 API 的方式進行即時預測的請求。

最後結論是我們只要透過 Amazon Machine Learning 線上服務搭配 Amazon S3 儲存空間線上服務,就能直接進行機器學習的實驗,並且產生評分與驗證模型的結果,主要預設為 AUC 評估分類演算法成效如何,若成效不理想時則我們直接針對分類演算法的機器學習模組進行門檻值等參數調整,以利改善模型,此外還能夠透過設定的方式直接處理批次和即時資料的預測結果,更進一步建立即時端點能夠讓應用程式透過 API 的方式存取預測的結果進行更智慧的應用解決企業所面臨的問題。

相關資源