การใช้ Auto Model ใน RapidMiner Studio 8.1

วันนี้ (07/02/2018) เมื่อช่วงเย็น RapidMiner ได้ปล่อยซอฟต์แวร์ RapidMiner Studo 8.1 ซึ่งเป็นเวอร์ชันล่าสุดออกมาครับ ส่วนที่ดีมากๆ เลยสำหรับเวอร์ชันนี้คือ Auto Model ที่ทำให้เราสามารถรันโมเดล classification หลายๆ แบบและเปรียบเทียบประสิทธิภาพ (performance) กันได้ครับ ลักษณะแบบนี้คล้ายๆ กับซอฟต์แวร์ Data Robot (ซึ่งมีราคาค่อนข้างสูงมาก) ในบทความนี้ผมจะแสดงวิธีการใช้งาน Auto Model เพื่อสร้างโมเดลที่เหมาะสมสำหรับเรื่อง Churn Prediction หรือการคาดการณ์ว่าลูกค้าคนใดบ้างจะเลิกใช้บริการของเราบ้าง โดยข้อมูลมาจากหลักสูตร RapidMiner & DataScience: Foundations & Advance

เริ่มต้นเรามาดูข้อมูลของเราก่อนดีกว่าครับว่าคืออะไรและมีแอตทริบิวต์หรือตัวแปรอะไรบ้าง

Screen Shot 2561-02-08 at 1.23.12 AM

Screen Shot 2561-02-08 at 1.23.39 AM

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

  • CustomerId รหัสของลูกค้าแต่ละราย แอตทริบิวต์นี้กำหนด role ให้เป็น ID เพื่อไม่ให้นำไปสร้างโมเดลด้วย
  • Churn แอตทริบิวต์ที่บอกว่าลูกค้ายกเลิกการใข้บริการ (churn) หรือยังใช้บริการอยู่ (loyal) แอตทริบิวต์นี้กำหนด role ให้เป็น label ซึ่งเป็นคำตอบที่เราต้องการ predict
  • Firstname ชื่อของลูกค้าแต่ละราย
  • Gender เพศของลูกค้าแต่ละราย
  • sum(TransactionValue) ค่าใช้จ่ายรวมของลูกค้าแต่ละราย
  • average(TransactionValue) ค่าใช้จ่ายเฉลี่ยของลูกค้าแต่ละราย
  • PreferedPaymentMethod วิธีการชำระเงินที่ลูกค้าใช้บ่อยที่สุด
  • LastTransaction วันที่ใช้งานล่าสุดของลูกค้าแต่ละราย
  • TotalCount จำนวนครั้ง (transaction) ที่ใช้งานของลูกค้าแต่ละราย
  • Payments with cash จำนวน % ที่ลูกค้าชำระเงินด้วยเงินสด
  • Payments with cheque จำนวน % ที่ลูกค้าชำระเงินด้วยเช็ค
  • Payments with credit card จำนวน % ที่ลูกค้าชำระเงินด้วยบัตรเครดิต
  • Age อายุของลูกค้าแต่ละราย
  • PostalCode รหัสไปรษณีย์ของลูกค้าแต่ละราย

หลังจากรู้จักกับข้อมูลเรียบร้อยแล้ว สิ่งที่เราต้องการคือการสร้างโมเดลเพื่อคาดการณ์ว่าลูกค้าคนไหนจะ Churn บ้าง งั้นมาดูวิธีการสร้างโมเดลด้วย Auto Model กันเลยครับ

วิธีการสร้างโมเดลด้วย Auto Model

1. ขั้นตอนแรกจะเป็นเมนู Select Data เป็นการเลือกไฟล์ที่ต้องการนำไปสร้างโมเดล ข้อมูลนี้เรียกว่า Training data ซึ่งจะต้องประกอบด้วยแอตทริบิวต์ 2 ประเภท คือ

  • แอตทริบิวต์ทั่วไป คือ ตัวแปรต่างๆ ที่จะใช้ในการสร้างโมเดล เปรียบเทียบได้กับตัวแปร X ในทางสถิติ
  • แอตทริบิวต์ลาเบล คือ ตัวแปรที่เป็นคำตอบที่ต้องการ predict ในเคสนี้คือ Churn หรือเปรียบเทียบได้กับตัวแปร Y ในทางสถิติ

Screen Shot 2561-02-08 at 1.13.04 AM

จากรูปหน้าจอจะเห็นว่าหลังจากที่เลือกข้อมูลแล้วจะแสดงรายละเอียดด้านขวามือครับ ว่ามีกี่แถว และกี่คอลัมน์ (แอตทริบิวต์)

2. ขั้นตอนถัดมาจะเป็นเมนู Select Task ใช้สำหรับเลือกว่าจะวิเคราะห์ข้อมูลแบบไหน ซึ่งในเวอร์ชันนี้มีให้เลือก 3 แบบ คือ

  • Predict เป็นการสร้างโมเดลเพื่อคาดการณ์ (predict) คำตอบ
  • Cluster เป็นการจัดกลุ่มข้อมูลที่มีลักษณะคล้ายๆ กันไว้ด้วยกันครับ
  • Outliers เป็นการหาข้อมูลที่ผิดปกติ (outlier) เมื่อเปรียบเทียบกับข้อมูลทั่วไป

ตัวอย่างนี้จะแสดงการทำ Predict ดังนั้นจึงเลือกที่เมนู Predict และเลือกแอตทริบิวต์ Churn เพื่อเป็นลาเบลสำหรับการสร้างโมเดล (ในข้อมูลคือคอลัมน์สีเขียว)

