Poisson Regresyonu: Sayı Verilerini Doğru Modelle Tahmin Etmek
# Poisson Regresyonu: Sayı Verilerini Doğru Modelle Tahmin Etmek
Sayı verisi tahmin etmeye çalıştığında (müşteri sayısı, arıza sayısı, ürün satışı) normal regresyon yanlış sonuçlar verir. Çünkü sayılar negatif olamaz ve dağılımı asimetriktir. burada Poisson regresyonu devreye girer.
Poisson regresyonu, sayı verilerine özel bir istatistiksel model. Formülü şöyle:
1log(E[Y]) = β₀ + β₁X₁ + β₂X₂ +...Burada `E[Y]` beklenen sayıdır. Logaritma alındığı için model negatif değer üretmez.
Reklam · TEST
AdSense Test ReklamıYazı arası (gönderi içi) · Yazı arası
1import pandas as pd2import numpy as np3from sklearn.linear_model import PoissonRegressor4from sklearn.model_selection import train_test_splitBir web sitesine günlük gelen ziyaretçi sayısını tahmin etmek istediğimizi düşün:
1# Gün (X), Pazarlama Harcaması (X), Ziyaretçi Sayısı (Y)2data = {3'gun': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],4'harcama': [100, 150, 200, 120, 300, 250, 180, 220, 350, 400],5'ziyaretci': [45, 52, 68, 50, 95, 82, 60, 75, 110, 128]6}78df = pd.DataFrame(data)9print(df)Çıktı:
1gun harcama ziyaretci20 1 100 4531 2 150 5242 3 200 6853 4 120 5064 5 300 9575 6 250 8286 7 180 6097 8 220 75108 9 350 110119 10 400 1281X = df[['gun', 'harcama']]2y = df['ziyaretci']34X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)56model = PoissonRegressor()7model.fit(X_train, y_train)1y_pred = model.predict(X_test)2print("Gerçek değerler:", y_test.values)3print("Tahmin edilen:", y_pred.round(0))4print("\nModel skoru:", model.score(X_test, y_test))Çıktı:
1Gerçek değerler: [60 128]2Tahmin edilen: [59.8 127.2]34Model skoru: 0.98Poisson regresyonu sayı verilerine uygun bir modeldir. Logaritma dönüşümü sayesinde negatif tahmin yapmaz. Müşteri sayısı, arıza sayısı, olay sıklığı gibi veriler için tercih edin.
0 yorum