BigQuery ML สำหรับการตรวจหาการประพฤติมิชอบในธุรกรรมบัตรเครดิตโดยใช้คอนโซล

1. บทนำ

ในห้องทดลองนี้ คุณจะใช้ BigQuery เพื่อฝึกและแสดงโมเดลด้วยข้อมูลแบบตารางโดยใช้คอนโซล ข้อเสนอนี้เป็นส่วนเสริมที่ชอบสำหรับการแสดงและการฝึกโมเดลแบบ SQL BigQuery ML ช่วยให้ผู้ใช้สร้างและเรียกใช้โมเดลแมชชีนเลิร์นนิงใน BigQuery ได้โดยใช้การค้นหา SQL เป้าหมายคือการทำให้แมชชีนเลิร์นนิงมีความเสมอภาค โดยให้ผู้ปฏิบัติงาน SQL สามารถสร้างโมเดลโดยใช้เครื่องมือที่มีอยู่และเพิ่มความเร็วในการพัฒนาโดยไม่จำเป็นต้องมีการเคลื่อนย้ายข้อมูล

สิ่งที่คุณจะได้เรียนรู้

  • สำรวจข้อมูลที่มีอยู่ใน BigQuery
  • สร้างโมเดลโดยใช้ SQL ใน BigQuery โดยใช้คอนโซล
  • ประเมินผลลัพธ์ของโมเดลที่สร้าง
  • คาดการณ์ธุรกรรมหากธุรกรรมดังกล่าวเป็นการฉ้อโกงหรือไม่ด้วยโมเดลที่สร้างขึ้น

2. เกี่ยวกับข้อมูล

ชุดข้อมูลนี้มีธุรกรรมที่ผู้ถือบัตรในยุโรปทำผ่านบัตรเครดิตในเดือนกันยายน 2013 ชุดข้อมูลนี้แสดงธุรกรรมที่เกิดขึ้นใน 2 วัน โดยมีการประพฤติมิชอบ 492 ครั้งจากธุรกรรม 284,807 รายการ ซึ่งไม่สมดุลกันมากนัก ชั้นบวก (การฉ้อโกง) คิดเป็น 0.172% ของธุรกรรมทั้งหมด

ข้อความนี้มีเฉพาะตัวแปรอินพุตที่เป็นตัวเลขซึ่งเป็นผลมาจากการเปลี่ยนรูปแบบ PCA ขออภัย เนื่องจากปัญหาการรักษาข้อมูลที่เป็นความลับ เราจึงไม่สามารถให้บริการฟีเจอร์เดิมและข้อมูลพื้นฐานเพิ่มเติมเกี่ยวกับข้อมูลดังกล่าวได้

  1. คุณลักษณะ V1, V2, ... V28 เป็นส่วนประกอบหลักที่ได้มาจาก PCA คุณลักษณะเดียวที่ยังไม่มีการเปลี่ยนแปลงด้วย PCA คือ "เวลา" และ "จำนวนเงิน"
  2. ฟีเจอร์ "เวลา" ประกอบด้วยวินาทีที่ใช้ระหว่างธุรกรรมแต่ละรายการและธุรกรรมแรกในชุดข้อมูล
  3. ฟีเจอร์ "จำนวนเงิน" คือจำนวนเงินของธุรกรรม ฟีเจอร์นี้ใช้สำหรับการเรียนรู้ที่เน้นต้นทุนซึ่งขึ้นอยู่กับตัวอย่าง
  4. ฟีเจอร์ "Class" เป็นตัวแปรการตอบกลับและจะใช้ค่า 1 ในกรณีที่มีการประพฤติมิชอบ และเป็น 0 ในกรณีอื่นๆ

