ลอง analysis ข้อมูลของ Member BNK48 จากข้อมูล Facebook กันเถอะ
สวัสดีครับทุกคน เสาร์อาทิตย์เบื่อๆไม่มีอะไรทำและเนื่องจากเห็นพี่คนหนึ่งในกลุ่ม bnk48 ทำการเก็บ stats ของยอดไลค์เพจ ไลค์โพส ของสมาชิกแต่ละคนของ bnk48 ตามเว็บนี้เลย
แค่นำ 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