scikit-learn ile Basit Hisse Senedi Fiyat Tahmini (Doğrusal Regresyon)

kusha · 03 Ağustos 2026 · 6 dk okuma

Makine öğrenmesi denince akla genelde karmaşık derin öğrenme modelleri gelir, ama en basit ve anlaşılır model olan doğrusal regresyon ile bile bir hisse senedinin fiyat eğilimi hakkında kaba bir tahmin üretebilirsiniz. Bu derste scikit-learn ile böyle bir model kuracağız.

Uyarı: Bu yöntem eğitim amaçlıdır. Gerçek piyasalar sayısız faktörden (haber akışı, makroekonomik veriler, arz-talep) etkilenir; basit bir doğrusal regresyon modeli yatırım tavsiyesi olarak kullanılamaz.

Gerekli Kütüphaneler

pip install scikit-learn pandas yfinance

Geçmiş Fiyat Verisini Çekmek

Daha önceki derslerde gördüğümüz yfinance kütüphanesiyle geçmiş kapanış fiyatlarını çekiyoruz:

import yfinance as yf

veri = yf.download("THYAO.IS", period="6mo", interval="1d")
kapanis_fiyatlari = veri["Close"]

Veriyi Modele Uygun Hale Getirmek

Doğrusal regresyon, bir X (bağımsız değişken) ile bir y (bağımlı değişken) arasında ilişki kurar. Burada X olarak günleri sırayla numaralandırıyoruz, y olarak da o günün kapanış fiyatını kullanıyoruz:

import numpy as np

X = np.arange(len(kapanis_fiyatlari)).reshape(-1, 1)  # 0, 1, 2, 3, ... gün sırası
y = kapanis_fiyatlari.values

.reshape(-1, 1) çağrısı gereklidir çünkü scikit-learn, X girdisinin her zaman iki boyutlu (satır x özellik) bir dizi olmasını bekler.

Modeli Eğitmek

from sklearn.linear_model import LinearRegression

model = LinearRegression()
model.fit(X, y)

.fit(X, y) çağrısı, verilen noktalara en iyi uyan doğruyu (eğim ve kesişim noktasını) hesaplar.

Gelecek Günü Tahmin Etmek

gelecek_gun = np.array([[len(kapanis_fiyatlari) + 5]])  # 5 iş günü sonrası
tahmin = model.predict(gelecek_gun)
print(f"Tahmini fiyat: {tahmin[0]:.2f}")

Modelin Uyum Kalitesini Ölçmek: R² Skoru

r_kare = model.score(X, y)
print(f"Modelin uyum skoru (R²): {r_kare:.3f}")

R² skoru 0 ile 1 arasında değişir; 1'e ne kadar yakınsa, doğrusal model geçmiş veriye o kadar iyi uymuş demektir. Ancak yüksek bir R² skoru bile, gelecekteki fiyat hareketinin bu doğrusal eğilimi izleyeceğinin garantisi değildir — hisse fiyatları doğrusal değil, çoğunlukla gürültülü ve döngüsel hareket eder.

Tahmini Görselleştirmek

import matplotlib.pyplot as plt

plt.plot(X, y, label="Gerçek Fiyat")
plt.plot(X, model.predict(X), label="Regresyon Doğrusu", linestyle="--")
plt.legend()
plt.savefig("tahmin.png")

Bu Modelin Sınırları

Doğrusal regresyon, ismi üzerinde, yalnızca doğrusal bir ilişki varsayar — oysa fiyat hareketleri genelde iniş çıkışlı, mevsimsel veya rejim değiştiren bir yapıdadır. Daha gerçekçi sonuçlar için polinom regresyon, hareketli ortalamalar veya zaman serisi modelleri (ARIMA, Prophet) denenebilir; ama bu derste amacımız scikit-learn'ün en temel API'sini (fit, predict, score) tanımaktı.

Sırada Ne Var?

Sırada, ta kütüphanesiyle RSI ve hareketli ortalama gibi teknik analiz indikatörlerini hesaplamayı göreceğiz.