อัตราความแม่นยำตามธรรมชาติ
ในแบบฝึกหัดนี้ เราจะใช้ข้อมูลธุรกรรมบัตรเครดิตอีกครั้ง ฟีเจอร์และเลเบลมีลักษณะคล้ายกับข้อมูลในบทก่อนหน้า และข้อมูลมีความไม่สมดุลอย่างมาก เราได้เตรียมฟีเจอร์ X และเลเบล y ซึ่งเป็น NumPy array ทั้งคู่ไว้ให้แล้ว
ขั้นแรก ให้สำรวจว่าการฉ้อโกงพบบ่อยแค่ไหนในชุดข้อมูล เพื่อทำความเข้าใจว่า "ความแม่นยำตามธรรมชาติ" คือเท่าไร หากเราทำนายทุกรายการว่าไม่ใช่การฉ้อโกง การรู้ระดับ "ความแม่นยำ" ที่ต้องก้าวข้ามนั้นสำคัญมาก เพื่อให้ได้ การทำนายที่ดีกว่าการไม่ทำอะไรเลย ในแบบฝึกหัดต่อไป เราจะสร้าง random forest classifier ตัวแรกสำหรับการตรวจจับการฉ้อโกง ซึ่งจะทำหน้าที่เป็นโมเดล "เบสไลน์" ที่จะนำไปพัฒนาต่อในแบบฝึกหัดถัดๆ ไป
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การตรวจจับการฉ้อโกงด้วย Python
คำแนะนำการฝึกหัด
- นับจำนวนการสังเกตทั้งหมดโดยใช้
len()กับเลเบลy - นับจำนวนกรณีที่ไม่ใช่การฉ้อโกงในข้อมูลโดยใช้ list comprehension กับ
yโปรดทราบว่าyเป็น NumPy array จึงไม่สามารถใช้.value_counts()ได้ - คำนวณความแม่นยำตามธรรมชาติโดยหารจำนวนกรณีที่ไม่ใช่การฉ้อโกงด้วยจำนวนการสังเกตทั้งหมด
- แสดงผลค่าเปอร์เซ็นต์
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Count the total number of observations from the length of y
total_obs = ____
# Count the total number of non-fraudulent observations
non_fraud = [i for ____ ____ ____ if i == 0]
count_non_fraud = non_fraud.count(0)
# Calculate the percentage of non fraud observations in the dataset
percentage = (float(____)/float(____)) * 100
# Print the percentage: this is our "natural accuracy" by doing nothing
____(____)