ชุดข้อมูลนี้ได้รับการรวบรวมและวิเคราะห์ระหว่างการทำงานร่วมกันระหว่างการวิจัยของ Worldline และ Machine Learning Group ( http://mlg.ulb.ac.be) ของ ULB (Université Libre de Bruxelles) เกี่ยวกับการตรวจจับการขุดค้นข้อมูลขนาดใหญ่และการประพฤติมิชอบ

ดูรายละเอียดเพิ่มเติมเกี่ยวกับโปรเจ็กต์ในปัจจุบันและในอดีตเกี่ยวกับหัวข้อที่เกี่ยวข้องได้ที่ https://www.researchgate.net/project/Fraud-detection-5 และหน้าของโปรเจ็กต์ DefeatFraud

การอ้างอิง:

Andrea Dal Pozzolo, Olivier Caelen, Reid A. Johnson และ Gianluca Bontempi การปรับเทียบความน่าจะเป็นด้วยการสุ่มตัวอย่างต่ำสำหรับการแยกประเภทที่ไม่สมดุล ใน Symposium on Computational Intelligence and Data Mining (CIDM), IEEE ปี 2015

Dal Pozzolo, Andrea; Caelen, Olivier Le Borgne, Yann-Ael; กีฬาทางน้ำ, เซิร์จ; Bontempi, Gianluca บทเรียนที่เรียนรู้เกี่ยวกับการตรวจจับการฉ้อโกงบัตรเครดิตจากมุมมองของผู้ปฏิบัติงาน, ระบบผู้เชี่ยวชาญที่มีการสมัคร,41,10,4915-4928,2014, Pergamon

Dal Pozzolo, Andrea; โบรัคคี, ยาโกโม Caelen, Olivier อาลิปปี เซซาร์ Bontempi, Gianluca การตรวจจับการฉ้อโกงบัตรเครดิต: การสร้างแบบจำลองที่สมจริงและกลยุทธ์การเรียนรู้แบบใหม่ ธุรกรรม IEEE บนโครงข่ายระบบประสาทเทียมและระบบการเรียนรู้, 29,8,3784-3797,2018,IEEE

Dal Pozzolo, Andrea เทคโนโลยีแมชชีนเลิร์นนิงแบบปรับอัตโนมัติสำหรับการตรวจจับการประพฤติมิชอบเกี่ยวกับบัตรเครดิต วิทยานิพนธ์ ULB MLG PhD (ควบคุมดูแลโดย G. Bontempi)

Carcillo, Fabrizio; Dal Pozzolo, Andrea; Le Borgne, Yann-Aël; Caelen, Olivier มาซเซอร์, ยานนิส; Bontempi, Gianluca Scarff: เฟรมเวิร์กที่รองรับการปรับขนาดสำหรับการสตรีมการตรวจสอบการฉ้อโกงผ่านบัตรเครดิตด้วย Spark, Information fusion,41, 182-194,2018,Elsevier

Carcillo, Fabrizio; Le Borgne, Yann-Aël; Caelen, Olivier Bontempi, Gianluca กลยุทธ์การเรียนรู้แบบลงมือปฏิบัติแบบสตรีมมิงสำหรับการตรวจหาการฉ้อโกงบัตรเครดิตในชีวิตจริง: การประเมินและการแสดงภาพ, International Journal of Data Science and Analytics, 5,4,285-300,2018,Springer International Publishing

Bertrand Lebichot, Yann-Aël Le Borgne, Liyun He, Frederic Oblé, Gianluca Bontempi เทคนิค Deep-Learning Domain Adaptation สำหรับการตรวจหาการฉ้อโกงบัตรเครดิต, INNSBDDL 2019: ความก้าวหน้าล่าสุดใน Big Data และการเรียนรู้เชิงลึก, pp 78-88, 2019

Fabrizio Carcillo, Yann-Aël Le Borgne, Olivier Caelen, Frederic Oblé, Gianluca Bontempi รวมการเรียนรู้ที่ไม่ได้อยู่ภายใต้การควบคุมดูแลและการควบคุมดูแลในการตรวจจับการฉ้อโกงบัตรเครดิต วิทยาการสารสนเทศ, 2019

3. ตั้งค่าสภาพแวดล้อมของคุณ

คุณจะต้องมีโปรเจ็กต์ Google Cloud Platform ที่เปิดใช้การเรียกเก็บเงินเพื่อเรียกใช้ Codelab นี้ หากต้องการสร้างโปรเจ็กต์ ให้ทำตามวิธีการที่นี่

  1. เปิดใช้ BigQuery API

ไปที่ BigQuery แล้วเลือกเปิดใช้ หากยังไม่ได้เปิดใช้ คุณจะต้องใช้สิ่งนี้เพื่อสร้างโมเดล

4. เข้ามาดูข้อมูล

ขั้นตอนที่ 1: ไปที่ BigQuery

มองหา BigQuery ใน https://cloud.google.com/console

ขั้นตอนที่ 2: สำรวจข้อมูลโดยใช้การค้นหา

ในตัวแก้ไข ให้พิมพ์การค้นหา SQL ด้านล่างเพื่อตรวจสอบข้อมูลในชุดข้อมูลสาธารณะ

SELECT * FROM `bigquery-public-data.ml_datasets.ulb_fraud_detection` LIMIT 5

ขั้นตอนที่ 3: ดำเนินการ

กดคำสั่งเรียกใช้ด้านบนเพื่อเรียกใช้การค้นหา

c670e136ecd58236.png

ผลลัพธ์

ซึ่งควรอยู่ในแผงผลการค้นหาและมีลักษณะดังนี้ ข้อมูลอาจแตกต่างกันไป

be082fb135879158.png

สำรวจคอลัมน์ที่เกี่ยวข้องและผลลัพธ์

คุณเรียกใช้การค้นหาหลายรายการเพื่อทําความเข้าใจวิธีการกระจายข้อมูลได้ ตัวอย่างเช่น

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: สร้างชุดข้อมูลสำหรับการสร้างโมเดล

  1. ในแผง Explorer - ด้านซ้ายมือ ให้เลือกโครงการที่คุณกำลังทำอยู่ ให้คลิกจุด 3 จุดที่อยู่ด้านข้าง

7618699754e066bd.png

  1. คลิกสร้างชุดข้อมูลที่ด้านขวาบน

17851cc9db05dc1.png

  1. ป้อนรายละเอียดชื่อชุดข้อมูล การเก็บรักษา ตำแหน่ง ฯลฯ ใช้การตั้งค่าเหล่านี้

b8b6731408f61d57.png

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: ดำเนินการ

เรียกใช้คำสั่งด้านบน การดำเนินการนี้อาจใช้เวลา 2-3 นาทีจึงจะเสร็จสมบูรณ์

สังเกตสิ่งสำคัญหลังจากการเรียกใช้เสร็จสมบูรณ์

3385a54d3907443e.png

  1. ระบบจะสร้างโมเดลนี้ในแผงสำรวจ
  2. แผงผลการค้นหาจะมีระยะเวลาที่ใช้ในการประมวลผล ML SQL คล้ายกับคำสั่ง SQL
  3. แผงผลการค้นหาจะมีลิงก์ "ไปที่โมเดล" ให้คุณสำรวจด้วย

ขั้นตอนที่ 3: สำรวจ

สำรวจโมเดลที่สร้างขึ้นโดยคลิกที่ "ไปที่โมเดล" หรือจากแผงสำรวจ แท็บเหล่านี้ให้ข้อมูลเกี่ยวกับ โมเดลที่สร้าง การฝึก การประเมิน ฯลฯ ดูผลลัพธ์

b350f1b94835f2d1.png

เราจะพูดถึงเรื่องนี้เพิ่มเติมในส่วนถัดไป

ดูข้อมูลเพิ่มเติมเกี่ยวกับปัญหาการถดถอยแบบโลจิสติกส์ได้ที่นี่

7. การสำรวจเมตริกการประเมินโมเดล

ในขั้นตอนนี้ เราจะดูประสิทธิภาพของโมเดล

เมื่องานการฝึกโมเดลของคุณเสร็จสมบูรณ์แล้ว ให้คลิกโมเดลที่คุณเพิ่งฝึกและดูในแท็บ ประเมิน มีเมตริกการประเมินมากมายในที่นี้ เราจะเน้นเพียงเมตริกเดียว :roc_auc

 SELECT * FROM ML.EVALUATE(MODEL advdata.ulb_fraud_detection)

ผลลัพธ์จะมีลักษณะดังนี้ โดยทั่วไปแล้ว roc_auc มีความสำคัญมากกว่าสำหรับชุดข้อมูลที่ไม่สมดุล

c3c80286082dc336.png

เพื่อดูข้อมูลเพิ่มเติมเกี่ยวกับผลลัพธ์ ค้นหาเอกสาร ML.assess ได้ที่นี่

ความแม่นยำและการจดจำ

ROC Curve และ 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)
)

