Predictive AI

Tahminleyici AI: Gelecek Öngörüsü ve Forecasting

Yapay zeka ile talep tahmini, satış forecasting, müşteri kaybı (churn) öngörüsü. Prophet, LSTM, ARIMA modelleri ile gelecek planlaması.

📊Tahminleyici AI Nedir?

Predictive Analytics (Tahminleyici Analitik), geçmiş verileri kullanarak gelecekteki olayları, trendleri ve davranışları tahmin eder. %75-95 doğruluk oranına ulaşabilir.

Zaman Serisi

• Satış forecasting
• Talep tahmini
• Stok optimizasyonu
• Sezonallik analizi

Müşteri Tahmini

• Churn prediction (kayıp)
• LTV (lifetime value)
• Satın alma ihtimali
• Segment tahmini

Operasyonel

• Arıza tahmini
• Bakım planlaması
• Kalite kontrolü
• Risk analizi

Satış Forecasting (Prophet)

# Meta Prophet ile satış tahmini
import pandas as pd
from prophet import Prophet
import matplotlib.pyplot as plt

# Veri hazırlama (2 yıllık günlük satış verisi)
df = pd.read_csv('sales_data.csv')
df = df.rename(columns={'tarih': 'ds', 'satis': 'y'})
# ds: tarih (datetime), y: satış miktarı

# Model oluştur ve eğit
model = Prophet(
    yearly_seasonality=True,   # Yıllık mevsimsellik
    weekly_seasonality=True,   # Haftalık mevsimsellik
    daily_seasonality=False,
    changepoint_prior_scale=0.05  # Trend değişim hassasiyeti
)

# Özel tatil günleri ekle (Ramazan, Kurban, Black Friday...)
holidays = pd.DataFrame([
    {'holiday': 'ramazan', 'ds': '2026-03-01', 'lower_window': 0, 'upper_window': 30},
    {'holiday': 'black_friday', 'ds': '2026-11-27', 'lower_window': -7, 'upper_window': 1},
])
model.add_seasonality(name='monthly', period=30.5, fourier_order=5)
model = Prophet(holidays=holidays)

model.fit(df)

# 90 gün ilerisi tahmin
future = model.make_future_dataframe(periods=90)
forecast = model.predict(future)

# Sonuçları göster
print(forecast[['ds', 'yhat', 'yhat_lower', 'yhat_upper']].tail(10))
# yhat: tahmin, yhat_lower/upper: güven aralığı

# Görselleştirme
fig1 = model.plot(forecast)
fig2 = model.plot_components(forecast)  # Trend + mevsimsellik

# Doğruluk metrikleri
from sklearn.metrics import mean_absolute_percentage_error
y_true = df['y'][-90:]
y_pred = forecast['yhat'][:len(df)][-90:]
mape = mean_absolute_percentage_error(y_true, y_pred)
print(f"MAPE: {mape:.2%}")  # Örnek: 8.5% hata

Talep Tahmini (LSTM)

# LSTM ile talep tahmini (deep learning)
import numpy as np
import pandas as pd
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import LSTM, Dense, Dropout
from sklearn.preprocessing import MinMaxScaler

# Veri yükleme ve ölçeklendirme
df = pd.read_csv('demand_data.csv')
scaler = MinMaxScaler(feature_range=(0, 1))
scaled_data = scaler.fit_transform(df[['demand']].values)

# Zaman penceresi oluştur (son 30 gün → gelecek 7 gün)
def create_sequences(data, seq_length=30, pred_length=7):
    X, y = [], []
    for i in range(len(data) - seq_length - pred_length):
        X.append(data[i:i+seq_length])
        y.append(data[i+seq_length:i+seq_length+pred_length])
    return np.array(X), np.array(y)

X, y = create_sequences(scaled_data)
split = int(0.8 * len(X))
X_train, X_test = X[:split], X[split:]
y_train, y_test = y[:split], y[split:]

# LSTM modeli
model = Sequential([
    LSTM(128, return_sequences=True, input_shape=(30, 1)),
    Dropout(0.2),
    LSTM(64, return_sequences=False),
    Dropout(0.2),
    Dense(32, activation='relu'),
    Dense(7)  # 7 günlük tahmin
])

