ลอง analysis ข้อมูลของ Member BNK48 จากข้อมูล Facebook กันเถอะ

K.
Mattick
Published in
2 min readApr 1, 2018

สวัสดีครับทุกคน เสาร์อาทิตย์เบื่อๆไม่มีอะไรทำและเนื่องจากเห็นพี่คนหนึ่งในกลุ่ม bnk48 ทำการเก็บ stats ของยอดไลค์เพจ ไลค์โพส ของสมาชิกแต่ละคนของ bnk48 ตามเว็บนี้เลย

https://www.iqueuez.com/app/bnk48/facebook/1/2018-03-14/2018-04-01/total_fans/line_chart

แค่นำ data มา visualization ให้เห็นเฉยๆ มันก็ดีอยู่หรอก แต่ว่าเรามีวิธีใช้ข้อมูลให้เกิดประโยชน์มากกว่านี้มั้ย แน่นอน คำตอบคือ เราทำ data analysis ข้อมูลกันดีกว่า

*สำหรับคนที่อยากรู้ว่า analyze ยังไงก็ข้ามไปอ่านย่อหน้าสุดท้ายเลย*

โจทย์คราวนี้คือ

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

ไปดูรูปกันเลยจ้าาา

ไล่สีจากซ้ายไปขวานะครับ

จะเห็นได้ว่า

ส่วนใหญ่ที่มีผลต่อยอดโอตะหน้าใหม่ที่เข้ามากดไลค์ในเพจนั้น

อันดับหนึ่งเกิดจากยอดไลค์ในโพสของเมมเบอร์แต่ละคน

รองลงมาก็จะเป็นยอดกด Love และ Angry

ข้อมูลแบบตาราง

จากข้อมูลตัวนี้เราสามารถเห็นอะไรได้บ้าง

เมมเบอร์บางคนมียอดไลค์เพจ เพิ่มขึ้นโดยการแชร์โพสของตัวเมมเบอร์เอง

เมมเบอร์บางคนมียอดไลค์เพจ เพิ่มขึ้นโดยการกดไลค์หรือกด Love

ข้อมูลบางส่วนก็บอกเราได้ว่าเมมเบอร์มีลักษณะนิสัยแบบไหน เช่นเจ้าปู๊บ มายเอดะ ต๋า และ คนคูล อาจจะบอกได้ว่ามีนิสัยกวนๆ ชอบทำตัวฮาๆ

ข้อมูลบางส่วนก็บอกเราได้ว่าเมมเบอร์มีหน้าตาที่คนส่วนใหญ่ชอบ เช่น แม่บ้านของเรา อุ๋งๆ คุณอ๊บ มิลิน แพรวา หญิงโม ลุง และ คุณหนูเคท

เอาเป็นว่า มันเยอะะะะ มากกกกก ผมอธิบายไปประมาณ 4 หน้า A4 ก็คงจะไม่หมด

ทิ้งท้าย

การทำ analytic ตัวนี้ออกมานั้น อยากให้ทุกคนที่เข้ามาอ่านได้เห็นความสำคัญของข้อมูลที่มีอยู่แล้ว ว่าเราสามารถเรียนรู้อะไรได้จากข้อมูลที่มีอยู่ แต่การทำ analytic ครั้งนี้ ยังมีจุดอ่อนชัดๆคือ จำนวนของข้อมูลยังน้อย มีตัวอย่างข้อมูลแค่ 15 วันเท่านั้น หวังว่าอีกซัก 3 เดือนน่าจะมีข้อมูลที่ทำให้ model ตัวนี้มีความน่าเชื่อถือมากยิ่งขึ้น

ท้ายนี้คือวิธีการคลีนข้อมูลรวมถึงการขึ้น model ต่างๆ

Javascript

ขั้นเริ่มแรกก็จะทำการคลีนข้อมูลที่ได้มาจากเว็บ iqueuez เพราะข้อมูลที่ได้มานั้นยังไม่สามารถใช้งานได้ โดยรูปแบบจะเป็น JSON ไฟล์ ในเมื่อได้ JSON ไฟล์มา ผมไม่ถนัด คลีน JSON โดยใช้ python ก็เลยเขียน javascript ใช้ในการคลีน data ปัญหาที่พบก็คือ missing value ในบางวันนั้นเมมเบอร์ก็ไม่ได้ทำการโพสอะไรเลย เราจำเป็นต้องใส่ค่าเพิ่มไปให้เป็น 0 แทนที่จะเป็น null อีกส่วนก็คือ 1 วันโพสหลายครั้ง วิธีแก้คือรวมค่าจากแต่ละโพสใน 1 วันเข้าด้วยกัน จากนั้นส่งไฟล์ JSON ไปทำ model โดยใช้ python และ library sklearn

Python

เมื่อได้ข้อมูลที่คลีนเรียบร้อยแล้วก็จะทำการสร้าง model regression โดยใช้ linear regression ธรรมดาๆ ค่า X คือ ข้อมูลเกี่ยวกับโพสของ เมมเบอร์ทั้งหมด ส่วน ค่า Y คือ จำนวนการกดไลค์ของโอตะหน้าใหม่ โดยสิ่งที่เราสนใจจะเป็นค่า coeffiency ของ model ที่เราสร้างจากข้อมูล โดยเราจะแยกข้อมูล 1 คนต่อ 1 model จากนั้นค่อยนำค่า coeffiency ออกมาตีความหมายอีกทีหนึ่งโดยพลอตลงใน spreadsheet ก็จบการทำ data analytic เพียงแค่นี้

สำหรับโค้ดนั้น เดี๋ยวจะอัพโหลดขึ้น github ให้นะครับ แต่ขอเวลานิดหนึ่งในการแก้โค้ดให้มันเหมาะสมนิดหนึ่ง ไม่น่าจะเกินเที่ยงน่าจะมีให้โหลดกันไปเล่นได้

https://github.com/mattick27/MediumML/tree/master/analysis_bnk48

--

--

K.
Mattick

Founder & Head of research center@ VulturePrime Co., Ltd.