เอาต์พุตควรมีลักษณะดังนี้ (ตัวเลขอาจแตกต่างกันไป)

676fc8accdab2f6c.png

ในกรณีนี้ เราจะแสดงจำนวนพร้อมความน่าจะเป็นที่เกี่ยวข้องของป้ายกำกับ คอลัมน์ชั้นเรียนที่นี่จะระบุว่าผลลัพธ์จริงเป็นอย่างไร

ดูข้อมูลเพิ่มเติมเกี่ยวกับ ML.PREDICT ดูที่นี่

9. ล้างข้อมูล

หากต้องการล้างทรัพยากรที่สร้างด้วยห้องทดลองนี้ ให้เปิดชุดข้อมูลจากแผง Explorer ทางด้านซ้ายมือ

e7d18fadd2b781be.png

คลิกลบชุดข้อมูลที่มุมขวาบน

b47bc819869bed6c.png

ป้อนชื่อชุดข้อมูลอีกครั้งเพื่อยืนยันรายละเอียด ในกรณีของเรา ค่านี้จะเป็น advdata

10. ขอแสดงความยินดี

ยินดีด้วย คุณสร้างโมเดลแรก ประเมิน และคาดการณ์โดยใช้แมชชีนเลิร์นนิงที่มีการควบคุมดูแลเรียบร้อยแล้ว

ตอนนี้คุณก็ได้ทราบขั้นตอนสำคัญที่ต้องใช้ในการสร้างโมเดลการถดถอยแบบโลจิสติกส์แล้ว

สิ่งที่ต้องทำต่อไป

ดูวิธีอื่นๆ ที่เกี่ยวข้องกับการคาดการณ์

เอกสารอ้างอิง