Screen Shot 2561-02-08 at 1.13.10 AM

3. ขั้นตอนที่สามจะเป็นเมนู Prepare Target ในขั้นตอนนี้ระบบจะแสดงสัดส่วนของข้อมูลให้เห็น จากตัวอย่างของข้อมูลนี้จะเห็นว่ามี 2 ค่า คือ

  • loyal แสดงว่าลูกค้ายังใช้บริการอยู่ ซึ่งมีจำนวนมากกว่าลูกค้าที่ยกเลิกการใช้บริการ (ซึ่งโดยปกติข้อมูลจะมีลักษณะแบบนี้)
  • churn แสดงว่าลูกค้ายกเลิกการใข้บริการไปแล้ว ซึ่งเป็นสิ่งที่เราสนใจ เพื่อจะได้ป้องกันไม่ให้ลูกค้ายกเลิกการใช้บริการไป

Screen Shot 2561-02-08 at 1.13.17 AM

จากรูปจะเห็นว่าคำตอบที่เราสนใจคือ churn และระบบเลือกไว้แล้วในส่วน Class of Highest Interest

4. ขั้นตอนถัดมาคือ Select Inputs โดยในขั้นตอนนี้จะมีการคำนวณความสำคัญของแอตทริบิวต์ต่างๆ มาและแสดงด้วยสี 3 สี คือ แดง ส้ม และ เขียว โดยสีเขียวคือแอตทริบิวต์ที่น่าจะนำไปสร้างโมเดลได้ดีที่สุด ดังนั้นในตัวอย่างนี้จึงเลือกเฉพาะแอตทริบิวต์ที่เป็นสีเขียวครับ

Screen Shot 2561-02-08 at 1.13.33 AM

5. ขั้นตอนที่ห้า คือ Model Types โดยในหน้านี้จะสามารถเลือกได้ว่าจะสร้างโมเดลด้วยเทคนิคอะไรบ้าง โดยในเวอร์ชันนี้จะมีโมเดลต่างๆ ดังนี้

โดยโมเดลเหล่านี้จะมีให้เลือกว่าจะทำการ optimize เพื่อให้ได้ผลที่น่าพอใจที่สุดหรือไม่ โดยการคลิกที่ Automatically Optimize ในตัวอย่างนี้เราจะใช้ทั้ง 7 โมเดลเลยครับ ดังแสดงในรูป และกดปุ่ม Run เพื่อให้ไปสู่ขั้นตอนสุดท้าย

Screen Shot 2561-02-08 at 1.13.39 AM

6. ในขั้นตอนนี้ชื่อว่า Results ซึ่งใช้เวลาการทำงานมากหรือน้อยขึ้นกับจำนวนข้อมูล training data ที่เราเลือกมาใช้งานครับ เมื่อทำงานเสร็จเรียบร้อยแล้วสามารถดูผลการทำงานเปรียบเทียบได้จากเมนู Overview ในส่วนของ Comparison ดังแสดงในรูป

Screen Shot 2561-02-08 at 1.15.22 AM

จากรูปจะแสดงกราฟ 2 ส่วน คือ

  • กราฟแสดง Performance ต่างๆ เช่น Accuracy แสดงด้วยกราฟสีส้ม
  • กราฟแสดงเวลาการทำงาน (runtime) แสดงด้วยกราฟสีฟ้าเขียว

นอกจากนี้เราสามารถเปลี่ยนไปดูค่า performance แบบอื่นๆ ได้อีกโดยการเลือกที่ drop-down list เช่น เปลี่ยนจาก Accuracy เป็นค่า F Measure (ดูวิธีการคำนวณได้จาก ตัววัดประสิทธิภาพของโมเดล Classification) แทนแสดงดังในรูป

Screen Shot 2561-02-08 at 1.15.27 AM

นอกจากนี้เราสามารถดูกราฟ ROC (ดูวิธีการคำนวณได้จาก ตัววัดประสิทธิภาพของโมเดล Classification) ได้โดยการเลือกที่เมนู ROC Comparison ในส่วนของ Comparison ดังแสดงในรูป

Screen Shot 2561-02-08 at 1.15.31 AM

จากในรูปที่ผ่านมาจะเห็นว่าโมเดล Deep Learning ให้ค่า F Measure ดีที่สุด เราสามารถดูรายละเอียดโมเดล Deep Learning โดยการคลิกที่เมนู Model ในส่วนของ Deep Learning ด้านซ้ายมือ ดังแสดงในรูป

Screen Shot 2561-02-08 at 1.15.39 AM

และถ้าต้องการดูรายละเอียดเพิ่มเติมสามารถดูได้จาก Confusion Matrix (ดูวิธีการคำนวณได้จาก ตัววัดประสิทธิภาพของโมเดล Classification) โดยการคลิกที่เมนู Performance ในส่วนของ Deep Learning ดังแสดงในรูปซึ่งจะเห็นว่าโมเดลนี้สามารถคาดการณ์คนที่จะ Churn ได้ถูกสูงถึง 51 คนจากทั้งหมด 96 คน

Screen Shot 2561-02-08 at 1.15.43 AM

นอกจากนี้แสดง Lift Chart ได้ดังรูปด้านล่าง

Screen Shot 2561-02-08 at 1.15.59 AM

และในกรณีที่ต้องการแก้ไข process เพิ่มเติมสามารถทำได้โดยการคลิกที่ปุ่ม Open Process ด้านล่างครับ

Screen Shot 2561-02-08 at 1.16.21 AM

Posted in Uncategorized.

Leave a Reply

Your email address will not be published. Required fields are marked *