1. 簡介
在本研究室中,您將使用 BigQuery,透過控制台訓練及提供表格資料模型。這項產品在提供與訓練的 SQL 模型中,最受歡迎。BigQuery ML 可讓使用者使用 SQL 查詢,在 BigQuery 中建立及執行機器學習模型。目標是讓 SQL 從業人員使用現有的工具建立模型,並消除資料移動的需求來加快開發速度,以實現機器學習大眾化。
學習目標
- 探索 BigQuery 中可用的資料
- 透過控制台使用 BigQuery 中的 SQL 建立模型
- 評估已建立的模型結果
- 預測交易是否涉及詐欺,而非透過建立的模型
2. 關於資料
這些資料集包含 2013 年 9 月,歐洲持卡人進行的交易。這個資料集顯示了兩天內發生的交易,在 284,807 筆交易中共有 492 筆詐欺交易。在極低的情況下,正類 (詐欺) 佔所有交易的 0.172%。
只包含 PCA 轉換結果的數值輸入變數。很抱歉,基於保密問題,我們無法提供原始功能和關於資料的更多背景資訊。
- Features V1、V2、... V28 是透過 PCA 取得的主要元件,只有尚未透過 PCA 轉換的功能是「時間」和「Amount」
- 特色「Time」包含每筆交易與資料集中的第一筆交易之間經過的秒數。
- 特色為「金額」 代表交易金額,這項功能可用於範例相依成本學習。
- Feature 'Class' 是回應變數,若是詐欺行為,則使用值 1,反之則為 0。
這個資料集是在 ULB ( Université Libre de Bruxelles) 的 Worldline 與機器學習集團 (http://mlg.ulb.ac.be) 的研究合作期間,收集並分析出大數據開採與詐欺偵測。
如要進一步瞭解相關主題目前和過去的專案,請前往 https://www.researchgate.net/project/Fraud-detection-5 和 DefeatFraud 專案的頁面
引文:
Andrea Dal Pozzolo、Olivier Caelen、Reid A.Johnson 和 Gianluca Bontempi。透過「對未平衡分類」進行取樣以校準機率。在 Computational Intelligence and Data Mining (CIDM) 研討會中,IEEE,2015 年
Dal Pozzolo、Andrea;Caelen、Olivier;Le Borgne、Yann-Ael;Waterschoot, Serge吉安盧卡邦托米文。從從業人員的角度學習信用卡詐欺偵測相關課程:運用應用程式的專家系統 (41,10,4915-4928,2014, Pergamon)
Dal Pozzolo、Andrea;Boracchi, GiacomoCaelen、Olivier;Alippi、Cesare;吉安盧卡邦托米文。信用卡詐欺偵測:擬真模擬和創新學習策略、透過類神經網路和學習系統進行的 IEEE 交易數量:29,8,3784-3797,2018,IEEE
Dal Pozzolo、Andrea Adaptive Machine Learning for 信用卡詐騙偵測 ULB MLG PhD thesis (由 G 監督,Bontempi)
Carcillo、Fabrizio;Dal Pozzolo、Andrea;Le Borgne、Yann-AëlCaelen、Olivier;馬茲、雅尼;吉安盧卡邦托米文。Scarff:運用 Spark 偵測信用卡詐欺偵測作業的可擴充架構,資訊融合,41, 182-194,2018,Elsevier
Carcillo、Fabrizio;Le Borgne、Yann-AëlCaelen、Olivier;吉安盧卡邦托米文。串流資料直播主動學習信用卡詐欺偵測:評估與視覺化、International Journal of Data Science and Analytics,5,4,285-300,2018,Springer International Publishing
Bertrand Lebichot、Yann-Aël Le Borgne、Lyun He、Frederic Oblé、Gianluca Bontempi Deep-Learning Domain Adaptation Techniques for Credit Card Fraud Detection、INNSBDDL 2019 年:大數據與深度學習中近期改進,第 78 頁
Fabrizio Carcillo、Yann-Aël Le Borgne、Olivier Caelen、Frederic Oblé、Gianluca Bontempi Combining Un 病 ed and Supervised Learning in Credit Card Fraud Detection 資訊科學,2019 年
3. 設定環境
您需要已啟用計費功能的 Google Cloud Platform 專案,才能執行這個程式碼研究室。如要建立專案,請按照這裡的操作說明進行。
- 啟用 BigQuery API
前往「BigQuery」BigQuery並選取「啟用」(如果尚未啟用)。您需要輸入這些資訊才能建立模型。
4. 探索資料
步驟 1:前往 BigQuery
前往 https://cloud.google.com/console 尋找 BigQuery
步驟 2:使用查詢探索資料
在編輯器中輸入下列 SQL 查詢,以查看公開資料集中的資料。
SELECT * FROM `bigquery-public-data.ml_datasets.ulb_fraud_detection` LIMIT 5
步驟 3:執行
按下上方的「執行」指令即可執行查詢
結果
應該位於「查詢結果」面板中,如下所示。資料可能會有差異
探索相關的資料欄和輸出內容。
您可以執行多項查詢,瞭解資料的分佈情形。以下提供幾個範例:
SELECT count(*) FROM `bigquery-public-data.ml_datasets.ulb_fraud_detection`
where Class=0;
SELECT count(*) FROM `bigquery-public-data.ml_datasets.ulb_fraud_detection`
where Class=1;
5. 建立輸出資料集
步驟 1:建立用來建立模型的資料集
- 在 Explorer 面板中 - 按一下左側,選取目前正在處理的專案。按一下旁邊的三點圖示
- 按一下右上方的「建立資料集」
- 輸入資料集名稱、保留記錄、位置等詳細資料。使用這些設定
6. 建立邏輯迴歸模型
步驟 1:建立陳述式
在「Query」(查詢) 視窗中,輸入下列查詢來建立模型。透過這個陳述式瞭解主要選項。詳情請見這個 連結。
INPUT_LABEL_COLS 表示預測標籤
AUTO_CLASS_WEIGHTS 用於不平衡資料集
MODEL_TYPE 會指出本例中使用的演算法是邏輯迴歸
DATA_SPLIT_METHOD 表示訓練和測試資料的分割
CREATE OR REPLACE MODEL advdata.ulb_fraud_detection
TRANSFORM(
* EXCEPT(Amount),
SAFE.LOG(Amount) AS log_amount
)
OPTIONS(
INPUT_LABEL_COLS=['class'],
AUTO_CLASS_WEIGHTS = TRUE,
DATA_SPLIT_METHOD='seq',
DATA_SPLIT_COL='Time',
MODEL_TYPE='logistic_reg'
) AS
SELECT
*
FROM `bigquery-public-data.ml_datasets.ulb_fraud_detection`
步驟 2:執行
執行上述陳述式。這項作業應該會在幾分鐘內完成
請注意執行完成後的重要工作
- 多層檢視面板會顯示模型
- 「查詢結果」面板會有處理機器學習 SQL 所需的時間,就像處理任何 SQL 陳述式一樣
- 「查詢結果」面板也提供「前往模型」連結,供您探索
步驟 3:探索
按一下「前往模型」或「探索工具」面板,探索建立的模型。這些標籤提供模型建立、訓練、評估等相關資訊。查看結果
我們將在後續章節中深入探討
如要進一步瞭解邏輯迴歸,請參閱這篇文章
7. 探索模型評估指標
在這個步驟中 您將瞭解模型的成效
模型訓練工作完成後,請按一下剛才訓練的模型,然後查看「評估」分頁。評估指標有許多種,我們只需著重於一個 :roc_auc
SELECT * FROM ML.EVALUATE(MODEL advdata.ulb_fraud_detection)
結果應如下所示。roc_auc 通常較不平衡資料集
進一步瞭解結果。在這裡尋找機器學習。評估說明文件
8. 預測特定時間的類別
按下「撰寫新查詢」,然後執行下列 SQL。此處的時間金額有詐欺性。我們正嘗試評估該預測是否有效
SELECT Amount, predicted_class_probs, Class
FROM ML.PREDICT( MODEL advdata.ulb_fraud_detection,
(SELECT * FROM `bigquery-public-data.ml_datasets.ulb_fraud_detection` WHERE Time = 85285.0)
)
輸出內容應如下所示 (數字可能不同)
在這種情況下,我們會顯示標籤的相關機率值。這裡的類別欄代表實際結果。
進一步瞭解 ML.PREDICT。請按這裡查看
9. 清除
如要清除透過這個研究室建立的資源,請從左側的 Explorer 面板開啟資料集
按一下右上角的「刪除資料集」
請再次輸入資料集名稱,確認詳細資料。在這個範例中,這個值會是 advdata
10. 恭喜
恭喜!您已成功建立第一個模型,如何使用監督式機器學習技術進行評估和預測!
現在,您已瞭解建立邏輯迴歸模型所需的重要步驟。
後續步驟
查看其他在預測過程中