ถ้าเราต้องการจะทำนายสิ่งต่าง ๆ ในอนาคต อาทิเช่น การทํานายอนาคตของโควิด ราคาหุ้น ราคา bitcoin และผลกําไรทางธุรกิจของคุณ ซึ่งในวันนี้กระผมจะมาแนะนำวิธีในการสร้างอัลกอริทึมสำหรับใช้ในการทำนายอนาคตโดยใช้ PYTHON กันครับ
บทความนี้ เราจะมาดูการสร้างอัลกอริทึมสำหรับใช้ในการทำนายอนาคตใน Python กัน ซึ่งกระผมได้ใช้ Google Colab ในการรันชุดคำสั่งต่าง ๆ
ซึ่ง Dataset ที่กระผมได้นำมาใช้เป็นตัวอย่าง คือ ข้อมูลสถิติราคาตลาดหุ้นย้อนหลังจาก Yahoo! Finance
โดยทางกระผมจะมีวิธีการและขั้นตอนในการสร้างอัลกอริทึมสำหรับใช้ในการทำนายสิ่ง ๆ ซึ่งในวันนี้ตัวอย่างที่จะนำมาเป็นสิ่งที่ใช้ในการทำนาย คือ การคาดการณ์แนวโน้มของราคาตลาดหุ้นในอนาคต
ซึ่งจะมีวิธีการและขั้นตอนในการสร้างอัลกอริทึม ดังต่อไปนี้ครับ
ขั้นตอนที่ 1 ติดตั้งไลบรารี
ก่อนอื่นต้องติดตั้งไลบรารี pystan ที่ช่วยให้เรียกใช้ไลบรารี fbprophet ได้อย่างง่ายดาย ซึ่งสามารถติดตั้งไลบรารี pystan โดยใช้
!pip install pystan
จากนั้นคุณสามารถติดตั้งไลบรารี fbpropeht โดยใช้คําสั่งต่อไปนี้
!pip install fbprophet
or
conda install -c conda-forge fbprophet
จากนั้นเราจะใช้ไลบรารี yfinance เพื่อดึงข้อมูลราคาหุ้น
!pip install yfinance
ในที่สุดเราต้องติดตั้งไลบรารี plotly และ pandas เพื่อทํางานกับข้อมูลในอดีตที่ได้ดึงมาและพล็อตมัน
!pip install plotly==4.4.1
!pip install pandas==1.3.4
ขั้นตอนที่ 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)
ขั้นตอนที่ 3 ดาวน์โหลดข้อมูลข้อมูลสถิติราคาตลาดหุ้นย้อนหลังจาก Yahoo! Finance
ใช้ yahoo finance API เพื่อติดตั้งข้อมูลในอดีต แต่คุณสามารถดึงข้อมูลจากที่ใดก็ได้ นอกจากนี้ฉันได้กําหนดเวลาทํานายเป็น 3 ปี โดยใช้ชุดคำสั่งต่อไปนี้
COMPANY = "RELIANCE"
prediction_time = "1Y"
temp = yf.download(f'{COMPANY}.NS', end="2022-01-01")
temp.tail()
ผลของตารางที่ได้
ขั้นตอนที่ 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
ขั้นตอนที่ 5 ฝึก (train) โมเดลของอัลกอริทึม
ฝึก (train) โมเดลของอัลกอริทึมโดยทั่วไปหมายถึงการป้อนข้อมูลในอดีตและแบบจําลองจะฝึกให้ป้อนข้อมูลทีละรายการและลดการสูญเสีย การสูญเสียเป็นตัวเลขที่แสดงถึงความเลวร้ายของแบบจําลองคือการคาดการณ์ข้อมูลที่กําหนด ยิ่งจํานวนการสูญเสียน้อยเท่าไหร่โมเดลของอัลกอริทึมของคุณก็จะยิ่งดีขึ้นเท่านั้น โดยใช้ชุดคำสั่งต่อไปนี้
m=Prophet()
model = m.fit(df)
ขั้นตอนที่ 6 คาดการณ์ผลในอนาคต
ใช้แบบจําลองที่ผ่านการฝึก (train) โมเดลของอัลกอริทึมก่อนหน้านี้และคาดการณ์ผลลัพธ์ที่เป็นไปได้ในอนาคต โดยใช้ชุดคำสั่งต่อไปนี้
future = m.make_future_dataframe(periods=int(prediction_time[:-1]),freq=prediction_time[-1])
forecast = m.predict(future)
forecast.tail()
ผลของตารางที่ได้
ขั้นตอนที่ 7 พล็อตการคาดการณ์
ที่จริงแล้วเราได้ทํานายอนาคตได้สําเร็จ แต่เพื่อวัตถุประสงค์ในการวิเคราะห์มันเป็นวิธีปฏิบัติที่ดีในการแสดงภาพโดยใช้กราฟ สามารถพล็อตการคาดการณ์ดังกล่าวโดยใช้ชุดคำสั่งต่อไปนี้
forecast.tail()
ผลของพล็อตที่ได้
ผลของการคาดการณ์นี้แสดงถึงอะไร?
- บนแกน y คุณสามารถดูราคาหุ้นและบนแกน x คุณสามารถดูวันที่ได้
- เส้นสีดํา คือ ราคาจริง
- ช่วงที่คาดการณ์ไว้คือเส้นสีเขียวและสีน้ําเงิน ซึ่งหมายความว่าราคาหุ้นจะอยู่ระหว่างเส้นสีเขียวและสีน้ําเงิน
- เส้นสีแดง แสดงแนวโน้มและในตัวอย่างนี้แนวโน้มจะปรากฏขึ้นอย่างชัดเจนในอีก 3 ปีข้างหน้า
สรุปผล
จากการสร้างอัลกอริทึมจะทำให้เราได้ว่า ถ้าต้องการสร้างอัลกอริทึมเพื่อทำนายอนาคตสิ่งต่าง ๆ ในอนาคตได้นั้น สิ่งหนึ่งที่สำคัญที่สุดที่จะทำให้อัลกอริทึมที่เราสร้างขึ้นนั้นสามารถทำนายอนาคตได้นั้น คือ สถิติของข้อมูลย้อนหลัง ที่จะเป็นสิ่งสำคัญที่ช่วยทำให้อัลกอริทึมของเรานั้นสามารถทำนายผลต่าง ๆ ล่วงหน้าได้ผ่านปัญญาประดิษฐ์ (AI) ที่อยู่ในชุดคำสั่ง PYTHON ของอัลกอริทึมดังกล่าวที่กระผมได้จัดสร้างขึ้นในข้างต้นได้เป็นอย่างดีและเกิดประโยชน์สูงสุดในอนาคตครับผม
ขอแสดงความยินดี!!!!!
กับทุกท่านที่สามารถสร้างอัลกอริทึมตามกระผม
ได้อย่างประสบความสำเร็จครับผม 😍🙏🎉❤️✨️
แหล่งอ้างอิง (References)
https://dev.to/yash_makan/how-to-predict-future-using-python--3i39
Top comments (0)