[บทความนี้เป็นเนื้อหาบางส่วนจากหลักสูตร 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 ขั้นตอน ตามที่ได้อธิบายไปในโพสต์นี้ครับ และขอสรุปเป็นตารางสั้นๆ ดังแสดงในตารางด้านล่างครับ
Step | Description |
Business Understanding | Define the project. |
Data Understanding | Examine the data; identify problems in the data. |
Data Preparation | Fix problems in the data; create derived variables. |
Modeling | Build predictive or descriptive models. |
Evaluation | Assess models; report on the expected effects of. |
Deployment | Plan for use of models. |
ซึ่งจากตารางพอสรุปออกมาได้เป็น
- 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 ID | Due Date | Payment Date | Amount |
180001 | Feb 28, 2018 | Feb 26, 2018 | 5,000 |
180001 | Mar 28, 2018 | Mar 27, 2018 | 6,000 |
180001 | Apr 28, 2018 | Apr 28, 2018 | 5,500 |
180001 | May 28, 2018 | May 30, 2018 | 7,000 |
180002 | Apr 28, 2018 | Apr 29, 2018 | 10,000 |
ในตารางจะเห็นว่าแต่ละแถวคือการชำระเงินมาของลูกค้าแต่ละรอบบัญชีซึ่งบ่งบอกได้ด้วย คอลัมน์ 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