Simple Linear Regression in Python

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

y = a + bx

โดย y คือตัวแปรตาม (dependent variable) ส่วน x คือตัวแปรอิสระ (independent variable) ค่าสัมประสิทธิ์ (coefficient) a คือค่าของ y ตอนที่ x มีค่าเป็น 0 ดังนั้นเราสามารถเรียกได้ว่าเป็นจุดตัดแกน y หรือ y intercept นั่นเอง ส่วนค่าสัมประสิทธิ์ b คือความชัน (slope) ของเส้นตรงนั่น หรือค่าที่เปลี่ยนแปลงไปของ y เมื่อมีการเปลี่ยนแปลงที่ x ดูรูปข้างล่างนี้ประกอบ

สำหรับใครที่สนใจอยากรู้ว่าคำนวณอย่างไร ก็แนะนำให้อ่านการสอนของ Stefan Waner และการสอนของ Stephen Mak เพราะผมอ่านแล้วเข้าใจกว่าอ่านใน Wiki แหละ 😛

เอาล่ะ ไม่ต้องเขียนให้มากความ จัดโค้ดไปเลยดีกว่า ดาวน์โหลดได้ที่นี่ [Simple Linear Regression in Python] ข้างในจะประกอบไปด้วย 2 ไฟล์ดังนี้

  1. ไฟล์หลัก: main.py
  2. ไฟล์คลาส LinearRegression: linreg.py

โดยโปรแกรมจะคำนวณค่า a, b, coefficient of determination, coefficient of correlation, standard error of estimate, และ mean squared error of estimate ออกมาให้ครับ

โปรแกรมนี้เป็นโปรแกรมเกือบจะโปรแกรมแรกเลยที่เขียนด้วย Python เองเต็มๆ แบบว่าอยากทำงานและก็อยากศึกษาภาษาใหม่ไปด้วยในตัวก็เลยลองดู 🙂 เนื่องจากปกติเขียนแต่ภาษา C/C++ หรือ Java พอมาเขียน Python ก็เลยต้องเขียนไปบ่นไป ฮะๆ คิดว่าถ้าลองเขียนไปอีกสักพักน่าจะปรับตัวได้ แล้วก็ฝีมือในการเขียน Python ก็ยังอ่อนด้อยอยู่มาก ถ้าใครมีอะไรเพิ่มเติม ดุ ด่า เกี่ยวกับโค้ดก็ยินดีเลยครับ หรือจะเอาไปพัฒนาต่อก็ไม่ว่ากัน

ปล. โค้ดในบล็อกนี้แปลงมาจากโค้ด C++ ของ David C. Swaim II เกือบทั้งดุ้นเลยนะครับ หุหุ