! Bu çalışma bir yatırım tavsiyesi değildir. Bir derin öğrenme projesidir. !
Tesla’nın hisse senedi fiyatlarını tahmin etmek, hem yatırımcılar hem de analistler için büyük önem taşır. Bu yazıda, Lengthy Quick-Time period Reminiscence (LSTM) modeli kullanarak Tesla’nın geçmiş hisse senedi fiyatlarıyla gelecekteki fiyatlarını nasıl tahmin edebileceğimizi göstereceğiz.
Veri Seti ve Anlama
Bu projede kullanılan veri seti, Tesla’nın 2010–2020 yılları arasındaki günlük hisse senedi fiyatlarını içerir. Veri setinde tarih, açılış fiyatı, en yüksek fiyat, en düşük fiyat, kapanış fiyatı, düzeltilmiş kapanış fiyatı ve işlem hacmi gibi sütunlar bulunmaktadır.
import pandas as pd# Veriyi yükleme
df = pd.read_csv("TSLA.csv")
# İlk beş satırı görüntüleme
df.head()
Veri Hazırlama
Veriyi LSTM modeline uygun hale getirmek için birkaç adımdan geçiyoruz:
- Tarih Dönüştürme: ‘Date’ sütununu datetime formatına dönüştürüyoruz.
- Görselleştirme: Kapanış fiyatlarını zaman serisi olarak görselleştiriyoruz.
- Ölçekleme: Veriyi 0–1 aralığında ölçekliyoruz.
- Eğitim ve Take a look at Setlerine Ayırma: Veriyi %80 eğitim ve %20 check olarak ayırıyoruz.
# Tarih dönüştürme
df["Date"] = pd.to_datetime(df["Date"])
tesla_df = df[["Date", "Close"]]# Kapanış fiyatlarını görselleştirme
import matplotlib.pyplot as plt
plt.determine(figsize=(12,6))
plt.plot(tesla_df["Date"], tesla_df["Close"], coloration='blue')
plt.ylabel('Inventory Worth')
plt.title('Tesla Inventory Worth')
plt.xlabel('Time')
plt.present()
# Ölçekleme
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler(feature_range=(0, 1))
tesla_df["Close"] = scaler.fit_transform(tesla_df["Close"].values.reshape(-1,1))
# Eğitim ve check setlerine ayırma
train_size = int(len(tesla_df) * 0.8)
train_data, test_data = tesla_df[:train_size], tesla_df[train_size:]
LSTM Modeli Oluşturma
LSTM, zaman serisi verilerini işlemek için uygun bir modeldir. Modelimizin mimarisi şu şekildedir:
- Girdi Katmanı
- LSTM Katmanı
- Dropout Katmanı
- Dense Katmanı
from tensorflow.keras.fashions import Sequential
from tensorflow.keras.layers import Dense, LSTM, Dropoutmannequin = Sequential()
mannequin.add(LSTM(models=50, return_sequences=True, input_shape=(train_X.form[1],1)))
mannequin.add(Dropout(0.2))
mannequin.add(LSTM(models=50, return_sequences=False))
mannequin.add(Dropout(0.2))
mannequin.add(Dense(models=1))
mannequin.compile(optimizer='adam', loss='mean_squared_error')
Mannequin Eğitimi
Modeli eğitmek için 50 epoch ve 32 batch dimension kullanıyoruz.
mannequin.match(train_X, train_y, epochs=50, batch_size=20, validation_data=(test_X, test_y))
Mannequin Değerlendirme
Modelin performansını değerlendirmek için Root Imply Squared Error (RMSE) kullanıyoruz. Ayrıca, eğitim ve doğrulama kayıplarını grafikte inceliyoruz.
from sklearn.metrics import mean_squared_errortrain_predict = mannequin.predict(train_X)
test_predict = mannequin.predict(test_X)
train_rmse = np.sqrt(mean_squared_error(train_y, train_predict))
test_rmse = np.sqrt(mean_squared_error(test_y, test_predict))
print("Eğitim RMSE: ", train_rmse)
print("Take a look at RMSE: ", test_rmse)
Sonuçlar
Eğitim ve check setlerinde modelin performansı şu şekildedir:
- Eğitim RMSE: 14.462
- Take a look at RMSE: 33.295
Sonuç
Bu projede, LSTM modeli kullanarak Tesla’nın hisse senedi fiyatlarını tahmin etmeyi başardık. Bu çalışma, yatırımcılara ve analistlere gelecekteki fiyat hareketlerini öngörmede yardımcı olabilir.
Gereksinimler ve Kurulum
Bu projeyi çalıştırmak için gerekli kütüphaneler:
- numpy
- pandas
- tensorflow
- matplotlib
- sklearn
Gerekli kütüphaneleri yüklemek için:
pip set up numpy pandas tensorflow matplotlib sklearn
Kullanım
- Veri setini TSLA.csv dosyasından yükleyin.
- .ipynb dosyasını çalıştırarak modeli eğitin.
- Eğitim tamamlandıktan sonra sonuçları ve grafikleri inceleyin.
Githup Repo