การทำ Clustering ใน Power BI

ต.ค. 05 2020
admin

พูดถึง AI หรือปัญญาประดิษฐ์ ในตัว Power BI เองไม่ได้มีฟีเจอร์ในตัวโปรแกรมเอง แต่ถ้าหากผู้ใช้ต้องการใช้ AI ใน Power BI จะมีส่วนที่เรียกว่า AI Insights ซึ่งเป็นส่วนที่เรียกใช้บริการของ Azure ทำอะไรได้บ้าง ในส่วนนี้ ผู้ใช้งานสามารถ วิเคราะห์ความรู้สึก (Sentiment Analysis), การสกัดคำหรือวลีจากข้อความ (Key Phrase Extraction), การวิเคราะห์ภาษา (Language Detection) และการวิเคราะห์หาวัตถุจากภาพ (Image Tagging) ดังนั้น หากผู้ใช้งานต้องการใช้บริการดังกล่าว ต้องสมัครใช้และเสียค่าบริการบน Azure Portal ก่อนที่จะสามารถใช้งานร่วมกับ Power BI ได้
แม้ Power BI จะไม่มีส่วนของ AI ให้ใช้ในโปรแกรม Power BI มีส่วนของ Machine Learning (ML) ไว้ให้เรียกใช้ได้อยู่บ้าง ซึ่งผมได้เคยแนะคนที่ได้มาเรียนด้วยกัน เช่น การวิเคราะห์หา Top การสร้างโมเดล Segment ซึ่งมีอยู่ใน Key Influencer อีกทั้ง การ Analyze ซึ่งเป็น ML ที่ซ่อนอยู่ใน Visual บางประเภท และบน Power BI Service ซึ่งก็นับว่าเป็นประโยชน์อยู่มาก


ในตอนนี้ผมจะมาแนะนำการทำ Clustering ซึ่งเป็น ML ในรูปแบบ Unsupervised ฟีเจอร์นี้ไม่ใช่ของใหม่ Power BI ออกมาหลายปีแล้ว แต่หลายคนไม่เคยได้เห็นหรือไม่เคยได้ใช้
การทำ Clustering หรือการจัดกลุ่มข้อมูล มีประโยชน์ไว้ทำอะไร
การทำ Clustering มีประโยชน์ไว้แบ่งกลุ่มข้อมูลสิ่งที่เราสนใจ จัดข้อมูลให้เป็น กลุ่ม ๆ เพื่อการตัดสินใจ เช่น

  • ในทางธุรกิจ
  • การแบ่งกลุ่ม Segment ลูกค้า / ตลาด / สินค้า / ผู้จัดจำหน่าย ฯลฯ
  • ในทางการแพทย์
  • การแบ่งกลุ่ม ผู้มีความเสี่ยงที่จะติดเชื่อ / เสียชีวิต เป็นต้น

เงื่อนไขของการทำ Clustering ใน Power BI

ก่อนการทำการ Custering ใน Power BI ถ้าเราเข้าใจธรรมชาติของ Clustering แล้วเราก็อาจจะพอเดาออกได้บ้าง เงื่อนไขที่เราต้องจัดเตรียมในการทำ Clustering

  • แผนภาพที่จะต้องใช้ต้องเป็นแผนภาพ Scatter Chart
  • ข้อมูลต้องมีข้อมูลชนิดจำนวน 3 ค่าขึ้นไป

ดาวน์โหลดข้อมูลตัวอย่าง

ก่อนที่จะเริ่มให้เราดาวน์โหลดข้อมูลจากลิงค์ ที่นี่ ไฟล์ที่ดาวน์โหลดชื่อไฟล์ clustering.pbix เป็นไฟล์ Power BI ซึ่งได้เตรียมข้อมูลตัวอย่างและแผนภาพตัวอย่างไว้ให้ท่านได้ทดลองทำด้วยตนเอง

ไฟล์นี้มีตารางข้อมูลอยู่ 1 ตารางชื่อ Aids2 ซึ่งเป็นตัวอย่างข้อมูลที่ผมได้มาจาก Pydataset ในตารางนี้ประกอบด้วย คอลัมน์ข้อมูล 7 คอลัมน์ คือ age, death, diag, sex, state, status และ T.categ ตามลำดับ คอลัมน์ที่เป็นจำนวนตัวเลขมีอยู่ 3 คอลัมน์คือ คอลัมน์ age, death, diag

ตัวอย่างนี้เราจะสร้างการแผนภาพวิชวลเพื่อแบ่งกลุ่ม (cluster) ระหว่างความสัมพันธ์ของค่าเฉลี่ยการตรวจวินิจฉัยพบการติดเชื่อ กับค่าเฉลี่ยการเสียชีวิต แยกตามอายุ

สร้างวิชวล

ให้เราสร้าง Visual ใหม่โดยการกดเลือก Scatter Plot จากหน้าต่าง Visualization Pane จากทางขวามือ

สร้าง Scatter Plot Visualization

เมื่อเลือกวิชวลที่ต้องการแล้ว ให้ลงไปดูในเขตข้อมูล (Field Tab) ใต้ชุดวิชวล ให้เราป้อนข้อมูลวิชวลด้งนี้ ลาก diag มาไว้ในช่องแกน X (X Axis) ลาก death มาไว้ช่องแกน Y (Y Axis) และ ลาก age มาไว้ในช่อง details ดังภาพ

ป้อนข้อมูลที่ต้องการวิเคราะห์ในเขตข้อมูล Scatter Plot

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

