DEV Community

Cover image for วิธีการสร้างอัลกอริทึมทำนายอนาคตโดยใช้ PYTHON
KANTAPAT KWANSOMKID (PEEM)
KANTAPAT KWANSOMKID (PEEM)

Posted on

วิธีการสร้างอัลกอริทึมทำนายอนาคตโดยใช้ PYTHON

ถ้าเราต้องการจะทำนายสิ่งต่าง ๆ ในอนาคต อาทิเช่น การทํานายอนาคตของโควิด ราคาหุ้น ราคา bitcoin และผลกําไรทางธุรกิจของคุณ ซึ่งในวันนี้กระผมจะมาแนะนำวิธีในการสร้างอัลกอริทึมสำหรับใช้ในการทำนายอนาคตโดยใช้ PYTHON กันครับ

บทความนี้ เราจะมาดูการสร้างอัลกอริทึมสำหรับใช้ในการทำนายอนาคตใน Python กัน ซึ่งกระผมได้ใช้ Google Colab ในการรันชุดคำสั่งต่าง ๆ

ซึ่ง Dataset ที่กระผมได้นำมาใช้เป็นตัวอย่าง คือ ข้อมูลสถิติราคาตลาดหุ้นย้อนหลังจาก Yahoo! Finance

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

ซึ่งจะมีวิธีการและขั้นตอนในการสร้างอัลกอริทึม ดังต่อไปนี้ครับ

ขั้นตอนที่ 1 ติดตั้งไลบรารี

ก่อนอื่นต้องติดตั้งไลบรารี pystan ที่ช่วยให้เรียกใช้ไลบรารี fbprophet ได้อย่างง่ายดาย ซึ่งสามารถติดตั้งไลบรารี pystan โดยใช้

!pip install pystan
Enter fullscreen mode Exit fullscreen mode

จากนั้นคุณสามารถติดตั้งไลบรารี fbpropeht โดยใช้คําสั่งต่อไปนี้

!pip install fbprophet
or
conda install -c conda-forge fbprophet
Enter fullscreen mode Exit fullscreen mode

จากนั้นเราจะใช้ไลบรารี yfinance เพื่อดึงข้อมูลราคาหุ้น

!pip install yfinance
Enter fullscreen mode Exit fullscreen mode

ในที่สุดเราต้องติดตั้งไลบรารี plotly และ pandas เพื่อทํางานกับข้อมูลในอดีตที่ได้ดึงมาและพล็อตมัน

!pip install plotly==4.4.1
!pip install pandas==1.3.4
Enter fullscreen mode Exit fullscreen mode

ขั้นตอนที่ 2 นำเข้าไลบรารี

ให้นําเข้าไลบรารีที่เราเพิ่งติดตั้งไปในขั้นตอนที่ 1 โดยใช้ชุดคำสั่งต่อไปนี้

import pandas as pd
from fbprophet import Prophet
import yfinance as yf
import plotly
import warnings

warnings.simplefilter('ignore')

def enable_plotly_in_cell():
    ''' Use this function in each cell to show plot in Google Colaboratory.'''
    import IPython
    from plotly.offline import init_notebook_mode
    display(IPython.core.display.HTML('''<script src="/static/components/requirejs/require.js"></script>'''))
    init_notebook_mode(connected=False)


get_ipython().events.register('pre_run_cell', enable_plotly_in_cell)
Enter fullscreen mode Exit fullscreen mode

ขั้นตอนที่ 3 ดาวน์โหลดข้อมูลข้อมูลสถิติราคาตลาดหุ้นย้อนหลังจาก Yahoo! Finance

ใช้ yahoo finance API เพื่อติดตั้งข้อมูลในอดีต แต่คุณสามารถดึงข้อมูลจากที่ใดก็ได้ นอกจากนี้ฉันได้กําหนดเวลาทํานายเป็น 3 ปี โดยใช้ชุดคำสั่งต่อไปนี้

COMPANY = "RELIANCE"
prediction_time = "1Y"
temp = yf.download(f'{COMPANY}.NS', end="2022-01-01") 
temp.tail()
Enter fullscreen mode Exit fullscreen mode

ผลของตารางที่ได้

Image description

ขั้นตอนที่ 4 จัดรูปแบบข้อมูลประวัติสําหรับไลบรารี fbprophet

