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% hataTalep 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ğrulukMüş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ı
| Model | Kullanım | Doğruluk | Hız |
|---|---|---|---|
| Prophet | Zaman serisi, mevsimsellik | 85-92% | Hızlı |
| ARIMA | Klasik zaman serisi | 75-85% | Çok Hızlı |
| LSTM | Karmaşık paternler, uzun vade | 88-95% | Yavaş |
| XGBoost | Sınıflandırma (churn, LTV) | 90-96% | Hızlı |
| Random Forest | Genel amaçlı tahmin | 85-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→