top of page

Forecasting Model ด้วย Machine Learning

"Forecasting Model ด้วย Machine Learning" เมื่อพูดถึง Forecasting ทำนายสิ่งใหม่ในอนาคต ส่วนใหญ่จะนึกถึงการใช้หลัก Time Series หรือการใช้อนุกรมเวลาของสิ่งนั้น เพื่อทำนายตัวเองในอนาคต ซึ่งไม่ใช่เรื่องใหม่แต่อย่างใด เพราะเป็นหลักการที่ร่ำเรียนมากันหลายยุค หลายสมัย และก็ใช้การได้ในบางกรณี ปัจจุบัน เมื่อเทคโลโนยีเปลี่ยนไป และมี Data Science เกิดขึ้น ทำให้การทำ Forecasting มีแนวทางที่ละเอียดขึ้น โดยมีการใช้ Machine Learning เข้ามาทำนาย โดยใช้ Algorithm ประเภท Regression ซึ่งบทความนี้จะขออธิบายว่า แล้ว Time-series แตกต่างกับ Regression อย่างไร มาดูหลักการ Time series กันก่อน การทำ Time series คือการเอาอดีตมาทำนายอนาคต แต่ก่อนอื่นต้องเข้าใจก่อนว่า ไม่ใช่อดีตตัวมันเองทุกอย่าง จะทำนายอนาคตได้ ซึ่งหลักทั่วไปแล้ว ข้อมูลในอดีตจะต้องมีคุณสมบัติดังต่อไปนี้ แนวโน้ม (Trend) คือ การเคลื่อนไหวของข้อมูลที่ต่อเนื่องกันในระยะยาวอย่างชัดเจน ไม่ว่าจะขึ้นหรือลง และลักษณะแนวโน้ม นั้นอาจจะมีแนวโน้มเป็นเส้นตรงหรือเส้นโค้งก็ได้ ฤดูกาล (Seasonal) คือ การเปลี่ยนแปลงของข้อมูลที่เกิดขึ้นเนื่องจากอิทธิพลของ ฤดูกาล หรือช่วงเวลา ซึ่งจะเกิดขึ้นซ้ำๆ กัน ในช่วงเวลาเดียวกัน อาจจะเป็น รายเดือน รายไตรมาส หรือรายปีก็ได้ วัฏจักร (Cyclical) คือ การเคลื่อนไหวของข้อมูลที่มีลักษณะซ้ำ กัน คล้ายกับ Seasonal แต่มีระยะเวลารอบนานกว่า เช่น 4 ปี หรือ 10 ปี ผิดปกติ (Irregular) คือ การเคลื่อนไหวของข้อมูลที่ไม่มีรูปแบบแน่นอน หรือเป็นเหตุการณ์ที่ผิดไปจากปกติ โดยไม่ได้มีการคาดการณ์ไว้ล่วงหน้า โดยที่ Trend และ Seasonal จะเป็นองค์ประกอบหลัก ซึ่งถ้าเกิดเจ้า 2 ตัวนี้ ก็จะไม่สามารถใช้ Time series forecasting ได้ ตัวอย่างกราฟที่เห็นภาพของ Trend และ Seasonal ที่ชัดเจน
สำหรับ Regression นั้น คือ การหาความสัมพันธุ์ของตัวแปรต่างๆ ไม่ว่าจะเป็นอดีตของตัวมันเอง หรือตัวแปรอื่นๆ ซึ่งไม่ได้จำกัดว่าจะต้องมีกี่ตัวแปร หรือจะต้องมีอนุกรมเวลาในลักษณะใด โดยการทำ Regression ก็มีหลากหลาย Algorithm ให้เลือกใช้มากมาย เริ่มต้นจาก Multiple Linear Regression (MLR) ที่รู้จักกันดี คือการหาความสัมพันธ์เชิงเส้นของตัวแปรหลายๆ ตัว (หรือที่นักวิเคราะห์ชอบเรียกกันว่าการถดถอยเชิงเส้นพหุคูณ) ซึ่งมีลักษณะของสมการดังนี้ y คือ สิ่งที่เราต้องการทำนาย
x คือ ตัวแปรต่างๆ ที่ใช้ตั้งต้นเพื่อทำนาย ซึ่งจะเป็นตัวมันเองในอดีต หรือตัวแปรอื่นๆ ที่เกี่ยวข้องก็ได้ MLR เป็น Regression ที่ง่ายที่สุด และสามารถทำได้ใน Microsoft Excel นอกจากจะทำให้ทำ Model ได้แล้ว ยังสามารถบอกรายละเอียดของแต่ละตัวแปรที่เกี่ยวข้องอีกด้วยว่ามีความสำคัญต่อกันอย่างไร อย่างไรก็ตาม ข้อจำกัดของ MLR คือเป็นความสัมพันธ์แบบเชิงเส้นเท่านั้น ซึ่งเมื่อโจทย์ไม่ได้เป็นเชิงเส้น หรือมีความซับซ้อนมากขึ้น MLR อาจจะไม่ตอบโจทย์ ก็ต้องไปพึ่ง Algorithm ที่มีความซับซ้อนมากขึ้น เช่น Artificial Neural Network, Multivariate Adaptive Regression Splines, Gradient Boosting, Extra Tree, Random Forests เป็นต้น โดยแต่ละ Algorithm จะมีรายละเอียดที่มาที่ไป และวิธีการปรับค่าภายในต่างกัน จึงเป็นที่มาของการใช้ Machine Learning ในการทำ Forecasting อ่านแค่ทฤษฎีแบบนี้ อาจจะยังไม่เห็นภาพ เรามาดูเคสจริงกันดีกว่าค่ะ นั้นคือการพยากรณ์สภาพอากาศ เราอาจจะมองว่า สภาพอากาศเป็น Time-series เพราะมันก็เกิดขึ้นเป็นอนุกรมเวลา ซ้ำๆ เป็น Cycle หรือมี Season ที่ชัดเจน แต่ในความเป็นจริง สภาพอากาศเปลี่ยนแปลงไปตลอดเวลา เกิดจากอิทธิพลของตัวแปรที่เกี่ยวข้อรอบข้างมากมายไม่ว่าจะเป็นความชื้น ความดัน แรงลม UV Index รวมไปถึงอนุกรมเวลาของตัวมันเองในอดีตอีกด้วย ยิ่งไปกว่านั้นความคาดหวังต่อการพยากรณ์อากาศทำให้จำเป็นต้องมี Model ที่ชัดเจน แม่นยำ และ Update ได้ตลอดเวลา เพราะในการใช้งานจริง ความคาดเคลื่อนเพียงเล็กน้อย อาจก่อให้เกิดความผิดพลาดหรืออันตรายเกิดขึ้นได้ ดังนั้นการพยากรณ์อากาศในปัจจุบันจึงใช้ Machine Learning ประเภท Regression มาทำ Forecasting Model แทนที่จะเป็น Time-series Model ตัวอย่าง Monthly Weather History Graph ของกรุงเทพมหานคร ในเดือนมกราคม 2561 (ที่มาของกราฟ : www.wunderground.com)
ซึ่งจากกราฟ เราจะคาดเดาได้ว่า Barometric Pressure มีผลต่ออุณหภูมิอย่างมีนัยสำคัญ
อย่างไรก็ตาม ข้อจำกัดของการทำ Regression คือ ต้องแน่ใจว่าตัวแปรนั้นๆ มีผลต่อการทำ Model และเมื่อมีข้อมูลไม่ครบ ก็ทำให้ไม่สามารถสร้าง Model ที่มีความแม่นยำได้มากพอ ยิ่งไปกว่านั้นการสร้าง Machine Learning จำเป็นต้องเลือก Algorithm ที่เหมาะสมที่สุดในแต่ละปัญหา และต้องสามารถปรับจูน Parameter ต่างๆ และ Interpret Model ได้อย่างชัดเจนอีกด้วย ซึ่งต้องใช้ความเชี่ยวชาญของ Data Scientist ผู้ออกแบบ Model ปัจจุบัน Time-series model ที่ถูกใช้งานบ่อยมากที่สุดตัวหนึ่ง คือ Moving Average คือการดูค่าเฉลี่ยการเคลื่อนไหวของอนุกรมเวลา ซึ่งใช่เป็นเทคนิคหนึ่งในหมู่นักเล่นหุ้น Coraline หวังว่า บทความนี้จะช่วยตอบคำถามเกี่ยวกับ Forecasting กับ Machine Learning ได้ ทั้งนี้คำถามนี้เกิดขึ้นเพราะความไม่เข้าใจเกี่ยวกับ Machine Learning ซึ่งบางท่านอาจคิดว่ามันต้องฉลาดพอที่จะเข้าใจทุกอย่าง นั้นเป็นความเข้าใจที่ไม่ถูกต้อง เพราะ Machine Learning จะฉลาดได้ ต้องอาศัย “คน” ไปทำให้เขาฉลาด และที่สำคัญที่สุดคือ Input หรือ ข้อมูลที่ใส่ไปให้ Machine Learn นั้น ต้องมีคุณภาพมากพอที่จะเป็นต้นแบบที่ดี เพื่อให้ได้ผลลัพธ์ที่ดีในที่สุด แม้ Data Science อาจจะเป็นเรื่องใหม่ และมีรายละเอียดมากมาย แต่มันไม่ยากเกินความพยายามที่จะเรียนรู้ ซึ่งหากต้องการเรียนรู้มันจริงๆ สิ่งที่สำคัญที่สุด คือ พื้นฐานที่มั่นคง เพราะเมื่อมีพื้นฐานที่มั่นคงแล้ว ก็จะสามารถต่อยอดไปได้ไกล แข็งแกร่ง รวดเร็ว และชัดเจนได้อย่างแน่นอน

Forecasting Model ด้วย Machine Learning

"Forecasting Model ด้วย Machine Learning" เมื่อพูดถึง Forecasting ทำนายสิ่งใหม่ในอนาคต ส่วนใหญ่จะนึกถึงการใช้หลัก Time Series...

bottom of page