ตรวจสอบสัดส่วนการฉ้อโกงต่อธุรกรรมปกติ
ในบทนี้ เราจะทำงานกับ creditcard_sampledata.csv ซึ่งเป็นชุดข้อมูลธุรกรรมบัตรเครดิต โดยในความเป็นจริง การฉ้อโกงเป็นกรณีส่วนน้อยอย่างมากเมื่อเทียบกับธุรกรรมทั้งหมด
อย่างไรก็ตาม อัลกอริทึม Machine Learning มักทำงานได้ดีที่สุดเมื่อแต่ละคลาสในชุดข้อมูลมีจำนวนใกล้เคียงกัน หากมีกรณีการฉ้อโกงน้อยมาก โมเดลก็จะมีข้อมูลไม่เพียงพอสำหรับการเรียนรู้ ปัญหานี้เรียกว่า class imbalance (ความไม่สมดุลของคลาส) และเป็นหนึ่งในความท้าทายหลักของการตรวจจับการฉ้อโกง
มาสำรวจชุดข้อมูลนี้และสังเกตปัญหา class imbalance กัน
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การตรวจจับการฉ้อโกงด้วย Python
คำแนะนำการฝึกหัด
- นำเข้า
pandasในชื่อpdและอ่านข้อมูลบัตรเครดิต จากนั้นกำหนดให้กับตัวแปรdf(ขั้นตอนนี้ทำไว้ให้แล้ว) - ใช้
.info()เพื่อแสดงข้อมูลทั่วไปของdf - ใช้
.value_counts()เพื่อนับจำนวนธุรกรรมที่เป็นการฉ้อโกงและที่ไม่ใช่การฉ้อโกงในคอลัมน์'Class'แล้วกำหนดผลลัพธ์ให้กับตัวแปรocc - คำนวณสัดส่วนของธุรกรรมที่เป็นการฉ้อโกงต่อจำนวนธุรกรรมทั้งหมดในชุดข้อมูล
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Import pandas and read csv
import pandas as pd
df = pd.read_csv("creditcard_data.csv")
# Explore the features available in your dataframe
print(df.____)
# Count the occurrences of fraud and no fraud and print them
occ = df['____'].____()
print(occ)
# Print the ratio of fraud cases
print(occ / ____)