1. บทนำ
ในห้องทดลองนี้ คุณจะใช้ BigQuery เพื่อฝึกและแสดงโมเดลด้วยข้อมูลแบบตารางโดยใช้คอนโซล ข้อเสนอนี้เป็นส่วนเสริมที่ชอบสำหรับการแสดงและการฝึกโมเดลแบบ SQL BigQuery ML ช่วยให้ผู้ใช้สร้างและเรียกใช้โมเดลแมชชีนเลิร์นนิงใน BigQuery ได้โดยใช้การค้นหา SQL เป้าหมายคือการทำให้แมชชีนเลิร์นนิงมีความเสมอภาค โดยให้ผู้ปฏิบัติงาน SQL สามารถสร้างโมเดลโดยใช้เครื่องมือที่มีอยู่และเพิ่มความเร็วในการพัฒนาโดยไม่จำเป็นต้องมีการเคลื่อนย้ายข้อมูล
สิ่งที่คุณจะได้เรียนรู้
- สำรวจข้อมูลที่มีอยู่ใน BigQuery
- สร้างโมเดลโดยใช้ SQL ใน BigQuery โดยใช้คอนโซล
- ประเมินผลลัพธ์ของโมเดลที่สร้าง
- คาดการณ์ธุรกรรมหากธุรกรรมดังกล่าวเป็นการฉ้อโกงหรือไม่ด้วยโมเดลที่สร้างขึ้น
2. เกี่ยวกับข้อมูล
ชุดข้อมูลนี้มีธุรกรรมที่ผู้ถือบัตรในยุโรปทำผ่านบัตรเครดิตในเดือนกันยายน 2013 ชุดข้อมูลนี้แสดงธุรกรรมที่เกิดขึ้นใน 2 วัน โดยมีการประพฤติมิชอบ 492 ครั้งจากธุรกรรม 284,807 รายการ ซึ่งไม่สมดุลกันมากนัก ชั้นบวก (การฉ้อโกง) คิดเป็น 0.172% ของธุรกรรมทั้งหมด
ข้อความนี้มีเฉพาะตัวแปรอินพุตที่เป็นตัวเลขซึ่งเป็นผลมาจากการเปลี่ยนรูปแบบ PCA ขออภัย เนื่องจากปัญหาการรักษาข้อมูลที่เป็นความลับ เราจึงไม่สามารถให้บริการฟีเจอร์เดิมและข้อมูลพื้นฐานเพิ่มเติมเกี่ยวกับข้อมูลดังกล่าวได้
- คุณลักษณะ V1, V2, ... V28 เป็นส่วนประกอบหลักที่ได้มาจาก PCA คุณลักษณะเดียวที่ยังไม่มีการเปลี่ยนแปลงด้วย PCA คือ "เวลา" และ "จำนวนเงิน"
- ฟีเจอร์ "เวลา" ประกอบด้วยวินาทีที่ใช้ระหว่างธุรกรรมแต่ละรายการและธุรกรรมแรกในชุดข้อมูล
- ฟีเจอร์ "จำนวนเงิน" คือจำนวนเงินของธุรกรรม ฟีเจอร์นี้ใช้สำหรับการเรียนรู้ที่เน้นต้นทุนซึ่งขึ้นอยู่กับตัวอย่าง
- ฟีเจอร์ "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 นี้ หากต้องการสร้างโปรเจ็กต์ ให้ทำตามวิธีการที่นี่
- เปิดใช้ 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: ดำเนินการ
กดคำสั่งเรียกใช้ด้านบนเพื่อเรียกใช้การค้นหา
ผลลัพธ์
ซึ่งควรอยู่ในแผงผลการค้นหาและมีลักษณะดังนี้ ข้อมูลอาจแตกต่างกันไป
สำรวจคอลัมน์ที่เกี่ยวข้องและผลลัพธ์
คุณเรียกใช้การค้นหาหลายรายการเพื่อทําความเข้าใจวิธีการกระจายข้อมูลได้ ตัวอย่างเช่น
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 - ด้านซ้ายมือ ให้เลือกโครงการที่คุณกำลังทำอยู่ ให้คลิกจุด 3 จุดที่อยู่ด้านข้าง
- คลิกสร้างชุดข้อมูลที่ด้านขวาบน
- ป้อนรายละเอียดชื่อชุดข้อมูล การเก็บรักษา ตำแหน่ง ฯลฯ ใช้การตั้งค่าเหล่านี้
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 นาทีจึงจะเสร็จสมบูรณ์
สังเกตสิ่งสำคัญหลังจากการเรียกใช้เสร็จสมบูรณ์
- ระบบจะสร้างโมเดลนี้ในแผงสำรวจ
- แผงผลการค้นหาจะมีระยะเวลาที่ใช้ในการประมวลผล ML SQL คล้ายกับคำสั่ง SQL
- แผงผลการค้นหาจะมีลิงก์ "ไปที่โมเดล" ให้คุณสำรวจด้วย
ขั้นตอนที่ 3: สำรวจ
สำรวจโมเดลที่สร้างขึ้นโดยคลิกที่ "ไปที่โมเดล" หรือจากแผงสำรวจ แท็บเหล่านี้ให้ข้อมูลเกี่ยวกับ โมเดลที่สร้าง การฝึก การประเมิน ฯลฯ ดูผลลัพธ์
เราจะพูดถึงเรื่องนี้เพิ่มเติมในส่วนถัดไป
ดูข้อมูลเพิ่มเติมเกี่ยวกับปัญหาการถดถอยแบบโลจิสติกส์ได้ที่นี่
7. การสำรวจเมตริกการประเมินโมเดล
ในขั้นตอนนี้ เราจะดูประสิทธิภาพของโมเดล
เมื่องานการฝึกโมเดลของคุณเสร็จสมบูรณ์แล้ว ให้คลิกโมเดลที่คุณเพิ่งฝึกและดูในแท็บ ประเมิน มีเมตริกการประเมินมากมายในที่นี้ เราจะเน้นเพียงเมตริกเดียว :roc_auc
SELECT * FROM ML.EVALUATE(MODEL advdata.ulb_fraud_detection)
ผลลัพธ์จะมีลักษณะดังนี้ โดยทั่วไปแล้ว roc_auc มีความสำคัญมากกว่าสำหรับชุดข้อมูลที่ไม่สมดุล
เพื่อดูข้อมูลเพิ่มเติมเกี่ยวกับผลลัพธ์ ค้นหาเอกสาร ML.assess ได้ที่นี่
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. ขอแสดงความยินดี
ยินดีด้วย คุณสร้างโมเดลแรก ประเมิน และคาดการณ์โดยใช้แมชชีนเลิร์นนิงที่มีการควบคุมดูแลเรียบร้อยแล้ว
ตอนนี้คุณก็ได้ทราบขั้นตอนสำคัญที่ต้องใช้ในการสร้างโมเดลการถดถอยแบบโลจิสติกส์แล้ว
สิ่งที่ต้องทำต่อไป
ดูวิธีอื่นๆ ที่เกี่ยวข้องกับการคาดการณ์
- เริ่มต้นใช้งาน BigQuery ML
- การคาดการณ์อนุกรมเวลาด้วย BigQuery ML
- โมเดลการตรวจจับการประพฤติมิชอบโดยใช้ AutoML
- การตรวจจับการประพฤติมิชอบโดยใช้ Tensorflow