ขั้นตอนการสร้างโมเดล Decision Tree

เทคนิค Decision Tree เป็นเทคนิคหนึ่งที่ได้รับความนิยมในการนำมาประยุกต์ใชัในงานด้าน data mining วันนี้ผมจะแนะนำการสร้างโมเดล decision tree แบบง่ายๆ ก่อนอื่นเราจะใช้ข้อมูลในตารางที่ 1 ซึ่งเป็นข้อมูลที่เก็บสภาพภูมิอากาศ 14 วันย้อนหลังเพื่อดูว่าจะมีการจัดแข่งขันกีฬาหรือไม่ ตารางที่ 1 แสดงข้อมูล weather จากข้อมูลในตารางที่ 1 ประกอบด้วย 5 แอตทริบิวต์ คือ outlook แสดงสภาพภูมิอากาศ ประกอบด้วย 3 ค่า คือ sunny, overcast, rainny temperature แสดงอุณหภูมิ ประกอบด้วย 3 ค่า คือ hot, mild,

ระดับของการวิเคราะห์ข้อมูล (Data Analytics)

ในการทำ Data Analytics หรือ Data Driven Markeing เป็นการนำข้อมูลมาช่วยในการตัดสินใจเพื่อให้มีความแม่นยำและถูกต้องมากขึ้น รูปนี้เป็นรูปที่ผมมักจะใช้ในการอธิบายเรื่องระดับของการวิเคราะห์ข้อมูล (Data Analytics) โดยในรูปจะเริ่มตั้งแต่ข้อมูล (Data) ไปจนถึงการตัดสินใจ (Decision) หรือการกระทำ (Action) โดยในรูปจะแสดงระดับในการวิเคราะห์ข้อมูลต่างๆ ซึ่งมีรายละเอียดดังนี้ การวิเคราะห์ข้อมูลแบบ Descriptive Analytics จะเป็นการนำข้อมูลมาอธิบายว่ามีอะไรเกิดขึ้นมาแล้วบ้าง เช่น ยอดขายในเดือนที่ผ่านมาของแต่ละสาขา การวิเคราะห์ลักษณะนี้ช่วยในการตัดสินใจได้ค่อนข้างน้อยจึงจำเป็นต้องมีผู้เชี่ยวชาญ (หรือผู้บริหาร) เข้ามาเกี่ยวข้องในการตัดสินใจดังแสดงในส่วนที่เป็นสีฟ้า (Human Input) ครับ ตัวอย่างเช่น ถ้าเราอยากรู้ว่าสินค้าชนิดนี้จะต้องผลิตเท่าไร การวิเคราะห์แบบนี้จะให้ข้อมูลมาว่าในอดีตเคยขายได้เท่าไร ผู้บริหารจะต้องมาคิดเพื่อตัดสินใจอีกครั้ง การวิเคราะห์ข้อมูลแบบ Diagnostic Analytics เป็นการวิเคราะห์ในหลากหลายมุมมองมากขึ้น เช่น

เว็บไซต์ที่รวบรวมงานวิจัยทางด้าน Machine Learning และมี Code ที่ใช้ในการทำวิจัยด้วย

เว็บไซต์ paperswithcode.com เป็นเว็บไซต์ที่รวบรวมงานวิจัยทางด้าน Machine Learning และมี Code ที่ใช้ในการทำวิจัยให้ดาวน์โหลดด้วยครับ เช่น Deep Learning แบบต่างๆ และมีหัวข้อวิจัยแยกเป็นเรื่องต่างๆ ดังนี้ครับ– Computer Vision– Natural Language Processing– Medical– Graph– Speech– Time Series– Robot

การประยุกต์ใช้ Predictive Modeling ในเชิงธุรกิจ (Business)

ในหลายๆ ครั้งเวลาทำงานเรามักจะต้องหาก่อนว่าจะนำข้อมูลที่มีมาใช้ในการวิเคราะห์เรื่องอะไรบ้างครับ รูปด้านล่างแสดงตัวอย่างการนำเทคนิคการวิเคราะห์ข้อมูลแบบ Predictive Modeling ไปใช้ในเชิงธุรกิจ ได้แก่ Customer recruitment from a prospect database คือ การหาว่าลูกค้าเป้าหมาย (prospects) คนใดบ้างที่มีโอกาสจะซื้อสินค้าหรือบริการมากสุด Cross-sell/up-sell campaign เป็นการหาว่าลูกค้าคนใดบ้างที่เคยซื้อสินค้า X ไปแล้วจะมีโอกาสจะซื้อสินค้า Y หรือ ลูกค้าดนใดบ้างที่เคยซื้อสินค้า Z ไปแล้วมีแนวโน้มจะซื้อสินค้า Z มากขึ้น Next-best offer เพื่อหาสินค้าหรือบริการใดบ้างที่ลูกค้ามีแนวโน้มจะซื้อหรือใช้บริการในครั้งถัดไป Customer retention เพื่อหาว่าลูกค้าคนใดบ้างมีโอกาสจะยกเลิกการใช้บริการ Customer lifecycle management เป็นการคำนวณว่าระยะเวลาอีกนานแค่ไหนลูกค้าถึงจะยกเลิกการใช้บริการ Win-back

