Vertex AI:使用 AutoML 預測貸款風險
總覽
在這個實驗室中,您會使用 Vertex AI,透過表格資料集訓練及提供機器學習模型,以預測貸款風險。
目標
您會瞭解如何執行下列作業:
- 將資料集上傳至 Vertex AI。
- 使用 AutoML 訓練機器學習模型。
- 評估模型成效。
- 將模型部署到端點。
- 取得預測結果。
設定
點選「Start Lab」按鈕前的須知事項
您會在實際雲端環境中完成 Qwiklabs 實作研究室活動,而非模擬或示範環境。為此,我們會提供新的暫時憑證,讓您在研究室活動期間登入及存取 Google Cloud。
需求條件
如要完成這個研究室活動,請先確認:
- 可以使用標準的網際網路瀏覽器 (Chrome 瀏覽器為佳)。
- 已充分預留完成研究室的時間。
如何開始研究室及登入控制台
-
按一下「Start Lab」按鈕。如果研究室會產生費用,畫面中會出現選擇付款方式的彈出式視窗。左側面板會顯示必須在這個研究室中使用的暫時憑證。
-
複製使用者名稱,然後點選「Open Google Console」。接著,研究室會啟動相關資源並開啟另一個分頁,當中顯示「Choose an account」頁面。
注意事項:請在不同視窗並排開啟分頁。 -
點選「Choose an account」頁面中的「使用其他帳戶」,「Sign in」頁面隨即開啟。
-
貼上您在「連線詳細資訊」面板中複製的使用者名稱,然後複製並貼上密碼。
- 按過後續的所有頁面:
- 接受條款及細則。
- 由於這是臨時帳戶,請勿新增救援選項或雙重驗證機制。
- 請勿申請免費試用。
Cloud 控制台稍後會在這個分頁中開啟。
Vertex AI 簡介
這個實驗室使用 Google Cloud 中的統合式 AI 平台 Vertex AI,訓練及部署機器學習模型。Vertex AI 在單一平台上提供兩種建構機器學習模型的選項:一種是使用 AutoML 的無程式碼解決方案;另一種是使用 Vertex Workbench 自訂訓練,以程式碼為基礎的解決方案。這個實驗室使用的是 AutoML。
在這個實驗室中,您會建構一個機器學習模型,以評估特定客戶是否會償還貸款。
工作 1:準備訓練資料
一開始,Vertex AI 資訊主頁會說明訓練及部署機器學習模型的幾個主要階段:準備訓練資料、訓練模型,以及取得預測結果。稍後,資訊主頁會顯示您近期的活動,例如近期的資料集、模型、預測結果、端點,以及筆記本執行個體。
建立資料集
- 在 Google Cloud 控制台的「導覽選單」中,依序點選「Vertex AI」>「資料集」。
- 點選「建立資料集」。
- 將資料集命名為 LoanRisk。
- 在資料類型和目標部分,點選「表格」,選取「迴歸/分類」。
- 點選「建立」。
上傳資料
有三種方式可將資料匯入 Vertex AI:
- 透過電腦上傳 CSV 檔案。
- 選取 Cloud Storage 中的 CSV 檔案。
- 選取 BigQuery 中的資料表或 view。
為方便作業,資料集已預先上傳至 Cloud Storage。
-
在資料來源部分,選擇「選取 Cloud Storage 中的 CSV 檔案」。
-
在「匯入檔案路徑」部分,輸入:
- 點選「繼續」。
(非必要) 產生統計資料
-
如要查看資料集中各資料欄的描述性統計資料,請點選「產生統計資料」。
如果是第一次操作,產生統計資料可能需要花幾分鐘的時間。 -
統計資料準備就緒後,點選各資料欄名稱,即可顯示分析圖表。
工作 2:訓練模型
上傳資料集後,就可以開始訓練模型,預測客戶是否會償還貸款。
- 點選「訓練新模型」,選擇「其他」。
訓練方法
-
資料夾已命名為 LoanRisk。
-
在「目標」部分,選取「分類」。
這裡之所以選取「分類」,而不是「迴歸」,是因為要預測的是不同的數字 (客戶是否會償還貸款:0 表示會償還,1 表示預設/不會償還),而不是連續的數字。
- 點選「繼續」。
模型詳細資料
指定模型名稱和目標資料欄。
-
為模型命名,例如 LoanRisk。
-
在「目標資料欄」部分,選取「預設」。
-
(非必要) 探索「進階選項」,確定如何指派訓練和測試資料,並指定加密方式。
-
點選「繼續」。
-
在「新增特徵」部分,點選「繼續」。
訓練選項
指定要將哪些資料欄納入訓練模型中。例如,ClientID 可能與預測貸款風險不相關。
-
點選「ClientID」資料列中的「減號」,從訓練模型中排除。
-
(非必要) 探索「進階選項」,選取不同的最佳化目標。
如要進一步瞭解 AutoML 表格型模型的最佳化目標,請參閱 AutoML 表格型模型的最佳化目標指南。 -
點選「繼續」。
運算與定價
-
在「預算」部分,也就是訓練的節點時數,輸入 1。
1 個運算時數的 AutoML 模型訓練通常是不錯的起點,有助於瞭解所選的特徵和標籤是否有關聯性。您可以據此修改特徵,並增加訓練時間來改善模型成效。 -
「提早中止訓練」應維持「啟用」。
-
點選「開始訓練」。
視資料大小和訓練方法而定,訓練所需時間可能從幾分鐘到幾小時不等。通常在訓練工作完成時,您會收到 Google Cloud 傳送的電子郵件通知。不過,如果是在 Qwiklabs 環境中,您將不會收到電子郵件通知。
如要省去等待模型訓練的時間,您可以在工作 5 中下載預先訓練模型,以便在工作 6 中取得預測結果。這個預先訓練模型是依照工作 1 到工作 2 的相同步驟,訓練出來的結果。
工作 3:評估模型成效 (僅供示範)
Vertex AI 提供多項模型成效評估指標,您會著重於其中三項指標:
- 精確度與召回率曲線
- 混淆矩陣
- 特徵重要性
精確度與召回率曲線
可信度門檻會決定機器學習模型如何計算陽性案例數。較高的門檻會提高精確度,但降低召回率。較低的門檻會降低精確度,但提高召回率。
您可以手動調整門檻,觀察對精確度與召回率有何影響,並根據業務需求,找出兩者之間的最佳取捨點。
混淆矩陣
混淆矩陣會告訴您在測試集的「各個類別」中,模型正確預測結果的樣本百分比。
混淆矩陣顯示初始模型能正確預測測試集中 100% 的償還樣本,87% 的預設樣本,成效還不錯。
您可以加入更多樣本 (更多資料)、提供新特徵,以及變更訓練方法等,提高正確預測的百分比。
特徵重要性
在 Vertex AI 中,特徵重要性會透過長條圖顯示,具體呈現各項特徵對預測結果的貢獻度。與特徵相關聯的長條愈長或數值愈大,表示重要性愈高。
您可以使用這些特徵重要性的值,改善模型及提高預測結果的可信度。您可以選擇在下次訓練模型時,移除重要性最低的特徵,或將兩個重要性較高的特徵合併為一個交錯組合特徵,看看是否能提升模型成效。
特徵重要性只是 Vertex AI 全方位機器學習功能 Explainable AI 的應用範例之一。Explainable AI 是一組工具和架構,可協助您理解及詮釋由機器學習模型產生的預測結果。
工作 4:部署模型 (僅供示範)
現在您已將模型訓練完成,下一步就是在 Vertex 中建立端點。Vertex 中的模型資源可能有多個相關聯的端點,您可以將流量拆分至各個端點。
建立及定義端點
-
在模型頁面中點選「部署及測試」,按一下「部署至端點」。
-
在「端點名稱」部分,輸入 LoanRisk。
-
點選「繼續」。
模型設定及監控
-
流量拆分設定維持不變。
-
「機器類型」請選取「e2-standard-8, 8 vCPUs, 32 GiB memory」。
-
「可解釋性選項」請點選「特徵歸因」。
-
點選「完成」。
-
點選「繼續」。
-
在「模型監控」中,點選「繼續」。
-
在「模型目標 > 訓練資料來源」中,選取「Vertex AI 資料集」。
-
從下拉式選單中選擇資料集。
-
在「目標資料欄」中,輸入 Default。
-
其他設定維持不變,點選「部署」。
端點會在幾分鐘內部署完畢。完成部署後,名稱旁會顯示綠色勾號圖示。
現在,您可以從部署的模型取得預測結果了。
工作 5:SML 不記名權杖
擷取不記名權杖
如要允許管道進行驗證,以及授權管道呼叫端點來取得預測,您必須提供不記名權杖。
如要取得權杖,請按照下列指示操作。如果在取得不記名權杖時發生問題,可能是無痕式視窗中的 Cookie 所致。在這種情況下,請嘗試在非無痕式視窗中執行下列步驟。
-
請以您的學生電子郵件地址和密碼登入。
-
按一下「複製」按鈕之後,系統會將極長的權杖複製到剪貼簿。
這組權杖的效期只有約 60 秒,因此複製完成後請盡快進行後續步驟。
工作 6:取得預測結果
在這一節中,您會使用共用的機器學習模型 (SML) 服務,搭配訓練好的現有模型。
環境變數 | 值 |
---|---|
AUTH_TOKEN | 使用上一節中的值 |
ENDPOINT | https://sml-api-vertex-kjyo252taq-uc.a.run.app/vertex/predict/tabular_classification |
INPUT_DATA_FILE | INPUT-JSON |
如要使用訓練好的模型,請建立一些環境變數。
-
開啟 Cloud Shell 視窗。
-
將
INSERT_SML_BEARER_TOKEN
替換為上一節中的不記名權杖值:
- 下載實驗室資產:
- 擷取實驗室資產:
- 建立 ENDPOINT 環境變數:
- 建立
INPUT_DATA_FILE
環境變數:
INPUT-JSON
檔案含有下列值:
age | ClientID | income | loan |
---|---|---|---|
40.77 | 997 | 44964.01 | 3944.22 |
-
傳送環境變數中指定的參數,測試 SML 服務。
-
執行下列指令,對 SML 服務發出要求:
這項查詢應會產生類似下列的回應:
- 修改
INPUT-JSON
檔案,以測試新情境:
age | ClientID | income | loan |
---|---|---|---|
30.00 | 998 | 50000.00 | 20000.00 |
-
編輯
INPUT-JSON
檔案,替換原始值。您可以使用偏好的編輯器 (如vim
、nano
、emacs
) 或 Cloud Shell 程式碼編輯器。 -
傳送環境變數中指定的參數,測試 SML 服務。
-
執行下列指令,對 SML 服務發出要求:
在這個案例中,假設這個人的收入是 50,000,年齡為 30,貸款金額為 20,000,模型預測結果是,這個人會償還貸款。
這項查詢應會產生類似下列的回應:
如果您使用的是 Google Cloud 控制台,下圖展示了如何執行相同的動作:
恭喜!
您現在可以使用 Vertex AI 執行下列作業:
- 上傳資料集。
- 使用 AutoML 訓練模型。
- 評估模型成效。
- 將訓練好的 AutoML 模型部署至端點。
- 取得預測結果。
如要進一步瞭解 Vertex AI 的其他部分,請參閱 Vertex AI 說明文件。
關閉研究室
如果您已完成研究室,請按一下「End Lab」(關閉研究室)。Google Cloud Skills Boost 會移除您使用的資源,並清除所用帳戶。
您可以針對研究室的使用體驗評分。請選取合適的星級評等並提供意見,然後按一下「Submit」(提交)。
星級評等代表您的滿意程度:
- 1 星 = 非常不滿意
- 2 星 = 不滿意
- 3 星 = 普通
- 4 星 = 滿意
- 5 星 = 非常滿意
如果不想提供意見回饋,您可以直接關閉對話方塊。
如有任何想法、建議或指教,請透過「Support」(支援) 分頁提交。
Copyright 2022 Google LLC 保留所有權利。Google 和 Google 標誌是 Google LLC 的商標,其他公司和產品名稱則有可能是其關聯公司的商標。