Reasonable Data Science, EP II

Accuracy เป็น criteria หรือเกณฑ์การประเมินอย่างหนึ่งที่นำมาใช้ตัดสินคุณค่าของ Machine learning model แต่ก็มิได้หมายความว่า เมื่อโมเดลมีค่า Accuracy ที่สูงแล้ว จะเป็นโมเดลที่สร้างคุณค่าให้กับธุรกิจเสมอไป ในทาง Data science มี criteria อย่างเช่น Recall, Precision, F1, ROC Curve ซึ่งเป็นที่น่าแปลกใจสำหรับผู้ที่ยังใหม่กับเรื่องนี้คือ แม้ว่าจะได้อ่านทำความเข้าใจความหมายของ criteria เหล่านี้แล้วก็ตาม ก็จะยังไม่เห็นภาพชัดในการเลือกใช้และขาดความเชื่อมโยงกับธุรกิจ งานเขียนนี้มุ่งเน้นความเข้าใจที่ถูกต้องชัดเจนเกี่ยวกับการเลือกใช้ criteria เหล่านี้สำหรับการประเมิน Classification model ในมุมมองทางธุรกิจ

การประเมิน Classification model (Binary Classification Model) ก็คล้ายๆ กับการมองเหรียญซึ่งมี 2 ด้าน ซึ่งแต่ละด้านก็มี criteria ที่ใช้ประเมิน Model performance. ในด้าน Positive side มี criteria คือ Recall หรือ Sensitivity และ Positive Predictive Value (PPV) ส่วนในด้าน Negative side ประกอบด้วย criteria คือ Specificity และ Negative Predictive Value (NPV) แต่อย่างไรก็ตามโดยธรรมชาติแล้ว เรามองเหรียญได้ทีละด้านเท่านั้น. การประเมินโมเดลก็เช่นเดียวกัน เราคงต้องเลือกประเมินในด้านที่ธุรกิจให้ความสำคัญ และใช้หลักเกณฑ์ (criteria) ที่เหมาะสมกับการประเมินในด้านนั้นๆ ด้วย ซึ่งสามารถอธิบายได้เป็นขั้นตอนได้ดังนี้

ขั้นตอนที่ 1 ต้องทบทวนว่าโจทย์ทางธุรกิจคืออะไร (Business Understanding) แล้วถอดโจทย์ออกมาดูว่าธุรกิจให้ความสำคัญกับด้านไหน

โดยทั่วไปแล้ว Positive Side คือ ด้านที่ธุรกิจสนใจ ในที่นี้ขอยกตัวอย่างโจทย์ (Problem statement) คือ “ธุรกิจอยากทราบว่า ลูกค้าแต่ละรายจะตีจาก brand (Churn) หรือไม่” เช่นนี้แล้วแสดงว่า ธุรกิจนี้สนใจว่าลูกค้าไหนบ้างที่จะย้ายค่ายหรือตีจาก brand ไปใช้บริการ brand อื่นๆ ดังนั้น Positive side คือ Churn (Positive = Churn) และ Negative side คือ non-Churn (Negative = non-Churn)

จากความเข้าใจเรื่อง Positive Side สามารถนำไปสู่การสรุปค่า TP, TN, FN, FP จากรูปที่ 1 ได้ดังนี้

TP (True Positive) = 1, TN (True Negative) = 90

FN (False Negative) = 9, FP (False Positive) = 0

ขั้นตอนที่ 2 พิจารณาที่ Loss เป็นหลักว่า ธุรกิจสูญเสีย “อะไร” และ “สูญเสียแค่ไหน” จากค่า False ของโมเดล

ธุรกิจสูญเสียอะไรจากค่า False

False Negative คือ Actual POSITIVE label, but ML model predicts NEGATIVE ยกตัวอย่างเช่น ใน testing set มี target variable ที่มีค่า “Churn” แต่คำตอบที่ได้จาก ML Model คือ “non-Churn” ดังนั้น หากธุรกิจนำโมเดลนี้ไปใช้ ธุรกิจอาจสูญเสียโอกาสที่จะนำเสนอ marketing campaign ดีๆ เพื่อ keep ลูกค้าที่ “Churn” ไว้ ในที่นี้ขอเรียกว่า “เสียลูกค้า” ซึ่งสำหรับธุรกิจที่มีการบริหารงานในแบบ profit center คงไม่ยอมเสียลูกค้าแน่ๆ

