Công nghệ học máy của BigQuery để phát hiện gian lận trong các giao dịch thẻ tín dụng bằng bảng điều khiển

1. Giới thiệu

Trong phòng thí nghiệm này, bạn sẽ sử dụng BigQuery để huấn luyện và phân phá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à tính năng bổ sung yêu thích cho việc phân phát và huấn luyện mô hình dựa trên SQL. Công nghệ học máy của BigQuery giú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 truy vấn SQL. Mục tiêu là để dân chủ hoá công nghệ học máy bằng cách cho phép các chuyên viên SQL xây dựng mô hình bằng các công cụ hiện có, đồng thời 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ó sẵn 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 một giao dịch nếu giao dịch đó gian lận hoặc không phải với mô hình được 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 của các chủ thẻ Châu Âu vào tháng 9 năm 2013. Tập dữ liệu này thể hiện các giao dịch xảy ra trong hai ngày, trong đó chúng tôi có 492 giao dịch gian lận trong số 284.807 giao dịch. Đó là tình trạng mất cân bằng cao, lớp dương (người lừa đảo) chiếm 0,172% tổng số giao dịch.

Lớp này chỉ chứa các biến đầu vào dạng số là kết quả của 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ông tin cơ bản khác về dữ liệu này.

  1. Các tính năng V1, V2, ... V28 là các thành phần chính thu được từ PCA, các tính năng duy nhất chưa được chuyển đổi bằng PCA là "Time" và "Amount".
  2. 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.
  3. Đối tượng "Số tiền" là Số tiền giao dịch, bạn có thể sử dụng tính năng này để tìm hiểu theo chi phí phụ thuộc vào ví dụ.
  4. Tính năng "Lớp" là biến phản hồi và sẽ nhận giá trị 1 trong trường hợp gian lận và 0 trong trường hợp không có hành vi gian lận.

Tập dữ liệu này đã được thu thập và phân tích trong quá trình hợp 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ề việc khai thác dữ liệu lớn và phát hiện 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ủ đề có liên quan trên https://www.researchgate.net/project/Fraud-detection-5 và trang về dự án DefeatFraud

Câu 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 phương pháp lấy mẫu thiếu khi phân loại không cân bằng. Trong Hội nghị chuyên đề về tính toán thông minh và khai thác dữ liệu (CIDM), IEEE, 2015

Dal Pozzolo, Andrea; Caelen, Olivier; Le Borgne, Yann-Ael; Waterschoot, Serge; Bontempi, Gianluca. Bài học rút ra về lĩnh vực phát hiện gian lận thẻ tín dụng từ góc độ chuyên viên, Hệ thống chuyên gia có ứng dụng,41,10,4915-4928,2014, Pergamon

Dal Pozzolo, Andrea; Boracchi, Giacomo; Caelen, Olivier; Alippi, Cesare; Bontempi, Gianluca. Phát hiện gian lận thẻ tín dụng: một mô hình thực tế và một chiến lược học tập mới, Các giao dịch của IEEE trên mạng nơron và hệ thống học tập,29,8,3784-3797,2018,IEEE

Dal Pozzolo, Andrea Học máy thích ứng để phát hiện gian lận thẻ tín dụng Luận án tiến sĩ ULB MLG (giám sát bởi G. Bontempi)

Carcillo, Fabrizio; Dal Pozzolo, Andrea; Le Borgne, Yann-Aël; Caelen, Olivier; Mazzer, Yannis; Bontempi, Gianluca. Scarff: một khung có thể mở rộng để phát trực tuyến phát hiện gian lận thẻ tín dụng bằng Spark, Information fusion,41, 182-194,2018,Elsevier

Carcillo, Fabrizio; Le Borgne, Yann-Aël; Caelen, Olivier; Bontempi, Gianluca. Các chiến lược học tập chủ động truyền trực tuyến để phát hiện gian lận thẻ tín dụng trong đời thực: đánh giá và trực quan hóa, Tạp chí Quốc tế Khoa học Dữ liệu và Phân tích, 5,4,285-300,2018,Springer International Publishing

