K Means Clustering with Python

K Means เป็นอัลกอริทึม Machine Learning แบบ Unsupervised คือไม่ต้องมีการเทรนจากมนุษย์ก่อน ปรกติ Supervised Machine Learning จะต้องกำหนด Input และ Output เพื่อใช้เทรนโมเดล แต่ K Means นั้นกำหนดเพียง Input อย่างเดียวก็พอ ความสามารถของ K Means นั้นคือการแบ่งกลุ่มข้อมูลหรือที่เรียกว่า Clustering เพื่อแบ่งข้อมูลออกเป็น K กลุ่มตามชื่อของมัน โดนแต่ละกลุ่มจะมีจุดศูนย์กลางข้อมูลเรียก Centroid โดย Centroid นี้เกิดจากค่าเฉลี่ย(Means) ตำแหน่งของข้อมูลทุกตัวในกลุ่มข้อมูล โพสนี้จะเป็นการรีวิวแลปโน้ตและใช้โค้ด python ตัวเดียวกับในเว็บ pythonprogramming.net ในการอธิบาย สาเหตุที่เลือกเว็บนี้เพราะมีการสอนเขียนโปรแกรม python ที่เป็นขั้นเป็นตอนเข้าใจง่ายและไม่ใช้ library ในการเทรนโมเดล เหมือนที่เว็บอื่นทำ ซึ่งจะทำให้เข้าใจในตัว K Means ได้มากกว่า โดยอัลกอริทึม K Means มีขั้นตอนดังนี้ กำหนดก่อนว่าจะแบ่งกี่กลุ่มข้อมูล…

Review : Neural Network Demystified part 1

ซีรีย์ชุดนี้จะเป็นการรีวิวและเป็นการโน้ตแลบเป็นเวอร์ชั่นภาษาไทยจากคลิปวิดีโอจากช่อง Welch Labs เกี่ยวกับ Neural Network ในโพสนี้จะพูดเกี่ยวกับ Data และ Architecture สมมติให้ตารางค่า X กับ y โดยที่ X เป็น จำนวนชั่วโมงการนอน และจำนวนชั่วโมงการทบทวนก่อนวันสอบ ส่วน y เป็น คะแนนที่ทำได้   จากตารางด้านบนจะเห็นได้ว่าเราต้องการจะทำนายว่าถ้าเรานอน 8 ชั่วโมงและทบทวนหนังสือ 3 ชั่วโมง จะได้คะแนนสอบเท่าไร โดยเราจะทำนายโดยใช้ข้อมูลที่มีอยู่ก่อนหน้านี้แล้วก็คือในส่วนของเทรนนิ่ง ลักษณะแบบนี้เรียก machine learning แบบ supervised คือต้องมีการให้ input และ output มาล่วงหน้าเพื่อใช้ในการเทรน ปัญหานี้เราจะเรียก Regression problem คือค่าที่ทำนายออกมาเป็นค่าแบบ continuous หรือค่าทศนิยม ไม่ใช่ทำนายออกมาว่าเป็นกรุ๊ป A B หรือ C ถ้าแบบนั้นจะเรียก Classifying problem ทีนี้โมเดล Machine Learning…