You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ML-For-Beginners/translations/th/7-TimeSeries/1-Introduction/README.md

199 lines
25 KiB

<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "662b509c39eee205687726636d0a8455",
"translation_date": "2025-09-05T21:20:42+00:00",
"source_file": "7-TimeSeries/1-Introduction/README.md",
"language_code": "th"
}
-->
# บทนำสู่การพยากรณ์ข้อมูลอนุกรมเวลา
![สรุปข้อมูลอนุกรมเวลาในรูปแบบสเก็ตโน้ต](../../../../sketchnotes/ml-timeseries.png)
> สเก็ตโน้ตโดย [Tomomi Imura](https://www.twitter.com/girlie_mac)
ในบทเรียนนี้และบทเรียนถัดไป คุณจะได้เรียนรู้เกี่ยวกับการพยากรณ์ข้อมูลอนุกรมเวลา ซึ่งเป็นส่วนที่น่าสนใจและมีคุณค่าของเครื่องมือในคลังของนักวิทยาศาสตร์ ML แม้ว่าจะไม่เป็นที่รู้จักเท่าหัวข้ออื่น ๆ การพยากรณ์ข้อมูลอนุกรมเวลาเปรียบเสมือน 'ลูกแก้ววิเศษ': โดยอ้างอิงจากข้อมูลในอดีต เช่น ราคา คุณสามารถคาดการณ์มูลค่าในอนาคตได้
[![บทนำสู่การพยากรณ์ข้อมูลอนุกรมเวลา](https://img.youtube.com/vi/cBojo1hsHiI/0.jpg)](https://youtu.be/cBojo1hsHiI "บทนำสู่การพยากรณ์ข้อมูลอนุกรมเวลา")
> 🎥 คลิกที่ภาพด้านบนเพื่อดูวิดีโอเกี่ยวกับการพยากรณ์ข้อมูลอนุกรมเวลา
## [แบบทดสอบก่อนเรียน](https://ff-quizzes.netlify.app/en/ml/)
นี่เป็นสาขาที่มีประโยชน์และน่าสนใจซึ่งมีคุณค่าต่อธุรกิจ เนื่องจากสามารถนำไปใช้แก้ปัญหาเกี่ยวกับการตั้งราคา การจัดการสินค้าคงคลัง และปัญหาในห่วงโซ่อุปทาน แม้ว่าจะมีการนำเทคนิคการเรียนรู้เชิงลึกมาใช้เพื่อให้ได้ข้อมูลเชิงลึกมากขึ้นในการพยากรณ์ประสิทธิภาพในอนาคต แต่การพยากรณ์ข้อมูลอนุกรมเวลายังคงเป็นสาขาที่ได้รับอิทธิพลอย่างมากจากเทคนิค ML แบบคลาสสิก
> หลักสูตรเกี่ยวกับข้อมูลอนุกรมเวลาที่มีประโยชน์จาก Penn State สามารถดูได้ [ที่นี่](https://online.stat.psu.edu/stat510/lesson/1)
## บทนำ
สมมติว่าคุณดูแลระบบมิเตอร์จอดรถอัจฉริยะที่ให้ข้อมูลเกี่ยวกับความถี่และระยะเวลาการใช้งานในช่วงเวลาต่าง ๆ
> จะเป็นอย่างไรถ้าคุณสามารถคาดการณ์มูลค่าในอนาคตของมิเตอร์ตามกฎของอุปสงค์และอุปทาน โดยอ้างอิงจากประสิทธิภาพในอดีต?
การคาดการณ์ช่วงเวลาที่เหมาะสมในการดำเนินการเพื่อให้บรรลุเป้าหมายเป็นความท้าทายที่สามารถแก้ไขได้ด้วยการพยากรณ์ข้อมูลอนุกรมเวลา แม้ว่าการคิดค่าบริการเพิ่มขึ้นในช่วงเวลาที่มีความต้องการสูงอาจไม่ทำให้ผู้คนพอใจ แต่ก็เป็นวิธีที่แน่นอนในการสร้างรายได้เพื่อทำความสะอาดถนน!
มาสำรวจประเภทของอัลกอริทึมข้อมูลอนุกรมเวลาและเริ่มต้นสร้างโน้ตบุ๊กเพื่อทำความสะอาดและเตรียมข้อมูลกัน ข้อมูลที่คุณจะวิเคราะห์นำมาจากการแข่งขันการพยากรณ์ GEFCom2014 ซึ่งประกอบด้วยข้อมูลการใช้ไฟฟ้ารายชั่วโมงและอุณหภูมิระหว่างปี 2012 ถึง 2014 โดยอ้างอิงจากรูปแบบในอดีตของการใช้ไฟฟ้าและอุณหภูมิ คุณสามารถคาดการณ์ค่าการใช้ไฟฟ้าในอนาคตได้
ในตัวอย่างนี้ คุณจะได้เรียนรู้วิธีการพยากรณ์ล่วงหน้า 1 ขั้นตอน โดยใช้ข้อมูลการใช้ไฟฟ้าในอดีตเท่านั้น อย่างไรก็ตาม ก่อนเริ่มต้น จะเป็นประโยชน์ที่จะเข้าใจสิ่งที่เกิดขึ้นเบื้องหลัง
## คำจำกัดความบางประการ
เมื่อพบคำว่า 'ข้อมูลอนุกรมเวลา' คุณจำเป็นต้องเข้าใจการใช้งานในบริบทต่าง ๆ
🎓 **ข้อมูลอนุกรมเวลา**
ในทางคณิตศาสตร์ "ข้อมูลอนุกรมเวลา คือชุดของจุดข้อมูลที่จัดเรียงตามลำดับเวลา โดยทั่วไปข้อมูลอนุกรมเวลาคือชุดข้อมูลที่เก็บรวบรวมในช่วงเวลาที่มีระยะห่างเท่ากัน" ตัวอย่างของข้อมูลอนุกรมเวลาคือค่าปิดตลาดรายวันของ [Dow Jones Industrial Average](https://wikipedia.org/wiki/Time_series) การใช้กราฟข้อมูลอนุกรมเวลาและการสร้างแบบจำลองทางสถิติมักพบในงานประมวลผลสัญญาณ การพยากรณ์อากาศ การคาดการณ์แผ่นดินไหว และสาขาอื่น ๆ ที่เหตุการณ์เกิดขึ้นและจุดข้อมูลสามารถวางกราฟตามเวลาได้
🎓 **การวิเคราะห์ข้อมูลอนุกรมเวลา**
การวิเคราะห์ข้อมูลอนุกรมเวลา คือการวิเคราะห์ข้อมูลอนุกรมเวลาที่กล่าวถึงข้างต้น ข้อมูลอนุกรมเวลาอาจมีรูปแบบที่แตกต่างกัน รวมถึง 'ข้อมูลอนุกรมเวลาที่ถูกขัดจังหวะ' ซึ่งตรวจจับรูปแบบในวิวัฒนาการของข้อมูลอนุกรมเวลาก่อนและหลังเหตุการณ์ที่ขัดจังหวะ ประเภทของการวิเคราะห์ที่จำเป็นสำหรับข้อมูลอนุกรมเวลาขึ้นอยู่กับลักษณะของข้อมูล ข้อมูลอนุกรมเวลาเองอาจอยู่ในรูปแบบของชุดตัวเลขหรืออักขระ
การวิเคราะห์ที่ดำเนินการใช้วิธีการหลากหลาย รวมถึงการวิเคราะห์ในโดเมนความถี่และโดเมนเวลา แบบเชิงเส้นและไม่เชิงเส้น และอื่น ๆ [เรียนรู้เพิ่มเติม](https://www.itl.nist.gov/div898/handbook/pmc/section4/pmc4.htm) เกี่ยวกับวิธีการวิเคราะห์ข้อมูลประเภทนี้
🎓 **การพยากรณ์ข้อมูลอนุกรมเวลา**
การพยากรณ์ข้อมูลอนุกรมเวลา คือการใช้แบบจำลองเพื่อคาดการณ์ค่าที่จะเกิดขึ้นในอนาคต โดยอ้างอิงจากรูปแบบที่แสดงโดยข้อมูลที่รวบรวมไว้ในอดีต แม้ว่าจะสามารถใช้แบบจำลองการถดถอยเพื่อสำรวจข้อมูลอนุกรมเวลา โดยใช้ดัชนีเวลาเป็นตัวแปร x บนกราฟ แต่ข้อมูลดังกล่าวเหมาะสมที่สุดที่จะวิเคราะห์โดยใช้แบบจำลองเฉพาะประเภท
ข้อมูลอนุกรมเวลาเป็นรายการของการสังเกตที่จัดเรียงตามลำดับ ซึ่งแตกต่างจากข้อมูลที่สามารถวิเคราะห์ได้ด้วยการถดถอยเชิงเส้น แบบจำลองที่พบมากที่สุดคือ ARIMA ซึ่งเป็นคำย่อของ "Autoregressive Integrated Moving Average"
[แบบจำลอง ARIMA](https://online.stat.psu.edu/stat510/lesson/1/1.1) "เชื่อมโยงค่าปัจจุบันของชุดข้อมูลกับค่าที่ผ่านมาและข้อผิดพลาดในการพยากรณ์ที่ผ่านมา" แบบจำลองเหล่านี้เหมาะสมที่สุดสำหรับการวิเคราะห์ข้อมูลในโดเมนเวลา ซึ่งข้อมูลถูกจัดเรียงตามเวลา
> มีหลายประเภทของแบบจำลอง ARIMA ซึ่งคุณสามารถเรียนรู้เพิ่มเติม [ที่นี่](https://people.duke.edu/~rnau/411arim.htm) และคุณจะได้สัมผัสในบทเรียนถัดไป
ในบทเรียนถัดไป คุณจะสร้างแบบจำลอง ARIMA โดยใช้ [ข้อมูลอนุกรมเวลาแบบตัวแปรเดียว](https://itl.nist.gov/div898/handbook/pmc/section4/pmc44.htm) ซึ่งเน้นที่ตัวแปรเดียวที่เปลี่ยนแปลงค่าตามเวลา ตัวอย่างของข้อมูลประเภทนี้คือ [ชุดข้อมูลนี้](https://itl.nist.gov/div898/handbook/pmc/section4/pmc4411.htm) ที่บันทึกความเข้มข้นของ CO2 รายเดือนที่หอดูดาว Mauna Loa:
| CO2 | YearMonth | Year | Month |
| :----: | :-------: | :---: | :---: |
| 330.62 | 1975.04 | 1975 | 1 |
| 331.40 | 1975.13 | 1975 | 2 |
| 331.87 | 1975.21 | 1975 | 3 |
| 333.18 | 1975.29 | 1975 | 4 |
| 333.92 | 1975.38 | 1975 | 5 |
| 333.43 | 1975.46 | 1975 | 6 |
| 331.85 | 1975.54 | 1975 | 7 |
| 330.01 | 1975.63 | 1975 | 8 |
| 328.51 | 1975.71 | 1975 | 9 |
| 328.41 | 1975.79 | 1975 | 10 |
| 329.25 | 1975.88 | 1975 | 11 |
| 330.97 | 1975.96 | 1975 | 12 |
✅ ระบุตัวแปรที่เปลี่ยนแปลงตามเวลาในชุดข้อมูลนี้
## ลักษณะของข้อมูลอนุกรมเวลาที่ควรพิจารณา
เมื่อดูข้อมูลอนุกรมเวลา คุณอาจสังเกตเห็นว่ามันมี [ลักษณะบางประการ](https://online.stat.psu.edu/stat510/lesson/1/1.1) ที่คุณต้องคำนึงถึงและลดผลกระทบเพื่อทำความเข้าใจรูปแบบของมันได้ดีขึ้น หากคุณพิจารณาข้อมูลอนุกรมเวลาเป็น 'สัญญาณ' ที่คุณต้องการวิเคราะห์ ลักษณะเหล่านี้สามารถถือเป็น 'เสียงรบกวน' คุณมักจะต้องลด 'เสียงรบกวน' นี้โดยใช้เทคนิคทางสถิติเพื่อชดเชยลักษณะบางประการเหล่านี้
นี่คือแนวคิดบางประการที่คุณควรรู้เพื่อทำงานกับข้อมูลอนุกรมเวลา:
🎓 **แนวโน้ม**
แนวโน้มหมายถึงการเพิ่มขึ้นและลดลงที่สามารถวัดได้ตามเวลา [อ่านเพิ่มเติม](https://machinelearningmastery.com/time-series-trends-in-python) ในบริบทของข้อมูลอนุกรมเวลาเกี่ยวกับวิธีการใช้และหากจำเป็นต้องลบแนวโน้มออกจากข้อมูลอนุกรมเวลา
🎓 **[ฤดูกาล](https://machinelearningmastery.com/time-series-seasonality-with-python/)**
ฤดูกาลหมายถึงความผันผวนที่เกิดขึ้นเป็นระยะ เช่น ช่วงเทศกาลที่อาจส่งผลต่อยอดขาย [ดูเพิ่มเติม](https://itl.nist.gov/div898/handbook/pmc/section4/pmc443.htm) เกี่ยวกับวิธีการแสดงฤดูกาลในข้อมูลด้วยกราฟประเภทต่าง ๆ
🎓 **ค่าผิดปกติ**
ค่าผิดปกติคือค่าที่อยู่ห่างจากความแปรปรวนของข้อมูลมาตรฐาน
🎓 **วัฏจักรระยะยาว**
นอกเหนือจากฤดูกาล ข้อมูลอาจแสดงวัฏจักรระยะยาว เช่น ภาวะเศรษฐกิจตกต่ำที่กินเวลานานกว่าหนึ่งปี
🎓 **ความแปรปรวนคงที่**
ในช่วงเวลา ข้อมูลบางอย่างแสดงความผันผวนคงที่ เช่น การใช้พลังงานในช่วงกลางวันและกลางคืน
🎓 **การเปลี่ยนแปลงอย่างฉับพลัน**
ข้อมูลอาจแสดงการเปลี่ยนแปลงอย่างฉับพลันที่อาจต้องการการวิเคราะห์เพิ่มเติม เช่น การปิดกิจการอย่างฉับพลันเนื่องจาก COVID ซึ่งทำให้ข้อมูลเปลี่ยนแปลง
✅ นี่คือตัวอย่างกราฟข้อมูลอนุกรมเวลา [กราฟนี้](https://www.kaggle.com/kashnitsky/topic-9-part-1-time-series-analysis-in-python) แสดงการใช้เงินในเกมรายวันในช่วงหลายปี คุณสามารถระบุลักษณะใด ๆ ที่กล่าวถึงข้างต้นในข้อมูลนี้ได้หรือไม่?
![การใช้เงินในเกม](../../../../7-TimeSeries/1-Introduction/images/currency.png)
## แบบฝึกหัด - เริ่มต้นกับข้อมูลการใช้พลังงาน
มาเริ่มต้นสร้างแบบจำลองข้อมูลอนุกรมเวลาเพื่อคาดการณ์การใช้พลังงานในอนาคตโดยอ้างอิงจากการใช้ในอดีตกัน
> ข้อมูลในตัวอย่างนี้นำมาจากการแข่งขันการพยากรณ์ GEFCom2014 ซึ่งประกอบด้วยข้อมูลการใช้ไฟฟ้ารายชั่วโมงและอุณหภูมิระหว่างปี 2012 ถึง 2014
>
> Tao Hong, Pierre Pinson, Shu Fan, Hamidreza Zareipour, Alberto Troccoli และ Rob J. Hyndman, "การพยากรณ์พลังงานเชิงความน่าจะเป็น: การแข่งขันการพยากรณ์พลังงานระดับโลก 2014 และอื่น ๆ", International Journal of Forecasting, vol.32, no.3, pp 896-913, กรกฎาคม-กันยายน, 2016.
1. ในโฟลเดอร์ `working` ของบทเรียนนี้ เปิดไฟล์ _notebook.ipynb_ เริ่มต้นโดยเพิ่มไลบรารีที่ช่วยให้คุณโหลดและแสดงผลข้อมูล
```python
import os
import matplotlib.pyplot as plt
from common.utils import load_data
%matplotlib inline
```
หมายเหตุ คุณกำลังใช้ไฟล์จากโฟลเดอร์ `common` ที่รวมอยู่ซึ่งตั้งค่าสภาพแวดล้อมของคุณและจัดการการดาวน์โหลดข้อมูล
2. จากนั้น ตรวจสอบข้อมูลในรูปแบบ dataframe โดยเรียกใช้ `load_data()` และ `head()`:
```python
data_dir = './data'
energy = load_data(data_dir)[['load']]
energy.head()
```
คุณจะเห็นว่ามีสองคอลัมน์ที่แสดงวันที่และการใช้พลังงาน:
| | load |
| :-----------------: | :----: |
| 2012-01-01 00:00:00 | 2698.0 |
| 2012-01-01 01:00:00 | 2558.0 |
| 2012-01-01 02:00:00 | 2444.0 |
| 2012-01-01 03:00:00 | 2402.0 |
| 2012-01-01 04:00:00 | 2403.0 |
3. ตอนนี้ ลองสร้างกราฟข้อมูลโดยเรียกใช้ `plot()`:
```python
energy.plot(y='load', subplots=True, figsize=(15, 8), fontsize=12)
plt.xlabel('timestamp', fontsize=12)
plt.ylabel('load', fontsize=12)
plt.show()
```
![กราฟพลังงาน](../../../../7-TimeSeries/1-Introduction/images/energy-plot.png)
4. จากนั้น ลองสร้างกราฟสำหรับสัปดาห์แรกของเดือนกรกฎาคม 2014 โดยระบุช่วงเวลาในรูปแบบ `[จากวันที่]: [ถึงวันที่]`:
```python
energy['2014-07-01':'2014-07-07'].plot(y='load', subplots=True, figsize=(15, 8), fontsize=12)
plt.xlabel('timestamp', fontsize=12)
plt.ylabel('load', fontsize=12)
plt.show()
```
![กรกฎาคม](../../../../7-TimeSeries/1-Introduction/images/july-2014.png)
กราฟที่สวยงาม! ลองดูกราฟเหล่านี้และดูว่าคุณสามารถระบุลักษณะใด ๆ ที่กล่าวถึงข้างต้นได้หรือไม่ เราสามารถสรุปอะไรได้จากการแสดงผลข้อมูลนี้?
ในบทเรียนถัดไป คุณจะสร้างแบบจำลอง ARIMA เพื่อสร้างการพยากรณ์
---
## 🚀ความท้าทาย
ลองทำรายการอุตสาหกรรมและสาขาการศึกษาทั้งหมดที่คุณคิดว่าสามารถได้รับประโยชน์จากการพยากรณ์ข้อมูลอนุกรมเวลา คุณสามารถคิดถึงการประยุกต์ใช้เทคนิคเหล่านี้ในศิลปะ เศรษฐมิติ นิเวศวิทยา การค้าปลีก อุตสาหกรรม การเงิน หรือที่อื่น ๆ ได้หรือไม่?
## [แบบทดสอบหลังเรียน](https://ff-quizzes.netlify.app/en/ml/)
## ทบทวนและศึกษาด้วยตนเอง
แม้ว่าเราจะไม่ได้กล่าวถึงในที่นี้ แต่บางครั้งเครือข่ายประสาทเทียมถูกนำมาใช้เพื่อเพิ่มประสิทธิภาพวิธีการคลาสสิกของการพยากรณ์ข้อมูลอนุกรมเวลา อ่านเพิ่มเติมเกี่ยวกับเรื่องนี้ [ในบทความนี้](https://medium.com/microsoftazure/neural-networks-for-forecasting-financial-and-economic-time-series-6aca370ff412)
## งานที่ได้รับมอบหมาย
[ลองแสดงผลข้อมูลอนุกรมเวลาเพิ่มเติม](assignment.md)
---
**ข้อจำกัดความรับผิดชอบ**:
เอกสารนี้ได้รับการแปลโดยใช้บริการแปลภาษา AI [Co-op Translator](https://github.com/Azure/co-op-translator) แม้ว่าเราจะพยายามให้การแปลมีความถูกต้อง แต่โปรดทราบว่าการแปลอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่แม่นยำ เอกสารต้นฉบับในภาษาดั้งเดิมควรถือเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่สำคัญ แนะนำให้ใช้บริการแปลภาษาจากผู้เชี่ยวชาญ เราไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความที่ผิดพลาดซึ่งเกิดจากการใช้การแปลนี้