False Positive คือ Actual NEGATIVE label, but ML model predicts POSITIVE ยกตัวอย่างเช่น ใน testing set มี target variable ที่มีค่า “non-Churn” แต่คำตอบที่ได้จาก ML Model คือ “Churn” ดังนั้น หากธุรกิจนำโมเดลนี้ไปใช้ ธุรกิจอาจสูญเสียเงินที่นำไปใช้เป็นค่าใช้จ่ายทางการตลาดต่างๆ กับลูกค้าที่ไม่ได้คิดจะตีจาก brand อยู่แล้ว ซึ่งในที่นี้ขอเรียกว่า “เสียเงินเปล่า” ซึ่งสำหรับธุรกิจที่มีการบริหารงานในแบบ cost center คงไม่ปลื้มแน่

ธุรกิจสูญเสียแค่ไหนจากค่า False

False Negative ทำให้ธุรกิจสูญเสียแค่ไหน ยกตัวอย่างตามรูปที่ 1 False Negative = 9 ราย จากจำนวน Actual Positive ทั้งหมด 10 ราย อาจกล่าวได้ว่า หากธุรกิจนำโมเดลนี้ไปใช้ ธุรกิจอาจ “เสียโอกาสทำตลาดกับลูกค้าไป 9 ราย จากลูกค้าที่ Churn ทั้งหมด 10 ราย” หรือ เสียลูกค้าไป 90% ซึ่งในทาง Data science เรียกตัวเลขนี้ว่า Miss rate [2] ที่คำนวณได้จาก (FN/Actual Positive)

False Positive ทำให้ธุรกิจสูญเสียแค่ไหน ยกตัวอย่างตามรูปที่ 1 False Positive = 0 ราย จากจำนวน Actual Negative ทั้งหมด 90 ราย อาจกล่าวได้ว่า “เสียเงินทำตลาดกับลูกค้าไป 0 ราย จากลูกค้าที่ non-Churn ทั้งหมด 90 ราย” หรือ “ไม่เสียเงินทำตลาดกับลูกค้าที่ non-Churn เลย” ซึ่งในทาง Data science เรียกตัวเลขนี้ว่า fall-out [2] ที่คำนวณได้จาก (FP/Actual Negative)

สรุปคือ ค่า False Negative และ False Positive แสดงให้เห็นการสูญเสียในทางธุรกิจที่แตกต่างกัน หากตัวเลขสองตัวนี้ไม่เท่ากัน ผู้วิเคราะห์อาจต้องจัดลำดับความสำคัญตามโจทย์ทางธุรกิจว่า ธุรกิจมุ่ง keep ลูกค้า หรือ มุ่ง keep เงิน หากมุ่ง keep ลูกค้าก็ต้องพยายามสร้างโมเดลที่มีค่า False Negative ให้ต่ำที่สุดเท่าที่จะเป็นไปได้

ขั้นตอนที่ 3 พิจารณาที่ Profit ว่า ธุรกิจได้ “อะไร” และ “ได้แค่ไหน” จากค่า True ของโมเดล

การดูว่าธุรกิจได้อะไรแค่ไหนจากค่า True ของโมเดลนั้น ตามหลักการ Data science ในด้าน Positive side นั้นเป็นการคำนวณค่า True Positive ร่วมกับ Cost ของ False ทั้ง 2 แบบ แบบแรกเป็นการคำนวณค่า TP กับ Cost ของ FP เรียกว่า Precision (Positive Predictive Value) แบบที่สองเป็นการคำนวณค่า TP กับ Cost ของ FN เรียกว่า Recall (Sensitivity)

Precision

จากรูปที่ 2 จะเห็นว่า Precision คือสัดส่วนระหว่าง True Positive กับ Positive Prediction. ขยายความเรื่อง Positive Prediction กันสักนิด Positive Prediction หมายถึงจำนวนครั้งที่โมเดล predict ค่าออกมาเป็น positive ทั้งหมดซึ่งเป็นการนับรวมกันทั้ง True positive รวมกับ False positive. แต่เนื่องจาก Positive Prediction เป็นตัวหารของสมการ ด้วยเหตุนี้ค่า Precision จึงสะท้อนให้เห็น chance หรือโอกาสที่โมเดลจะ positive predict ได้ถูกต้องตรงกับความจริงในแต่ละครั้งนั้นเอง.

ธุรกิจจึงสามารถนำค่า Precision ไปใช้ในการตัดสิน Performance ของโมเดลว่า โมเดลนี้ positive predict ลูกค้าแต่ละรายได้ “แม่นยำ” แค่ไหน

การจะบอกได้ว่าโมเดลนี้ predict ได้ “แม่นยำ” แค่ไหนนั้น ก็ให้ดูค่า Precision ซึ่งมีค่าสูงสุดได้แค่ 1 เท่านั้น ยกตัวอย่างข้อมูลจากรูปที่ 1 จะได้ผลลัพธ์จากการคำนวณค่า Precision = 1/(1+0) = 1 ดังนั้นโมเดลนี้จึง predict ค่า churn ได้แม่นยำถึง 100%

