[บทความนี้เป็นเนื้อหาบางส่วนจากหลักสูตร Practical Data Preparation and Feature Engineering for Data Analytics and Machine Learning]

Data Science สามารถนำไปประยุกต์ใช้ในเชิงธุรกิจได้หลากหลายรูปแบบ ดาต้า คิวบ์ได้สรุปตัวอย่างการใช้งานไว้ในเมนู Data Science Use-cases โดยในบทความนี้จะอธิบายเพิ่มเติมถึงขั้นตอนในการทำโครงการที่เกี่ยวข้องกับทาง Data Science ซึ่งมีอยู่หลายแนวทาง แต่ที่ดาต้า คิวบ์ใช้งานก็จะเป็นไปตามแนวคิดของ CRISP-DM ซึ่งย่อมาจาก CRoss Industry Standard Process for Data Mining แม้ว่าจะมีคำว่า Data Mining อยู่แต่ก็สามารถนำมาใช้กับทาง Data Science ได้นะครับ CRISP-DM ประกอบด้วย 6 ขั้นตอน ตามที่ได้อธิบายไปในโพสต์นี้ครับ และขอสรุปเป็นตารางสั้นๆ ดังแสดงในตารางด้านล่างครับ

StepDescription
Business UnderstandingDefine the project.
Data UnderstandingExamine the data; identify problems in the data.
Data PreparationFix problems in the data; create derived variables.
ModelingBuild predictive or descriptive models.
EvaluationAssess models; report on the expected effects of.
DeploymentPlan for use of models.
Reference: Applied Predictive Analytics: Principle and Techniques for the Professional Data Analyst

ซึ่งจากตารางพอสรุปออกมาได้เป็น

  • Business Understanding เป็นขั้นตอนกำหนดวัตถุประสงค์ของโครงการที่เราต้องการนำ Data Science ไปประยุกต์ใช้ครับ เช่น การพยากรณ์จำนวนสินค้าที่ต้องผลิต หรือ พยากรณ์ว่าลูกค้าคนใดบ้างที่มีโอกาสซื้อสินค้าบ้าง (รายละเอียดเพิ่มเติมดูได้จากบทความเรื่อง Data Science Use-cases)
  • Data Understanding เป็นขั้นตอนตรวจดูข้อมูลและหาปัญหาที่มีในชุดข้อมูล ตัวอย่างที่ดาต้า คิวบ์เคยเจอคือข้อมูลปริมาณน้ำฝนที่ส่งมาจากเซนเซอร์ (sensor) ต่างๆ ทุกๆ 15 นาที ในตอนแรกทีมเข้าใจมันคือค่าฝนที่ตก ณ เวลานั้นแต่จริงๆ แล้วไม่ใช่เป็นค่าปริมาณน้ำฝนที่ตกสะสม (accumulative) มาเรื่อยๆ เนื่องจากการเก็บข้อมูลน้ำฝนจะเป็นลักษณะกระบอกที่รับน้ำฝนมาเรื่อยๆ
  • Data Preparation เป็นขั้นตอนการแก้ไขข้อมูลที่ผิดพลาด (ซึ่งตรวจพบจากขั้นตอนก่อนหน้า) และสร้างตัวแปรหรือแอตทริบิวต์ใหม่ ซึ่งตัวแปรแบบนี้เรียกว่า “derived variable” ตัวอย่างง่ายๆ เช่น การคำนวณอายุจากตัวแปรวันเดือนปีเกิด ซึ่งขั้นตอนนี้เป็นขั้นตอนที่ใช้เวลานานที่สุดใน 6 ขั้นตอนและมีความสำคัญต่อการนำข้อมูลไปวิเคราะห์ต่อไป
  • Modeling เป็นขั้นตอนวิเคราะห์ข้อมูลโดยใช้เทคนิคของ Data Science หรือ Machine Learning ต่างๆ
  • Evaluation เป็นขั้นตอนการวัดประสิทธิภาพของการวิเคราะห์ข้อมูล ซึ่งอาจจะต้องย้อนกลับไปทดสอบว่าตรงกับวัตถุประสงค์ที่ต้องการในขั้นตอนแรกหรือไม่
  • Deployment เป็นขั้นตอนการวางแผนว่าจะนำผลการวิเคราะห์ไปใช้ในด้านใดบ้าง