เปรียบเทียบความถูกต้อง (Accuracy) กับการแปลความ (Explainability) ของโมเดลต่างๆ

ในการสร้างโมเดล Classification นั้นมีหลายเทคนิคครับ บางเทคนิคก็แปลความ (Explainability) ได้ง่าย บางเทคนิคก็แปลความยากแต่ความถูกต้อง (Accuracy) สูงครับ ภาพด้านล่างเป็นการแสดงให้เห็นว่าเทคนิคต่างๆ นั้นสามารถอธิบายได้ง่ายหรือยากและมีความถูกต้องมากน้อยแค่ไหนครับ  โดยเทคนิคต่างๆ มีดังนี้ครับ 1. Linear Regressionเป็นการสร้างสมการเส้นตรง (เช่น y = mx+c) มาสร้างโมเดลเพื่อพยากรณ์ค่าตัวเลขต่างๆ ข้อดีของการเทคนิคนี้คือโมเดลที่ได้แปลความได้ง่ายเพราะแสดงในรูปของสมการทางคณิตศาสตร์ที่เราสามารถแทนค่าเข้าไปได้เลย 2. Logistic Regression เป็นการสร้างสมการคณิตศาสตร์เพื่อแบ่งแยก (classify) ข้อมูลออกเป็น 2 กลุ่มคำตอบครับ เทคนิคนี้เป็นอีกเทคนิคที่นิยมให้เนื่องจากแปลความโมเดลได้ง่ายครับ และแสดงให้เห็นถึงความสำคัญของตัวแปร (หรือ Feature) ได้ด้วยครับ 3. k-Nearest Neighbours (k-NN) เป็นการสร้างโมเดลโดยมีแนวคิดว่าข้อมูลที่มีลักษณะคล้ายกันน่าจะอยู่ในกลุ่ม

ข้อมูลที่ได้จากการซื้อสินค้าแต่ละครั้ง

ในการวิเคราะห์ข้อมูลบางครั้งเราอาจจะไม่สามารถใช้ข้อมูลที่มีได้โดยตรง อาจจะต้องสร้างตัวแแปรใหม่ (derived variable) ขึ้นมา รูปด้านล่างแสดงให้เห็นว่าจากข้อมูลการซื้อสินค้าแต่ละครั้งเราสามารถได้ข้อมูลอะไรมาช่วยในการวิเคราะห์ข้อมูลได้บ้าง  หมายเหตุ อันนี้ยังไม่ได้พิจารณาเรื่อง PDPA นะครับ

การเปลี่ยนแปลงการวิเคราะห์ข้อมูล (Data Analytics) ในช่วงต่างๆ

ภาพด้านล่างแสดงการเปลี่ยนแปลงของการวิเคราะห์ข้อมูล (Analytics) ในช่วงตั้งแต่ประมาณปี 2005 เป็นต้นมา (อ้างอิงจากหนังสือ Competing on Analytics: The New Science of Winning, 2nd Edition)  Analytics 1.0 ช่วงนี้เน้นการวิเคราะห์ข้อมูลเพื่อสนับสนุนการตัดสินใจ (Decision Support) ซึ่งจะใช้ข้อมูลที่มีอยู่ในบริษัทเป็นหลัก โดยจะเน้นไปที่เทคโนโลยีพวก Descriptive Analytics ที่ทำการวิเคราะห์ออกมาเป็นรายงาน (Reports) หรือ Dashboard ต่างๆ และ Predictive Analytics เพื่อสร้างโมเดลพยากรณ์สิ่งที่จะเกิดขึ้นต่อไปในอนาคต ซึ่งเทคโนโลยีเหล่านี้ก็ยังนำมาใช้กันอยู่ในปัจจุบันครับ Analytics 2.0: Big Data Dawns in the

เริ่มต้นโปรเจคทาง Data Analytics ด้วยเรื่องเล็กๆ เสียก่อน

