Simple linear regression กับการทำนาย

Regression analysis หรือ ถ้าจะพยายามแปลเป็นไทย ก็คือ … การวิเคราะห์เชิงถดถอย!! เอ้า ยิ่งอ่าน ยิ่ง งง ใช่มั้ยคะ อย่าไปสนใจเลยกับคำแปลภาษาไทย เจ้าโมเดล Machine learning ใครๆ ก็เรียกกัน Regression ก็คงไม่แปลกถ้าเราจะเรียกตาม ว่ากันไปตามสมัยนิยมแล้วกัน 🙂

Regression Analysis คือ อะไร?

  • Regression analysis เป็นหนึ่งใน Algorithm อย่างง่ายของ Machine Learning
  • Regression analysis จัดอยู่ในกลุ่มของ Machine Learning แบบมีผู้สอน (Supervised Learning) … ถ้าใคร งง ส่วนนี้ ขอให้กลับไปอ่านในบทความเรื่อง “Introduction to Machine Learning” ก่อนนะคะ
  • regression analysis มีหลายรูปแบบ ขึ้นอยู่ฟังก์ชันทางคณิตศาสตร์ที่ใช้ เพื่อให้ได้ค่าการทำนายที่ดีที่สุด เช่น  Linear regression,  Polynomial regression หรือ Logistic regression เป็นต้น … อย่าเพิ่งตกใจ เดี๋ยวจะค่อยๆ อธิบายให้ฟังค่ะ (แต่วันนี้ขอเริ่มที่ตัวแรกคือ  linear regression)
  • Regression ส่วนใหญ่จะให้ค่าทำนาย เป็น Continuous value หรือ ค่าต่อเนื่อง  (สามารถนำมาใช้ทำนาย ค่าราคาของหุ้น) แต่ก็มี Regression บางตัวที่จะให้ค่าทำนายเป็น  Discrete value หรือ ค่าเชิงเส้น/ ไม่ต่อเนื่อง (นำมาใช้ทำนาย ค่าทิศทางของหุ้น)

 

Regression Analysis ทำงานอย่างไร?

พูดง่ายๆ สั้นๆ เลยแล้วกันนะคะ การทำงานก็คือ … พยายาม “หาเส้นที่ฟิตไปกับข้อมูล” ด้ดีที่สุด ลองไปดูตัวอย่างกันจะได้เข้าใจได้ง่ายขึ้น

ตัวอย่างของปัญหาของ Regression Analysis

สมมุติว่าเราต้องการสร้าง  regression ในการทำนายค่าเงินเดือนที่เราน่าจะได้รับ จากอายุการทำงาน (ปี)  
ข้อมูลมูลที่เราสามารถเก็บได้มี ดังนี้

screen-shot-2017-01-19-at-22-44-57

เราอาจจะคิดว่า มันจะไปยากอะไร ที่จะทำนายอัตรเงินเดือน จากประสบการณ์ทำงาน … ยิ่งประสบการณ์มาก เงินเดือนก็ยิ่งสูงน่ะสิ … แต่ในความเป็นจริง มันไม่ได้เป็นอย่างนั้น! ดูได้จากกราฟด้านบน จะเห็นได้ชัดเจนว่า จริงอยู่ ว่า ถึงประสบการณ์ทำงานสูง แนวโน้มเงินเดือนจะยิ่งสูง แต่ เดี๋ยวก่อนค่ะ  … ยังมีหลายจุดเหมือนกัน ที่แม้ว่าประสบการณ์ทำงานจะมากกว่า แต่เงินเดือนกลับน้อยลง (เหมือน เอาเรื่องจริงมาล้อเล่นกัน T^T) … ตัวอย่างเช่น เงินเดือน ณ ประสบการณ์ 6.9 ปี กลับน้อยกว่า 6 ปี หรือ อีกตัวอย่างที่เห็นได้ชัดก็คือ ประสบการ 9  ปี กลับน้อยกว่า 8.2 ปี 

ปัญหาก็คือ … แล้วเราจะแน่ใจได้ยังไงว่า จากประสบการณ์ที่เรามี จะได้เงินเดือน เท่าไหร่? ยกตัวอย่างเช่น ประสอบการณ์ 2.2 ปี เงินเดือนควรจะเป็นเท่าไหร่ ?

Fit ข้อมูลเพื่อสร้างโมเดลทำนายด้วย Simple linear regression analysis

เพื่อให้เราสามารถทำนายเงินเดือนได้ ในที่นี้ เราจะมาลองใช้โมเดลตัวที่ง่ายที่สุดของ Regression ก่อนเลยค่ะ นั่นก็คือ  … “Linear Regression” ซึ่งก็คือ การ Fit ข้อมูลด้วย “เส้นตรง หรือ Linear” นั่นเองค่ะ

ในการหาเส้นตรงที่จะใช้ในการสร้างโมเดลทำนายนี้ จะต้องมีการคำนวณเพื่อหาฟังก์ชันเส้นตรง ที่จะฟิต (พอดี) ไปกับข้อมูลได้ดีที่สุด … ถ้าจำกันได้ ฟังก์ชันเส้นตรง พื้นฐาน ก็คือ 

screen-shot-2017-01-19-at-22-54-46

การจะได้มาซึ่ง เส้นตรง ที่เหมาะสมที่สุด จะต้องมีการคำนวณหลายๆ รอบ เพื่อ หาค่าที่ดีที่สุด แต่ในที่นี้ จะไม่ขอลงรายละเอียดการคำนวณนะคะ เนื่องจากอาจจะเข้าใจยาก อยากจะทำเป็นวีดีโอมากกว่าค่ะ จะได้อธิบายได้เข้าใจยิ่งขึ้น 🙂

มาดูกันดีกว่าค่ะ ว่าเส้นตรงที่ “ดีที่สุด” ที่ Linear regression หาได้ หน้าตาเป็นยังไง?

screen-shot-2017-01-19-at-23-21-21

จากรูป จะเห็นว่า Linear regression จะพยายามคำนวณหาเส้นตรง ที่สามารถ “ฟิต” ไปกับข้อมูลได้ดีที่สุด คำนวณหลายๆ เส้น (เส้นประ) เป้าหมายคือ ให้ค่า Error ลดต่ำลงเรื่อยๆ และ สุดท้าย โมเดลจะเลือก เส้นตรงที่มีค่า  Error ในการทำนายต่ำที่สุด ซึ่งก็คือ เส้นสีแดงทึบในรูปนั่นเอง! 

เมื่อได้เส้นตรงที่ดีที่สุดแล้ว เมื่อต้องการทำนาย ก็จะทำการคำนวณจากสมการเส้นตรงนั้น ดังรูป จะเห็นว่า ประสบการณ์ 2.5  ปี linear regression model ทำนายว่าจะได้เงินเดือน 49,417 ดอลล่า นั่นเองค่ะ  ….

จบแล้วนะคะ การใช้ Linear regression ทำนายค่า ไม่ยากเลยใช่มั้ยคะ? แล้วถ้าเราอยากจะลองใช้เจ้า Machine learning  โมเดลตัวนี้มาทำนายในส่วนของหุ้นล่ะ คิดว่ามันจะทำได้ดีแค่ไหน? … ในบทความหน้าจะนำตัวอย่างการใช้โมเดลตัวนี้ทำนายหุ้นมาให้ดูกัน!

 

 

 

 

 

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s