ในหัวข้อถัดไปจะยกตัวอย่างการประยุกต์ใช้ Data Science ในเชิงธุรกิจ ซึ่งสมมุติว่าเป็นบริษัทที่ให้บริการสินเชื่อบัตรเครดิต ซึ่งในแต่ละเดือนก็จะมีการแจ้งค่าใช้จ่ายและเรียกเก็บเงินจากลูกค้า โดยทั่วไปแล้วลูกค้าจะมีหลากหลาย เช่น คนที่ชำระตรงเวลา หรือคนที่ชอบชำระเงินล่าช้า หรือคนที่ชำระไม่ครบยอดตามกำหนด ตัวอย่างในบทความนี้ได้รับแรงบันดาลใจจากตัวอย่าง การใช้ข้อมูลติดตามหนี้ของธนาคารกรุงศรีอยุธยา โดยตัวอย่างที่ยกมาเป็นข้อมูลสมมุติที่สร้างขึ้นมาใหม่ไม่เกี่ยวข้องกับบริษัทหรือหน่วยงานใดๆ ทั้งสิ้น ในส่วนถัดไปจะแสดงการประยุกต์แนวทางของ CRISP-DM โดยมีรายละเอียดดังนี้

1. Business Understanding
ถ้าเราทราบพฤติกรรมการชำระเงินของลูกค้าจะทำให้การติดตามทำได้อย่างมีประสิทธิภาพมากยิ่งขึ้น เช่น ลูกค้าที่มีประวัติดี (ชำระตรงเวลาหรือล่าช้าเล็กน้อย) บริษัทไม่จำเป็นต้องส่ง SMS หรือโทรศัพท์ไปตามเลย แต่ถ้าลูกค้ามีพฤติกรรมการชำระเงินล่าช้าหรือไม่ชำระเงินบ่อยครั้งจึงจำเป็นต้องโทรศัพท์ไปติดตาม

คำถามคือจะรู้ได้อย่างไรว่าคนกลุ่มหลังคือใคร และมีเงื่อนไขอย่างไรว่าชำระล่าช้าเป็นระยะเวลานานกี่เดือน จะใช้ดูเพียงแค่ 2 เดือนหรือ 6 เดือนถึงจะดี ซึ่งถ้ามีเงื่อนไขลักษณะนี้เราก็ใช้วิธีการทำ segmentation ได้ไม่ยาก แต่ถ้าไม่มีแล้วเราต้องการดูหลายๆ ปัจจัยควบคู่กันไปการใช้เทคนิค Clustering ก็เป็นตัวอย่างหนึ่งที่น่าจะประยุกต์ใช้ได้

2. Data Understanding
บริษัทจะมีการเก็บข้อมูลการชำระเงินของลูกค้าในแต่ละรอบบิลอยู่แล้วซึ่งจะมีข้อมูลหลายคอลัมน์เลย แต่ในตัวอย่างนี้ผมขอสมมุติให้มีแค่ 4 คอลัมน์ได้แก่

  • Customer ID คือ รหัสของลูกค้าแต่ละราย
  • Due Date คือ วันที่ครบกำหนดชำระเงินในรอบบัญชีนั้น
  • Payment Date คือ วันที่ชำระเงินในรอบบัญชีนั้น
  • Amount คือ ยอดเงินที่ชำระเข้ามา ซึ่งในตัวอย่างนี้ขอถือว่ามีการชำระยอดเงินเต็มจำนวนที่เรียกเก็บในรอบบัญชีนั้นๆ (ซึ่งในความเป็นจริงอาจจะมีการชำระเป็นยอดเงินขั้นต่ำ หรือชำระมามากกว่า 1 ครั้งในแต่ละรอบบัญชีก็ได้)


ตัวอย่างของข้อมูลแสดงในตารางด้านล่าง

Customer IDDue DatePayment DateAmount
180001Feb 28, 2018Feb 26, 20185,000
180001Mar 28, 2018Mar 27, 20186,000
180001Apr 28, 2018Apr 28, 20185,500
180001May 28, 2018May 30, 20187,000
180002Apr 28, 2018Apr 29, 201810,000
ตารางที่ 2: แสดงตัวอย่างการชำระเงินของลูกค้าแต่ละราย

ในตารางจะเห็นว่าแต่ละแถวคือการชำระเงินมาของลูกค้าแต่ละรอบบัญชีซึ่งบ่งบอกได้ด้วย คอลัมน์ Customer ID ในบางครั้งก็เป็นการชำระเงินก่อนกำหนดเวลา ตรงเวลาหรือล่าช้ากว่ากำหนด เช่น

  • ชำระเงินก่อนกำหนดในเดือนกุมภาพันธ์ของลูกค้าหมายเลข 180001 ชำระมาก่อนกำหนด 2 วัน (วันครบกำหนดคือ 28 กุมภาพันธ์ 2018 แต่ชำระมาวันที่ 26 กุมภาพันธ์ 2018)
  • ชำระตรงเวลาในเดือนเมษายน (วันครบกำหนดคือ 28 เมษายน 2018 และชำระมาวันที่ 28 เมษายน 2018)
  • ชำระเงินล่าช้ากว่ากำหนดในเดือนพฤษภาคม เป็นเวลา 2 วัน (วันครบกำหนดคือ 28 พฤษภาคม 2018 แต่ชำระมาวันที่ 30 พฤษภาคม 2018)