คำพูดนี้เป็นของ Head of Customer Relationship Management ของบริษัทผลิตเครื่องแต่งกายที่เป็นพวกยีนส์ต่างๆ ซึ่งตั้งอยู่ในประเทศตุรกี บริษัทได้เริ่มใช้การวิเคราะห์ข้อมูลในช่วงประมาณปี 2009 ครับ โดยทำการแบ่งกลุ่มลูกค้าออกมาตามพฤติกรรมการซื้อสินค้าได้ออกมาเป็น 3 กลุ่ม คือ กลุ่มที่ 1 คือ กลุ่มที่ชอบซื้อเสื้อเชิร์ตกลุ่มที่ 2 คือ กลุ่มลูกค้าที่ชอบซื้อชุดว่ายน้ำกลุ่มที่ 3 คือ กลุ่มลูกค้าที่ชอบซื้อสินค้ารุ่นใหม่ๆ หลังวางจำหน่ายไม่นาน หลังจากนั้นบริษัทจึงทำ target marketing โดยการส่ง SMS (ในสมัยนั้น) ไปหาลูกค้าแต่ละกลุ่มและทำให้ลูกค้าที่ไม่ได้ซื้อสินค้านานแล้วกลับมาซื้อสินค้าอีกครั้ง (ประมาณ 20%) Reference: Predictive Marketing: Easy Ways

ความแตกต่างระหว่าง Business Intelligence และ Data Mining

รูปด้านล่างอธิบายความแตกต่างของ BI (Business Intelligence) และ Data Mining หรือ Machine Learning ครับ ในรูปผมแสดงการเปรียบเทียบใน 2 มุมมองคือ แกนนอน (แกน X) เป็นเรื่องของช่วงเวลาซึ่งตรงกลางคือเวลาปัจจุบัน และทางซ้ายมือคือเวลาในอดีต ส่วนด้านขวามือคือเวลาที่จะเกิดขึ้นในอนาคตครับ อีกแกน (แกน Y) จะเป็นเรื่องของการวิเคราะห์ข้อมูลครับ ถ้าอยู่ด้านล่างก็จะใช้วิธีการที่ไม่ซับซ้อนมาก เช่น แสดงค่าที่น้อยที่สุด (Minimum) หรือค่ามากที่สุด (Maximum) แต่ถ้าอยู่ด้านบนจะเป็นการวิเคราะห์ที่ซับซ้อนมากขึ้นเช่นมีการสร้างสมการทางคณิตศาสตร์ต่างๆ เช่น Linear Regression หรือ Neural Network ครับ จากรูปจะเห็นว่า BI อยู่ภายใต้เส้นขอบสีแดงนั่นคือ

การเก็บข้อมูลสำหรับทำ Data Analytics

ภาพด้านล่างจะแสดงให้เห็นความสัมพันธ์ของการเก็บข้อมูลและการวิเคราะห์ข้อมูลเบื้องต้นครับ  หลายๆ ครั้งที่ข้อมูลจะเก็บแยกส่วนกันอยู่ในฐานข้อมูลของฝ่ายต่างๆ เช่น ฝ่ายขาย ก็จะเก็บข้อมูลการซื้อสินค้าต่างๆ ข้อมูลลูกค้า ฝ่ายการตลาดก็จะเก็บเรื่องโปรโมชันต่างๆ หรือฝ่ายบัญชีก็จะเก็บเรื่องการจ่ายเงินต่างๆ ซึ่งข้อมูลเหล่านี้จริงๆ แล้วมีส่วนที่เชื่อมโยงกันอยู่เช่น รหัสของลูกค้า (CustomerID)  ดังนั้นถ้าผู้บริหารอยากจะดูภาพรวมของทั้งบริษัท ทำให้ต้องดึงข้อมูลเหล่านี้มารวมกันแล้วออกเป็นรายงาน (Report) ต่างๆ ออกมา ซึ่งแต่ละครั้งก็ไม่ง่ายเพราะข้อมูลกระจัดกระจายอยู่หลายที่ และการเชื่อมโยงข้อมูลกันก็อาจจะใช้เวลา ดังนั้นจึงมีแนวคิดของ Data Warehouse ที่เก็บข้อมูลต่างๆ ไว้ตรงกลางเสียก่อน เพื่อทำให้นำไปออกเป็นรายงานได้ง่ายขึ้น แต่ข้อมูลตั้งต้นนั้นกระจัดกระจายอยู่หลายฐานข้อมูลทำให้การนำมาเก็บใน Data Warehouse เลยก็อาจจะไม่ง่าย จึงต้องมีกระบวนการที่เรียกย่อๆ ว่า ETL (Extract, Transform and Load) เพื่อทำการดึงเฉพาะข้อมูลด้าน (Dimensiont) ที่สนใจ