Bertrand Lebichot, Yann-Aël Le Borgne, Liyun He, Frederic Oblé, Gianluca Bontempi Kỹ thuật thích ứng với miền học sâu để phát hiện gian lận thẻ tín dụng, INNSBDDL 2019: Những tiến bộ gần đây trong 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 phương pháp học tập không giám sát và có giám sát trong phát hiện hành vi gian lận trên thẻ tín dụng

3. Thiết lập môi trường

Bạn cần một dự á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.

  1. Bật API BigQuery

Chuyển đến BigQuery rồi chọn Bật nếu bạn chưa bật. Bạn sẽ cần những 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 trên 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 lại 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 Run ở trên để thực thi truy vấn

c670e136ecd58236.png

Kết quả

Sẽ nằm trong bảng Kết quả truy vấn và trông giống như sau. Dữ liệu có thể khác nhau

be082fb135879158.png

Khám phá các cột liên quan và kết quả.

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 tập dữ liệu đầu ra

Bước 1: Tạo tập dữ liệu để tạo mô hình

  1. Trong bảng điều khiển Explorer - Phía bên trái, chọn dự án bạn hiện đang làm việc, nhấp vào ba dấu chấm bên cạnh dự án đó

7618699754e066bd.pngS

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

17851cc9db05dc1.pngs

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

b8b6731408f61d57.png

6. Tạo mô hình hồi quy hậu cần

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. Hiểu các lựa chọn chính với câu lệnh 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 không cân bằng

MODEL_TYPE sẽ cho biết thuật toán được sử dụng trong trường hợp này là thuật toán Hồi quy logit

DATA_SPLIT_METHOD cho biết sự 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 chạy xong

3385a54d3907443e.png.

  1. Mô hình sẽ được tạo trong bảng điều khiển Explorer
  2. Bảng điều khiển Query Results 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
  3. Bảng điều khiển Kết quả truy vấn cũng sẽ có 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 được 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 được tạo , huấn luyện, đánh giá, v.v. Xem lại kết quả

b350f1b94835f2d1.png

Chúng ta sẽ tìm hiểu kỹ hơn về chủ đề 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

Ở bước này, chúng ta sẽ xem hiệu suất của mô hình.

Sau khi công việc huấn luyện mô hình của bạn hoàn tất, hãy nhấp vào mô hình bạn vừa huấn luyện rồi xem thẻ Đánh giá. Có nhiều chỉ số đánh giá – 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

c3c80286082dc336.png

Để tìm hiểu thêm về kết quả. Tìm tài liệu về công nghệ học máy.Đánh giá tại đây

Độ chính xác và thu hồi

Đường cong ROC và AUC

8. Dự đoán lớp trong một khoảng thời gian nhất định

Nhấn vào Compose truy vấn mới và thực thi SQL bên dưới. Thời gian ở đây được xác định có số tiền gian lận. Chúng tôi cố gắng đánh giá xem cụm từ gợi ý có hoạt động 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ả sẽ có dạng như sau (số có thể khác nhau)

676fc8accdab2f6c.png.

Trong trường hợp này, chúng tôi sẽ hiển thị số tiền với xác suất liên quan của nhãn. Cột loại ở đây cho biết kết quả thực tế.

Để tìm hiểu thêm về ML.PREDICT. Hãy 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 với phòng thí nghiệm này, hãy mở tập dữ liệu từ bảng điều khiển Explorer ở phía bên trái

e7d18fadd2b781be.png

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

b47bc819869bed6c.png

Nhập lại tên tập dữ liệu để xác nhận thông tin chi tiết. Trong trường hợp này, đâ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!

Bây giờ, bạn đã biết các bước chính cần thiết để tạo mô hình hồi quy logit.

Tiếp theo là gì?

Hãy xem một số cách khác có liên quan đến việc dự đoán

Tài liệu tham khảo