3. Data Preparation
ขั้นตอนนี้จะเป็นการสร้างตาราง ABT (Analytical Base Table) เพื่อใช้ในการวิเคราะห์ข้อมูลต่อไป ซึ่งตาราง ABT นี้จะประกอบด้วยแถวและคอลัมน์ โดย

  • แถว เรียกว่า Unit of Analysis เป็นตัวที่แสดงว่าข้อมูลที่จะใช้ในการวิเคราะห์เป็นระดับไหน เช่น แปลงข้อมูลที่เป็นรายการซื้อสินค้า (transaction) ให้เป็นประวัติการซื้อสินค้าของลูกค้าแต่ละรายแทน
  • คอลัมน์ เรียกว่า Feature/Attributes เป็นตัวแปรต่างๆ ที่จะใช้ในการวิเคราะห์

จากในตัวอย่างนี้จะทำการวิเคราะห์พฤติกรรมของลูกค้าที่ชำระเงินในช่วงเวลาที่ผ่านมา แต่ข้อมูลที่มีแต่ละแถวจะเป็นแต่ละรายการ (transaction) ดังนั้นจะต้องทำการ group รายการชำระเงินของลูกค้าแต่ละคนนี้ให้เป็นเพียงแค่แถวเดียว (ดังแสดงในรูปด้านล่าง)

สำหรับการสร้างตัวแปรที่จะใช้ในตาราง ABT จะสร้างเพื่อแสดงพฤติกรรมของลูกค้าแต่ละราย ดังนี้

  • Percent การชำระเงินก่อนกำหนด, ตรงเวลา และ ล่าช้า
  • จำนวนวันน้อยสุด (min) ที่ชำระเงินก่อนกำหนด และล่าช้ากว่ากำหนด
  • จำนวนวันมากสุด (max) ที่ชำระเงินก่อนกำหนด และล่าช้ากว่ากำหนด
  • จำนวนวันเฉลี่ย (average) ที่ชำระเงินก่อนกำหนด และล่าช้ากว่ากำหนด

ตัวอย่างเช่นลูกค้ารหัส 180001 มีรอบการเรียกเก็บเงินจำนวน 4 ครั้ง โดย

  • 1 ครั้งที่ชำระตรงเวลา คิดเป็น 1/4 x 100 = 25%
  • 2 ครั้งที่ชำระก่อนกำหนด คิดเป็น 2/4 x 100 = 50%
  • 1 ครั้งที่ชำระล่าช้ากว่ากำหนด คิดเป็น 1/4 x 100 = 25%

4. Modeling
ในขั้นตอนนี้จะประยุกต์ใช้เทคนิคทาง Machine Learning เพื่อทำการแบ่งกลุ่มลูกค้าตามพฤติกรรมการชำระเงินของลูกค้า ซึ่งเทคนิคที่จะใช้คือเทคนิค K-Means ซึ่งเป็นเทคนิคหนึ่งของ Clustering โดยใช้แนวคิดที่ว่า ข้อมูลที่มีลักษณะคล้ายกันจะอยู่ในกลุ่มเดียวกัน และตัวแทนของแต่ละกลุ่มจะใช้เป็นค่าเฉลี่ย (Mean) โดยในตัวอย่างนี้จะแบ่งเป็น 5 กลุ่ม