Recall

จากรูปที่ 2 จะเห็นว่า Recall คือ สัดส่วนระหว่าง True Positive กับ Actual Positive โดยมี Actual Positive เป็นตัวหารของสมการ ด้วยเหตุนี้ค่า Recall จึงสะท้อนให้เห็นความสามารถในการทำ positive classifying ของโมเดล

ธุรกิจจึงสามารถนำค่า Recall ไปให้ในการตัดสิน Performance ของโมเดลว่า โมเดลนี้สามารถทำการจำแนกลูกค้าที่อยู่ในกลุ่ม positive class ได้ “ครบถ้วน” แค่ไหน

การจะบอกได้ว่าโมเดลนี้ classify ได้ “ครบถ้วน” แค่ไหนนั้น ก็ให้ดูค่า Recall ซึ่งมีค่าสูดสุดได้แค่ 1 เท่านั้น ยกตัวอย่างข้อมูลจากรูปที่ 1 จะได้ผลลัพธ์จากการคำนวณค่า Recall = 1/(1+9) = 0.1 ดังนั้นโมเดลนี้จึงสามารถจำแนกลูกค้าที่ churn ได้เพียง 10%

อย่างไรก็ตาม ML model ที่มี Performance ที่สุดคือ โมเดลที่มีค่า Recall และ Precision สูงทั้งคู่ หากเป็นเรื่องที่ทำไม่ได้แล้ว ธุรกิจก็ต้องมุ่ง balance ระหว่าง Precision กับ Recall

ขั้นตอนที่ 4 รักษาสมดุล (Balancing Precision and Recall)

ในทาง Data science ที่เป็นยอมรับโดยทั่วไปว่า เราไม่สามารถทำให้ Maximize ทั้ง Precision และ Recall ได้ เพราะการเพิ่มค่าหนึ่งก็จะไปลดอีกค่าหนึ่งลง (Trade-off). F1 Score เป็นค่าที่บ่งชี้ความสมดุลย์ระหว่าง Precision กับ Recall [2] ดังนั้นหากธุรกิจต้องการทั้ง “แม่นยำ” และ “ครบถ้วน” ก็ต้องมีการคำนวณ F1 Score ร่วมด้วย

ขั้นตอนที่ 5 มองด้านอีกด้านหนึ่งของเหรียญ

ทั้งหมดที่กล่าวมาข้างต้นในงานเขียนนี้มุ่งเน้นนำเสนอเพียงด้านเดียวของเหรียญ นั่นคือ Positive side ของโมเดล ในหลายๆ กรณีอย่างเช่น งานวิจัยในโลกการศึกษา (Academic research) มักต้องการ Performance ทั้ง 2 ด้าน ในด้าน Negative side นั้นมีค่า Specificity ที่สามารถคำนวณได้คล้ายๆ กับการคำนวณค่า Recall ในด้าน Positive side. ในทาง Data science ที่เป็นยอมรับว่า เราสามารถนำ Recall มาเปรียบเทียบกับ 1-Specificity ได้ ซึ่งมักจะเห็นบ่อยๆ ในรูปแบบของกราฟ ROC Curve และพื้นที่ใต้ ROC Curve ที่เรียกว่า AUC. หาก AUC มีค่าเข้าใกล้ 1 นั่นแสดงว่า model นั้นมีความเป็น “Perfect classifier” มากยิ่งขึ้น.

สรุป

งานเขียนนี้ได้นำเสนอขั้นตอนการประเมินโมเดลที่มีความเชื่อมโยงกับ Profit & Loss ในทางธุรกิจ การเริ่มต้นประเมินควรต้องเข้าใจว่าธุรกิจมุ่งอะไร แล้วใช้สิ่งที่มุ่งนั้นไปเป็น Positive side เป็นเป้าหมายในการประเมิน จากนั้นจึงนำเกณฑ์การประเมินต่างๆ เช่น Miss rate, Fall-out, Recall, Precision, F1 มาปรับใช้ให้เหมาะสมตามลำดับ. สุดท้ายหากต้องการประเมินว่าโมเดลของเรา เป็น Perfect classifier ที่ Perform ทั้ง Positive side และด้านตรงข้ามคือ Negative side แล้วก็ต้องพิจารณาจาก ROC/AUC ต่อไป

Reference

[1] https://towardsdatascience.com/roc-curve-and-auc-explained-8ff3438b3154
[2] https://en.wikipedia.org/wiki/Precision_and_recall
[3] https://en.wikipedia.org/wiki/F-score

--

--

Experienced Senior Big Data & Data Science Consultant with a history of working in many enterprises and various domains . Skilled in Apache Spark, and Hadoop.

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store