model.compile(optimizer='adam', loss='mse', metrics=['mae'])

# Eğitim
history = model.fit(
    X_train, y_train,
    epochs=50,
    batch_size=32,
    validation_split=0.2,
    verbose=1
)

# Tahmin
predictions = model.predict(X_test)
predictions = scaler.inverse_transform(predictions)

# Gerçek değerlerle karşılaştır
y_test_actual = scaler.inverse_transform(y_test.reshape(-1, 7))

from sklearn.metrics import mean_absolute_error, r2_score
mae = mean_absolute_error(y_test_actual, predictions)
r2 = r2_score(y_test_actual, predictions)

print(f"MAE: {mae:.2f}")
print(f"R² Score: {r2:.2%}")  # Örnek: 92% doğruluk

Müşteri Kaybı (Churn) Tahmini

# XGBoost ile churn prediction
import pandas as pd
import xgboost as xgb
from sklearn.model_selection import train_test_split
from sklearn.metrics import classification_report, roc_auc_score

# Müşteri verileri
df = pd.read_csv('customer_data.csv')

# Özellik mühendisliği
features = [
    'account_age_days',           # Hesap yaşı
    'total_purchases',            # Toplam alışveriş
    'avg_purchase_value',         # Ortalama sepet
    'days_since_last_purchase',   # Son alışverişten beri geçen gün
    'support_tickets',            # Destek talep sayısı
    'email_open_rate',            # E-posta açma oranı
    'mobile_app_usage_days',      # Mobil app kullanım günü
    'returned_products',          # İade edilen ürün
    'discount_usage',             # İndirim kullanım oranı
]

X = df[features]
y = df['churned']  # 1: kayıp, 0: aktif

X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.2, random_state=42, stratify=y
)

# XGBoost modeli
model = xgb.XGBClassifier(
    max_depth=6,
    learning_rate=0.1,
    n_estimators=200,
    subsample=0.8,
    colsample_bytree=0.8,
    eval_metric='auc',
    random_state=42
)

model.fit(
    X_train, y_train,
    eval_set=[(X_test, y_test)],
    early_stopping_rounds=10,
    verbose=False
)

# Tahmin
y_pred = model.predict(X_test)
y_pred_proba = model.predict_proba(X_test)[:, 1]

# Performans
print(classification_report(y_test, y_pred))
print(f"AUC-ROC: {roc_auc_score(y_test, y_pred_proba):.2%}")

# Önemli özellikler
import matplotlib.pyplot as plt
xgb.plot_importance(model, max_num_features=10)
plt.title('Churn Tahmininde En Önemli Faktörler')
plt.show()

# Yüksek riskli müşterileri belirle
high_risk = df[y_pred_proba > 0.7]
print(f"{len(high_risk)} müşteri yüksek kayıp riskinde!")

Churn Prevention Stratejileri:

Risk >70%: Kişiselleştirilmiş indirim kuponu gönder
Risk 50-70%: Müşteri hizmetleri araması yap
Risk 30-50%: E-posta ile özel kampanya
30 gün aktivite yok: "Seni özledik" kampanyası

Model Karşılaştırması

ModelKullanımDoğrulukHız
ProphetZaman serisi, mevsimsellik85-92%Hızlı
ARIMAKlasik zaman serisi75-85%Çok Hızlı
LSTMKarmaşık paternler, uzun vade88-95%Yavaş
XGBoostSınıflandırma (churn, LTV)90-96%Hızlı
Random ForestGenel amaçlı tahmin85-92%Orta

İş Etkileri ve ROI

E-Ticaret Örneği

%23
Stok Maliyeti Azalma
%18
Satış Artışı
%35
Churn Azalma

Örnek ROI: Perakende Zinciri

Yıllık ciro: 500M TL
Öncesi stok maliyeti: 120M TL
AI tahmin sonrası: 92M TL (%23 azalma)
Tasarruf: 28M TL/yıl
AI sistem maliyeti: 800K TL (kurulum + 1. yıl)
ROI: 3,400% (ilk yıl)
Geri ödeme süresi: 10.5 gün

Tahminleyici AI Çözümünüzü Kuralım

Satış forecasting, talep tahmini ve churn prediction ile iş kararlarınızı veriye dayalı hale getirin.

Demo İste