5. Evaluation
ในขั้นตอนนี้จะเป็นการพิจารณาผลลัพธ์ที่วิเคราะห์ได้ ซึ่งถ้าเป็นการวิเคราะห์ในแนวทางของ Predictive Analytics จะมีการวัดค่าความถูกต้อง (Accuracy) แต่ถ้าเป็นการแบ่งกลุ่มจะไม่ได้วัดเรื่องความถูกต้องของการแบ่งกลุ่มเนื่องจากไม่มีคำตอบที่ถูกต้องมาให้ก่อน ดังนั้นในตัวอย่างนี้จึงวิเคราะห์ผลการแบ่งกลุ่มโดยพิจารณาตัวแปรต่างซึ่งแสดงดังในรูปด้านล่าง ซึ่งแบ่งได้เป็น 5 กลุ่มซึ่งมีพฤติกรรมดังนี้

  • กลุ่มที่ 1 หรือเรียกว่า กลุ่มชำระเงินตรงเวลา เป็นกลุ่มที่ส่วนใหญ่จะเป็นลูกค้าที่ชำระเงินตรงเวลา (สังเกตุจากกราฟสีน้ำเงิน) แต่ล่าช้าบ้างเล็กน้อย ซึ่งถ้าดูจากกราฟด้านขวามือจะเห็นว่าล่าช้าไม่กี่วัน
  • กลุ่มที่ 2 หรือเรียกว่า กลุ่มชำระเงินก่อนกำหนด เป็นกลุ่มที่ส่วนใหญ่จะเป็นลูกค้าที่ชำระเงินก่อนกำหนดมากที่สุดใน 5 กลุ่ม (สังเกตุจากกราฟสีเทา)
  • กลุ่มที่ 3 หรือเรียกว่า กลุ่มชำระเงินหลากหลาย เป็นกลุ่มที่ส่วนใหญ่จะเป็นลูกค้าที่ชำระเงินก่อนกำหนดคล้ายกลุ่มที่ 2 แต่มีจำนวนน้อยกว่า (สังเกตุจากกราฟสีเทา)
  • กลุ่มที่ 4 หรือเรียกว่า กลุ่มชำระเงินล่าช้าแต่ไม่โดนปรับ เป็นกลุ่มที่มีพฤติกรรมการชำระเงินล่าช้ามากที่สุด (สังเกตุจากกราฟสีแดง) แต่ถ้าพิจารณาในรายละเอียดจะพบว่ากลุ่มนี้มีการชำระเงินล่าช้ามากที่สุดไม่เกิน 5 วัน ซึ่งอยู่ในช่วงผ่อนผันทำให้ไม่โดนปรับ
  • กลุ่มที่ 5 หรือเรียกว่า กลุ่มน่าเป็นห่วง เป็นกลุ่มที่มีพฤติกรรมการชำระเงินล่าช้ามาก (สังเกตุจากกราฟสีแดง) และเมื่อพิจารณาในรายละเอียดจะพบว่ามีการชำระเงินล่าช้าเกินกว่าช่วงผ่อนผัน อาจจะเป็นกลุ่มเสี่ยงที่ไม่ชำระเงิน

จากผลการแบ่งกลุ่มจะทำให้มีแนวทางในการติดต่อลูกค้ากลุ่มต่างๆ ดังนี้

  • กลุ่มที่ 1 บริษัทไม่ต้องติดต่อไปเนื่องจากลูกค้ามักจะชำระเงินตรงเวลาหรือล่าช้าไม่กี่วัน
  • กลุ่มที่ 2-4 บริษัทอาจจะแค่ส่ง SMS ไปแจ้งเตือนเมื่อถึงกำหนดชำระเงิน เนื่องจากลูกค้ากลุ่มนี้ชำระเงินก่อนกำหนดหรือถ้าล่าช้าก็เพียงไม่กี่วันเท่านั้น
  • กลุ่มที่ 5 เป็นกลุ่มที่ชำระเงินล่าช้าอาจจะต้องให้ call center โทรศัพท์ไปติดตามต่อไป

การแบ่งกลุ่มแบบนี้จะทำให้บริษัทเลือกวิธีการติดต่อได้ตรงกับลูกค้าแต่ละรายมากขึ้นและช่วยลดค่าใช้จ่ายลง

6. Deployment

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

จากตัวอย่าง dashboard ประกอบด้วยส่วนต่างๆ ดังนี้

  • ส่วนของการสรุปค่าต่างๆ (ส่วนบนสุด) เช่น จำนวนลูกค้าทั้งหมด ยอดเงินทั้งหมด ยอดเฉลี่ยต่อคน
  • ส่วนของการอธิบายการแบ่งกลุ่ม (ส่วนตรงกลาง)
  • ส่วนของการแสดงสัดส่วนจำนวนของแต่ละกลุ่ม (ส่วนล่างซ้าย)
  • ส่วนของยอดชำระเงินล่าช้าของกลุ่มที่น่าเป็นห่วง (ส่วนล่างขวา)

ท่านใดสนใจการใช้งาน RapidMiner เพื่อการเตรียมข้อมูลในตัวอย่างนี้ดูรายละเอียดการอบรมได้จาก หลักสูตร Practical Data Preparation and Feature Engineering for Data Analytics and Machine Learning