1. Giới thiệu
Trong bài thực hành này, bạn sẽ sử dụng BigQuery để huấn luyện và phân phát một mô hình có dữ liệu dạng bảng bằng bảng điều khiển. Sản phẩm/dịch vụ này là một bổ sung được yêu thích cho việc phân phát và huấn luyện mô hình dựa trên SQL. BigQuery ML cho phép người dùng tạo và thực thi các mô hình học máy trong BigQuery bằng cách sử dụng các truy vấn SQL. Mục tiêu là dân chủ hoá hoạt động học máy bằng cách cho phép chuyên viên SQL xây dựng các mô hình bằng cách sử dụng các công cụ hiện có và tăng tốc độ phát triển bằng cách loại bỏ nhu cầu di chuyển dữ liệu.
Kiến thức bạn sẽ học được
- Khám phá dữ liệu có trong BigQuery
- Tạo mô hình bằng SQL trong BigQuery bằng bảng điều khiển
- Đánh giá kết quả của mô hình đã tạo
- Dự đoán xem một giao dịch có phải là giao dịch gian lận hay không bằng mô hình đã tạo
2. Giới thiệu về dữ liệu trong báo cáo
Các tập dữ liệu này chứa các giao dịch được thực hiện bằng thẻ tín dụng vào tháng 9 năm 2013 của những người dùng thẻ ở Châu Âu. Tập dữ liệu này trình bày các giao dịch diễn ra trong 2 ngày, trong đó có 492 giao dịch gian lận trong tổng số 284.807 giao dịch. Đây là một tập dữ liệu rất mất cân bằng, hạng mục dương (gian lận) chiếm 0,172% tổng số giao dịch.
Nó chỉ chứa các biến đầu vào bằng số là kết quả của một phép biến đổi PCA. Rất tiếc, do vấn đề bảo mật, chúng tôi không thể cung cấp các tính năng ban đầu và thêm thông tin cơ bản về dữ liệu.
- Features V1, V2, ... V28 là các thành phần chính thu được bằng PCA, các đối tượng duy nhất chưa được chuyển đổi bằng PCA là "Time" (Thời gian) và "Amount" (Số tiền).
- Tính năng "Thời gian" chứa số giây đã trôi qua giữa mỗi giao dịch và giao dịch đầu tiên trong tập dữ liệu.
- Tính năng "Số tiền" là Số tiền giao dịch. Bạn có thể sử dụng tính năng này cho hoạt động học tập phụ thuộc vào ví dụ và nhạy cảm về chi phí.
- Tính năng "Class" là biến phản hồi và có giá trị 1 trong trường hợp gian lận và 0 trong trường hợp khác.
Tập dữ liệu này được thu thập và phân tích trong quá trình cộng tác nghiên cứu giữa Worldline và Nhóm học máy ( http://mlg.ulb.ac.be) của ULB (Université Libre de Bruxelles) về khai thác dữ liệu lớn và phát hiện hành vi gian lận.
Bạn có thể xem thêm thông tin chi tiết về các dự án hiện tại và trước đây liên quan đến các chủ đề này trên https://www.researchgate.net/project/Fraud-detection-5 và trang của dự án DefeatFraud
Trích dẫn:
Andrea Dal Pozzolo, Olivier Caelen, Reid A. Johnson và Gianluca Bontempi. Hiệu chỉnh xác suất bằng cách lấy mẫu dưới mức cho việc phân loại không cân bằng. In Symposium on Computational Intelligence and Data Mining (CIDM), IEEE, 2015
Dal Pozzolo, Andrea; Caelen, Olivier; Le Borgne, Yann-Ael; Waterschoot, Serge; Bontempi, Gianluca. Learned lessons in credit card fraud detection from a practitioner perspective (Những bài học rút ra từ việc phát hiện hành vi gian lận bằng thẻ tín dụng theo quan điểm của người hành nghề), Expert systems with applications (Hệ thống chuyên gia với các ứng dụng), 41,10,4915-4928,2014, Pergamon
Dal Pozzolo, Andrea; Boracchi, Giacomo; Caelen, Olivier; Alippi, Cesare; Bontempi, Gianluca. Credit card fraud detection: a realistic modeling and a novel learning strategy, IEEE transactions on neural networks and learning systems,29,8,3784-3797,2018,IEEE
Dal Pozzolo, Andrea Adaptive Machine learning for credit card fraud detection (Học máy thích ứng để phát hiện hành vi gian lận bằng thẻ tín dụng) Luận án tiến sĩ MLG của ULB (do G. Bontempi)
Carcillo, Fabrizio; Dal Pozzolo, Andrea; Le Borgne, Yann-Aël; Caelen, Olivier; Mazzer, Yannis; Bontempi, Gianluca. Scarff: a scalable framework for streaming credit card fraud detection with Spark (Scarff: một khung có khả năng mở rộng để phát hiện gian lận thẻ tín dụng trực tuyến bằng Spark), Information fusion,41, 182-194,2018,Elsevier
Carcillo, Fabrizio; Le Borgne, Yann-Aël; Caelen, Olivier; Bontempi, Gianluca. Chiến lược học tập chủ động phát trực tuyến để phát hiện hành vi gian lận thẻ tín dụng trong thực tế: đánh giá và trực quan hoá, Tạp chí Quốc tế về Khoa học dữ liệu và Phân tích, 5,4,285-300,2018,Nhà xuất bản Quốc tế Springer
Bertrand Lebichot, Yann-Aël Le Borgne, Liyun He, Frederic Oblé, Gianluca Bontempi Deep-Learning Domain Adaptation Techniques for Credit Cards Fraud Detection (Các kỹ thuật thích ứng miền học sâu để phát hiện hành vi gian lận bằng thẻ tín dụng), INNSBDDL 2019: Recent Advances in Big Data and Deep Learning (Những tiến bộ gần đây về dữ liệu lớn và học sâu), trang 78-88, 2019
Fabrizio Carcillo, Yann-Aël Le Borgne, Olivier Caelen, Frederic Oblé, Gianluca Bontempi Kết hợp học không giám sát và học có giám sát trong phát hiện gian lận thẻ tín dụng Information Sciences, 2019
3. Thiết lập môi trường
Bạn cần có một dự án trên Google Cloud Platform đã bật tính năng thanh toán để chạy lớp học lập trình này. Để tạo một dự án, hãy làm theo hướng dẫn tại đây.
- Bật bigquery API
Chuyển đến BigQuery rồi chọn Bật nếu API này chưa được bật. Bạn sẽ cần thông tin này để tạo mô hình.
4. Khám phá dữ liệu
Bước 1: Chuyển đến BigQuery
Tìm BigQuery trong https://cloud.google.com/console
Bước 2: Khám phá dữ liệu bằng cách sử dụng truy vấn
Trong trình chỉnh sửa , hãy nhập truy vấn SQL bên dưới để xem xét dữ liệu trong tập dữ liệu công khai .
SELECT * FROM `bigquery-public-data.ml_datasets.ulb_fraud_detection` LIMIT 5
Bước 3: Thực thi
Nhấn vào lệnh Chạy ở trên để thực thi truy vấn

Kết quả
Nằm trong bảng Kết quả truy vấn và có dạng như sau. Dữ liệu có thể thay đổi

Khám phá các cột liên quan và đầu ra.
Bạn có thể chạy nhiều truy vấn để hiểu cách phân phối dữ liệu. Một số ví dụ có thể bao gồm
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. Tạo một tập dữ liệu đầu ra
Bước 1: Tạo tập dữ liệu để tạo mô hình
- Trong bảng điều khiển Explorer (Trình khám phá) – Ở bên trái, hãy chọn dự án mà bạn hiện đang làm việc, nhấp vào dấu ba chấm bên cạnh dự án đó

- Nhấp vào Tạo tập dữ liệu ở trên cùng bên phải

- Nhập thông tin chi tiết về tên tập dữ liệu, thời gian lưu giữ, vị trí, v.v. Sử dụng các chế độ cài đặt này

6. Tạo mô hình hồi quy logistic
Bước 1: Tạo câu lệnh
Trong cửa sổ Truy vấn, hãy nhập truy vấn bên dưới để tạo mô hình. Nắm được các lựa chọn chính với nội dung này. Được giải thích trong đường liên kết này.
INPUT_LABEL_COLS cho biết nhãn dự đoán
AUTO_CLASS_WEIGHTS được dùng cho các tập dữ liệu bất cân đối
MODEL_TYPE sẽ cho biết thuật toán được dùng, trong trường hợp này là Hồi quy logistic
DATA_SPLIT_METHOD cho biết cách phân chia giữa dữ liệu huấn luyện và dữ liệu kiểm thử
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`
Bước 2: Thực thi
Chạy câu lệnh trên. Quá trình này sẽ mất vài phút để hoàn tất
Lưu ý những điều quan trọng sau khi quá trình chạy hoàn tất

- Bảng điều khiển trình khám phá sẽ có mô hình được tạo
- Bảng điều khiển Kết quả truy vấn sẽ có thời lượng cần thiết để xử lý ML SQL tương tự như mọi câu lệnh SQL
- Bảng điều khiển Kết quả truy vấn cũng sẽ có đường liên kết Chuyển đến mô hình để bạn khám phá
Bước 3: Khám phá
Khám phá Mô hình đã tạo bằng cách nhấp vào Chuyển đến mô hình hoặc từ bảng điều khiển Trình khám phá. Các thẻ này cung cấp thông tin về mô hình đã tạo , quá trình huấn luyện, đánh giá, v.v. Xem lại kết quả

Chúng ta sẽ tìm hiểu thêm về vấn đề này trong các phần tiếp theo
Để biết thêm về Hồi quy logistic, hãy xem tại đây
7. Khám phá các chỉ số đánh giá mô hình
Trong bước này, chúng ta sẽ xem mô hình của mình hoạt động như thế nào.
Sau khi quá trình huấn luyện mô hình hoàn tất, hãy nhấp vào mô hình mà bạn vừa huấn luyện rồi xem thẻ Đánh giá. Có nhiều chỉ số đánh giá ở đây – chúng ta sẽ chỉ tập trung vào một chỉ số :roc_auc
SELECT * FROM ML.EVALUATE(MODEL advdata.ulb_fraud_detection)
Kết quả sẽ có dạng như sau. roc_auc thường quan trọng hơn trên một tập dữ liệu không cân bằng

Để biết thêm về kết quả. Tìm tài liệu ML.Evaluate tại đây
8. Dự đoán lớp học cho một thời điểm cụ thể
Nhấn vào Soạn truy vấn mới rồi thực thi SQL bên dưới. Thời gian được xác định ở đây có số lượng gian lận. Chúng tôi đang cố gắng đánh giá xem tính năng dự đoán có hoạt động hay không
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)
)
Kết quả đầu ra sẽ có dạng như sau (các con số có thể khác)

Trong trường hợp này, chúng tôi đang hiển thị số tiền cùng với xác suất liên quan của nhãn. Cột lớp ở đây cho biết kết quả thực tế.
Để biết thêm về ML.PREDICT. Xem tại đây
9. Dọn dẹp
Nếu bạn muốn dọn dẹp các tài nguyên đã tạo bằng phòng thí nghiệm này, hãy mở tập dữ liệu trong bảng điều khiển Explorer ở bên trái

Nhấp vào Xoá tập dữ liệu ở góc trên cùng bên phải

Nhập lại tên tập dữ liệu để xác nhận thông tin. Trong trường hợp này, giá trị này sẽ là advdata
10. Xin chúc mừng
Xin chúc mừng! Bạn đã tạo thành công mô hình đầu tiên, đánh giá và dự đoán bằng công nghệ học máy có giám sát!
Giờ đây, bạn đã biết các bước quan trọng cần thiết để tạo mô hình hồi quy logistic.
Tiếp theo là gì?
Hãy xem một số cách khác liên quan đến việc dự đoán
- Bắt đầu sử dụng BigQuery ML
- Dự báo chuỗi thời gian bằng BigQuery ML
- Mô hình phát hiện hành vi gian lận bằng AutoML
- Phát hiện hành vi gian lận bằng Tensorflow