การรวบรวมข้อมูล
เพื่อให้สอดคล้องต่อวัตถุประสงค์ของการทำโครงงาน จึงจำเป็นต้องมีการศึกษาและรวบรวมข้อมูลเกี่ยวกับเกม ไม่ว่าจะเป็น ประเภทของเกม คะแนนรีวิว และอื่น ๆ
เก็บข้อมูลด้วยการใช้ API ของเว็บไซด์ steamspy.com ซึ่งสามารถอ่านรายละเอียดการใช้งานได้ที่ https://steamspy.com/api.php
ดึงข้อมูลของเกมทั้งหมดในแต่ละหน้า
ใช้ Python ในการเรียกใช้ API steamspy เพื่อดึงข้อมูลของเกมทั้งหมดในหน้าที่กำหนดของเว็บ steamspy
ดึงข้อมูล tags และ genre ของแต่ละเกม
เนื่องจากการใช้ API ข้างต้นไม่มีข้อมูล tags และ genre จึงต้องมีการใช้ API ที่ใช้สำหรับการดึงข้อมูลรายละเอียดของแอปพลิเคชัน โดยนำข้อมูล “appid” ของเกมแต่ละเกมมาใช้
การจัดเตรียมข้อมูล
ลบ fields ที่ไม่ต้องการ: จากข้อมูลที่ได้นั้นที fields อยู่ถึง 20 fields ซึ่งในจำนวนดังกล่าวมี field บางส่วนที่ไม่มีข้อมูลหรือไม่ตรงต่อวัตถุประสงค์ของการทำงาน จึงต้องมีการลบ fields เหล่านั้นออกดังนี้ 'developer', 'publisher', 'score_rank', 'average_forever', 'average_2weeks', 'median_forever', 'median_2weeks', 'userscore', 'languages', 'ccu', 'discount' และ 'owners'
ลบข้อมูลซ้ำ: เพราะข้อมูลที่มีบางส่วนนั้นเป็นข้อมูลซ้ำ จึงต้องมีการลบข้อมูลดังกล่าวออกโดยใช้ appid ในการตรวจสอบว่าข้อมูลดังกล่าวเป็นข้อมูลซ้ำหรือไม่ ถ้าหากเป็นข้อมูลซ้ำให้ลบข้อมูลดังกล่าวออก
ลบเกมที่มี tags และ genre น้อยออก: เนื่องจากเกมบางเกมไม่ได้มีการระบุ tags และ genre ไว้ หรือมีการระบุไว้น้อยเกินไป ทำให้ไม่สามารถเอามาใช้งานได้ จึงได้ทำการลบข้อมูลของเกมที่มี tags และ genre น้อยกว่าหรือเท่ากับ percentile ที่ 5 หรือก็คือ เกมที่มีจำนวน tags และ genre รวมกันน้อยกว่า 3 ออก
ลบ tags ที่ถูกใช้น้อยออก: เนื่องจาก tags บางส่วนนั้นเป็น tags ที่ถูกใช้น้อยไม่ว่าจะเป็นเพราะ เป็น tag ที่เฉพาะเจาะจงเกินไป เป็น tags ที่เป็นเครื่องหมายการค้า(เช่น LEGO, Batman) และอื่น ๆ จึงจำเป็นต้องตัด tags เหล่านั้นออก โดยการลบ tags ที่ถูกใช้น้อยกว่าหรือเท่ากับ percentile ที่ 5 หรือก็คือ tags ที่ถูกใช้น้อยกว่าหรือเท่ากับ 22 ครั้งออก
แปลงข้อมูล tags เป็น list: จากเดิมที่ข้อมูล tags อยู่ในรูปแบบ dictionary ให้อยู่ในรูปแบบ list โดยเก็บเฉพาะ keys ของ dictionary ที่เป็นข้อมูล tags
รวมข้อมูล tags และ genre: เนื่องจากข้อมูล tags และ genre มีความซ้ำซ้อนกัน คือ genre ส่วนใหญ่ถูกใช้เป็นทั้ง tags และ genre ทำให้ข้อมูลมีขนาดใหญ่เกินความจำเป็น จึงได้มีการนำ tags และ genre มารวมกันและตัดข้อมูลที่ซ้ำกันออก
การทำ One-Hot Encoding: จากข้อมูล tags ที่มีซึ่งอยู่ในรูปแบบไฟล์ CSV แต่ข้อมูล tags ทั้งหมดของแต่ละเกมจะอยู่รวมกันในคอลลัมน์เดียว และเป็นข้อมูลแบบ string จึงต้องมีการทำ One-Hot Encoding เพื่อให้สามารถเอาข้อมูลไปประมวลผลได้ง่าย
สูตรการคำนวน rating
Github