สร้างกรอบข้อมูลใหม่และกําหนดคอลัมน์วันที่เป็น ds และปิดค่าเป็น y สิ่งนี้สําคัญมากเนื่องจากชื่อคอลัมน์ต้องเป็น ds และ y เนื่องจาก fbprophet จะมองหาคอลัมน์เหล่านี้
df['ds'] —> คอลัมน์ของวันที่
df['y'] —> คุณค่าทางประวัติศาสตร์ที่คุณต้องป้อนให้กับโมเดล
สามารถจัดรูปแบบข้อมูลประวัติสําหรับไลบรารี fbprophet โดยใช้ชุดคำสั่งต่อไปนี้

df = pd.DataFrame()
df['ds'] = temp.index.get_level_values('Date')
df['y'] = temp['Close'].values
Enter fullscreen mode Exit fullscreen mode

ขั้นตอนที่ 5 ฝึก (train) โมเดลของอัลกอริทึม

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

m=Prophet()
model = m.fit(df)
Enter fullscreen mode Exit fullscreen mode

ขั้นตอนที่ 6 คาดการณ์ผลในอนาคต

ใช้แบบจําลองที่ผ่านการฝึก (train) โมเดลของอัลกอริทึมก่อนหน้านี้และคาดการณ์ผลลัพธ์ที่เป็นไปได้ในอนาคต โดยใช้ชุดคำสั่งต่อไปนี้

future = m.make_future_dataframe(periods=int(prediction_time[:-1]),freq=prediction_time[-1])
forecast = m.predict(future)
forecast.tail()
Enter fullscreen mode Exit fullscreen mode

ผลของตารางที่ได้

Image description

ขั้นตอนที่ 7 พล็อตการคาดการณ์

ที่จริงแล้วเราได้ทํานายอนาคตได้สําเร็จ แต่เพื่อวัตถุประสงค์ในการวิเคราะห์มันเป็นวิธีปฏิบัติที่ดีในการแสดงภาพโดยใช้กราฟ สามารถพล็อตการคาดการณ์ดังกล่าวโดยใช้ชุดคำสั่งต่อไปนี้

forecast.tail()
Enter fullscreen mode Exit fullscreen mode

ผลของพล็อตที่ได้

Image description

Image description

ผลของการคาดการณ์นี้แสดงถึงอะไร?

  • บนแกน y คุณสามารถดูราคาหุ้นและบนแกน x คุณสามารถดูวันที่ได้
  • เส้นสีดํา คือ ราคาจริง
  • ช่วงที่คาดการณ์ไว้คือเส้นสีเขียวและสีน้ําเงิน ซึ่งหมายความว่าราคาหุ้นจะอยู่ระหว่างเส้นสีเขียวและสีน้ําเงิน
  • เส้นสีแดง แสดงแนวโน้มและในตัวอย่างนี้แนวโน้มจะปรากฏขึ้นอย่างชัดเจนในอีก 3 ปีข้างหน้า

สรุปผล

จากการสร้างอัลกอริทึมจะทำให้เราได้ว่า ถ้าต้องการสร้างอัลกอริทึมเพื่อทำนายอนาคตสิ่งต่าง ๆ ในอนาคตได้นั้น สิ่งหนึ่งที่สำคัญที่สุดที่จะทำให้อัลกอริทึมที่เราสร้างขึ้นนั้นสามารถทำนายอนาคตได้นั้น คือ สถิติของข้อมูลย้อนหลัง ที่จะเป็นสิ่งสำคัญที่ช่วยทำให้อัลกอริทึมของเรานั้นสามารถทำนายผลต่าง ๆ ล่วงหน้าได้ผ่านปัญญาประดิษฐ์ (AI) ที่อยู่ในชุดคำสั่ง PYTHON ของอัลกอริทึมดังกล่าวที่กระผมได้จัดสร้างขึ้นในข้างต้นได้เป็นอย่างดีและเกิดประโยชน์สูงสุดในอนาคตครับผม

ขอแสดงความยินดี!!!!!
กับทุกท่านที่สามารถสร้างอัลกอริทึมตามกระผม
ได้อย่างประสบความสำเร็จครับผม 😍🙏🎉❤️✨️

แหล่งอ้างอิง (References)
https://dev.to/yash_makan/how-to-predict-future-using-python--3i39

Top comments (0)