แต่โดยปกติของ Power BI เมื่อเราป้อนข้อมูลประเภทจำนวนในเขตข้อมูล ข้อมูลจำนวนจะถูกแปลงด้วยฟังชั่นผลรวมทันทีด้วย SUM Function นั่นหมายความว่าข้อมูลในเขตข้อมูลทั้ง diag และ death ตอนนี้เราจะมีผลรวมของจำนวนจากตารางข้อมูล แต่ละอายุดังที่เห็นในภาพวิชวล

แผนภาพจากวิชวล Scatter Plot

แต่เราต้องการที่จะหาความสัมพันธ์ของค่าเฉลี่ยของการวินิจฉัยพบเชื่อกับค่าเฉลี่ยจำนวนผู้เสียชีวิต แยกตามกลุ่มอายุ เราจำเป็นต้องแปลงค่า diag และ death ในเขตข้อมูลให้เปลี่ยนไปใช้ฟังชั่นค่าเฉลี่ย (Average) แทน ดังภาพ

แปลงค่า diag และ death ในเขตข้อมูลให้เป็นค่าเฉลี่ย

เมื่อเราแปลงค่า diag และ death เป็นค่าเฉลี่ยแล้ว ในเขตข้อมูลจะแทนที่ด้วยคำว่า ค่าเฉลี่ยของ diag (average of diag) และ ค่าเฉลี่ยของ death (average of death) ดังภาพ

Average of data

แผนภาพวิชวลตอนนี้จะเปลี่ยนไปแล้วจากเดิม เราจะเห็นแผนภาพที่เกิดจากค่าเฉลี่ย ไม่ใช่ค่าผลรวม ดังนี้

Scatter Chart ความสัมพันธ์ของค่าเฉลี่ย diag กับ ค่าเฉลี่ย death

ตอนนี้ข้อมูลและวิชวลเราพร้อมที่จะทำการแบ่งกลุ่มแล้ว

การแบ่งกลุ่มด้วยการ Clustering

จากแผนภาพวิชวลที่เราได้ ตอนนี้ให้เราไปที่เมนูลัดของของวิชวล ซึ่งปรากฏเป็นจุด 3 จุดอยู่มุมขวาบนของวิชวล Scatter Plot

เมนูลัดของวิชวล

ให้เรากดเลือก Automatically find clusters เพื่อทำการแบ่งกลุ่มแบบอัตโนมัต โปรแกรมจะแสดงหน้าต่างเพื่อสอบถามข้อมูลประกอบการสร้างกลุ่มจากผู้ใช้ ให้ผู้ใช้ตั้งชื่อตัวแปรของกลุ่มโดยปกติโปรแกรมจะเริ่มต้นจากชื่อของคอลัมน์ข้อมูลจากเขตข้อมูลที่นำมาแบ่งกลุ่ม และเพิ่มวงเล็บคำว่า cluster ซึ่งในตัวอย่างนี้ โปรแกรมสร้างตัวแปรชื่อ age (cluster) เขตข้อมูลหรือfield ที่ต้องการจะนำมาแบ่งกลุ่ม รายละเอียดของกลุ่มที่ผู้ใช้อาจต้องการบันทึกเพื่ออธิบายกลุ่มนี้ และสุดท้าย จำนวนของกลุ่มที่ต้องการจำแนก ถ้าผู้ใช้ไม่ระบุ โปรแกรมจะทำการจำแนกกลุ่มแบบอัตโนมัต หมายความว่าโปรแกรมจะวิเคราะห์หาจำนวนกลุ่มให้เองจากข้อมูลที่ป้อน ตอนนี้ให้เรากดตกลง เพื่อให้โปรแกรมสร้างกลุ่มและจำแนกจำนวนกลุ่มแบบอัตโนมัติ

เมื่อเรากดตกลงแล้วโปรแกรมจะสร้างคอลัมน์ข้อมูลใหม่ชื่อคอลัมน์ age (cluster) และนำคอลัมน์ข้อมูลใหม่นี้มาใส่ไว้ในเขตข้อมูลของวิชวล Scatter Plot นี้ให้เราเลย ดังภาพ

ตอนนี้เราได้แผนภาพ Scatter Plot ที่มีการแบ่งกลุ่มออกเป็นกลุ่ม ดังภาพ

แผนภาพ Scatter Plot ที่มีการแบ่งกลุ่ม

แผนภาพนี้ ผู้เขียนคงไม่อธิบายเกี่ยวกับข้อมูลว่าอะไรทำไม เพราะไม่ใช่ประเด็นของบทความนี้ แต่บทความนี้ต้องการแบ่งปันความรู้วิธีการจำแนกกลุ่ม (clustering) ด้วยการใช้ Power BI กับแผนภาพ Scatter Plot

ข้อสังเกตุ

  • แผนภาพที่ใช้ต้องเป็น Scatter Plot เท่านั้น
  • เขตข้อมูลต้องมีเพียง 3 รายการ คือ แกน X แกน Y และ details เมนูการแบ่งกลุ่มจึงจะปรากฎบนเมนูลัดบทวิชวล
  • ก่อนการสร้างกลุ่มต้องไม่มีข้อมูลในช่องข้อมูล Legend
  • คำสั่งการแบ่งกลุ่มนี้ปรากฎอยู่บนเพียงเมนูลัด ไม่มีบนริบบอน
  • ผู้ใช้สามารถกำหนดจำนวนกลุ่มได้ตอนจำแนกกลุ่ม หรือกลับไปแก้ไขคอลัมน์ใหม่ที่ Power BI สร้างขึ้นเพื่อเปลี่ยนแปลงจำนวนกลุ่ม โดยเข้าทางเมนลัดของคอลัมน์นั้น เลือกแก้ไข

หวังว่าจะเป็นประโยชน์ต่อคนที่สนใจเรื่องการทำ Clustering ครับ

Admin: AJ Tom

#bigdata #powerbi #tableau #dataanalytics #dataanalysis #thai #thailand