การทำนายราคาหุ้นของ Tesla โดยใช้เทคโนโลยี Machine Learning
Tags: machinelearning, ai, python
Published: 2023-04-11 05:20:32

**Tesla** เป็นบริษัทรถยนต์ไฟฟ้าของสหรัฐอเมริกาที่มีเป้าหมายเพื่อการผลักดันโลกในการเปลี่ยนแปลงไปสู่การใช้พลังงานทางเลือกที่ยั่งยืน นั่นทำให้ Tesla ได้เป็นที่น่าจับตาไปทั่วโลกมาอย่างยาวนานเนื่องจากรัฐบาลของหลาย ๆ ประเทศทั่วโลกได้สนับสนุนวิสัยทัศน์ในการใช้พลังงานทางเลือกกับระบบยานยนต์ของ ไม่กี่ปีหลังจากนั้น ราคาหุ้นที่เพิ่มขึ้นของบริษัท Tesla ทำให้ Elon Musk CEO ของบริษัทได้เป็นคนรวยที่สุดในโลก นั่นทำให้การทำนายราคาหุ้นโดยการใช้ Machine Learning ถือว่าเป็นตัวอย่างที่ดี ดังนั้นในบทความนี้เราจะมาทำนายราคาหุ้นของ Tesla ด้วย Machine Learning โดยใช้ภาษา Python กัน

โดยจะทำการทำนายราคาหุ้นด้วยการใช้ **Machine Learning** ในการวิเคราะห์ทั้งด้านการเงินและการวิเคราะห์ชุดข้อมูลแบบ **time series analysis** ในบทความนี้เราจะใช้โมเดล <u>Facebook Prophet</u> สำหรับการทำนายราคาหุ้นของ Tesla.


## Method
ชุดข้อมูล Dataset ที่เราจะใช้กันนั้นสามารถ download ได้ที่ yahoo finance แล้วค้นหา TLSA. หรือคลิกที่ลิ้งค์นี้ --> [TSLA. download](https://finance.yahoo.com/quote/TSLA/history?p=TSLA)

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ijcxptzzyixrfxieyp4b.png)

เลือกช่วงเวลาที่ต้องการได้จากนั้นกด Apply จากนั้นกด Download เราจะได้ไฟล์ข้อมูล "TLSA.csv" มา

ข้อมูลที่ใช้จะประกอบไปด้วย 250 แถว คือราคาหุ้นที่เปลี่ยนแปลงในแต่ละวัน (ข้อมูลระหว่างวันที่ 27 มีนาคม 2563 - 27 มีนาคม 2564) และข้อมูลประกอบด้วย 7 columns ดังนี้

[1] Date : วันที่
[2] Open (Opening Price) : ราคาเปิด 
[3] High : ราคาสูงสุดที่มีการซื้อขายในวันนั้น
[4] Low : ราคาต่ำสุดที่มีการซื้อขายในวันนั้น
[5] Close (Closing Price) : ราคาปิดของวันทำการซื้อขายก่อนหน้า
[6] Adj Close : ราคาที่ปรับไปตามผลกระทบที่ได้รับจาก Corporate Action ทำให้ราคาปิดของวันก่อนขึ้นเครื่องหมาย Corporate Actions เปลี่ยนแปลงไป
[7] Volume : ปริมาณการซื้อรวมของหุ้น ณ เวลานั้น

ตัวอย่างของข้อมูล
```
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from fbprophet import Prophet

data = pd.read_csv("TSLA.csv")
data.head()
```
ตารางการแสดงผล TSLA.csv 5 ลำดับแรก
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6fujlcb17xk4km353exb.png)

ลองเปรียบเทียบ Close กับ Date ในแต่ละวัน
```
close = data['Close']
ax = close.plot(title='Tesla')
ax.set_xlabel('Date')
ax.set_ylabel('Close')
plt.show()
```
การแสดงผลของราคา Close กับ time series
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4bo0nmoyke6t3urjvtv2.png)

เราจะใช้ข้อมูลเพียงสองคอลัมน์จากชุดข้อมูลนี้คือ "Date" และ "Close" ดังนั้นเราจะสร้าง DataFrame ใหม่ที่มีเพียงสองคอลัมน์นี้เท่านั้น โดยใช้ไลบรารี Pandas ของ Python ได้ดังนี้ -->

`data["Date"] = pd.to_datetime(data["Date"], infer_datetime_format=True)
data = data[["Date", "Close"]]`

จากนั้นเราจะใช้ Facebook prophet model เพื่อทำนายราคาหุ้นของ Tesla แต่ต้องเปลี่ยนชื่อก่อน

`data = data.rename(columns={"Date" : "ds", "Close" : "y" })`

ดังนั้นเราได้เตรียมชุดข้อมูลใหม่สำหรับโมเดล Facebook Prophet แล้ว ตอนนี้เราจะทำนายราคาหุ้นของ Tesla ด้วยโค้ดนี้ต่อไปนี้

ตัวอย่างโค้ดการทำนายราคาหุ้น

```
model = Prophet()
model.fit(data)
predict = model.make_future_dataframe(periods=365)
forcast = model.predict(predict)
forcast[["ds", "yhat", "yhat_lower", "yhat_upper"]].tail()
```

ตัวอย่างข้อมูลชุดใหม่ส่วนท้าย [.tail()]
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jjq3jty9fzfuvpzqxz5n.png)

จากนั้นนำข้อมูลที่ได้มา plot ด้วยข้อมูล Date และ Price ในอนาคต
`graph = model.plot(forcast, xlabel="Date", ylabel="Price")`


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jb0rb8a6cidiwdtlvb9h.png)

## Conclude
จากข้อมูลที่มีนั้นเป็นเพียงข้อมูลเก่าในปี 2020 เท่านั้น แต่จากการทำนายที่ได้มาเหมือนว่าราคาหุ้นของ Tesla จะลดลงในอนาคตที่กำลังจะถึง ถ้าพวกเขาไม่คิดค้นไอเดียใหม่ในการสร้างความน่าสนใจให้กับบริษัท มีความเป็นไปได้ที่บริษัทอื่น ๆ ที่เริ่มผลิตรถยนต์ไฟฟ้าในราคาที่ต่ำกว่า Tesla จะดึงดูดความสนใจของลูกค้าไป ฉะนั้น Tesla อาจต้องหาทางเรียกความสนใจจากคนให้ได้มากขึ้น และนี่คือการทำนายราคาหุ้นด้วยเครื่องมือเรียนรู้ด้วย Machine Learning ด้วย Python


อ้างอิงข้อมูลจาก [click here!](https://thecleverprogrammer.com/2021/03/27/tesla-stock-price-prediction-with-machine-learning/)