Tweedie Loss Objective Function
Amazon gibi büyük bir e-ticaret şirketinde, siteye giren çoğu kullanıcı muhtemelen alışveriş yapmayacaktır ve yaparlarsa değer sent ile binlerce dolar arasında değişmektedir. Verideki dağılıma baktığımızda ise alışveriş yapmayan kişiler 0 değerinde yoğunlaşacaktır ve dağılım right skewed olacaktır. Bu dağılıma sahip, e-ticaret web sitesinden gelen veriler, Reklam tıklama ve satın alma, sigorta talebi vb. örnek gösterilebilir.
Tweedie Loss Fonksiyonu
Sıfır değerinde yığılma olan ve pozitif skewed dağılıma sahip veri setinde Tweedie Loss Fonksiyonunun kullanılması uygundur. Diğer dağılımlara sahip verisetlerinde kullanılan loss fonksiyonlarının (RMSE gibi) kullanılması iyi sonuçlar vermeyebilir.
Tweedie Dağılımı
Tweedie, Bileşik Poisson dağılımının ait olduğu bir dağılımdır.
Bazı p parametrelerine göre Tweedie dağılımının özel durumları aşağıda verildiği gibidir.
p=0 Normal dağılım
p=1 Poisson dağılımı
p=2 Gamma dağılımı
1<p< 2 Bileşik Poisson dağılımı
Normal Dağılım, Gamma Dağılımı, Çift Üstel Dağılımı, Continuous (sürekli) distributionlardandır.
Poission Dağılımı, discreate(kesikli-aralıklı) distribituionlardan biridir. Poisson dağılımı, bir olayın belirli bir zaman veya mekan aralığında kaç kez meydana geldiğini modellemek için kullanılmaktadır. Poisson dağılımı sağa çarpık (right skew) bir görünüm sergilemektedir. Bu dağılım sürekli dağılımlardan biri olan normal dağılımın aksine kesikli dağılım türlerinden biridir. Bu dağılım Poisson regresyon analizinin temelini oluşturmakta olup, bağımlı değişkenin Poisson dağılımı gösterdiği durumlarda kullanılmaktadır. Poisson regresyon analizinde bağımlı değişkenin veri tipi nicel pozitif ve aynı zamanda kesiklidir. Bu dağılımda ortalama sıfırdan büyük ve varyansa eşit veya ona yakındır.
Fonksiyonda tek bir sabit vardır, Tweedie varyans gücü (p) 1 ile 2 arasındadır ve belirsizlik kaynağımızın nerede olduğunu gösterir.
Daha az teknik bir terimle, bir “Bileşik Poisson dağılımı”, olay olmayan (satın alma veya sigorta talebi olmayan) durumlar ile meydana gelen olaylar arasında ayrım yapar; Bu, “olay yok” senaryosuna yüksek bir olasılık verir.
XGBOOST ve LIGHTGBM
LightGBM ve XGBoost gibi yaygın makine öğrenimi algoritmaları, Tweedie kaybını kullanarak Tweedie regresyonunu destekler ve çok kolay bir şekilde uygulanabilir:
XGBRegressor(objective =’reg:tweedie’, tweedie_variance_power=1,5)
Modelde ‘tweedie_variance_power’ parametresini optimize etmek gerekmektedir. (örn. grid search hyperparameter tuning)
Aşağıda, yüksek değerli outlier değerler ve diminishing errors ile daha iyi başa çıkabilen MSLE evaluation metriğini kullanarak LightGBM modeli ile Tweedie Loss Objective Fonksiyonu kullanılmıştır.
import pandas as pd
import numpy as np
import lightgbm as lgbdata = pd.read_csv("./data_example.csv")
print(data.shape)
>>> (803013, 50) # 49 features and a label columnmask = np.random.rand(data.shape[0]) < 0.8 # split train-test
train = data[mask].copy()
test = data[~mask].copy()amount_of_zeros = data.loc[date["label"] == 0.0].shape[0]
print(round(amount_of_zeros/data.shape[0], 2))
>>> 0.63 model = lgb.LGBMRegressor()
model.fit(train.drop("label", axis=1), train["label"])
test["preds"] = model.predict(test.drop("label", axis=1))
print(mean_squared_log_error(test["label"], test["preds"])*100)
>>> 0.02186369461257779model = lgb.LGBMRegressor(objective="tweedie")
model.fit(train.drop("label", axis=1), train["label"])
test["preds"] = model.predict(test.drop("label", axis=1))
print(mean_squared_log_error(test["label"], test["preds"])*100)
>>> 0.017428740123056317
Görüldüğü üzere 0 değeri tüm verinin %63 gibi çok büyük bir kısmını kaplamaktadır.
Tweedie Loss Objective Fonksiyonunu uyguladıktan sonra evaluation metric’te %20.3'lük bir artış gözlenmiştir.
Sonuç
Kayıp fonksiyonunu seçerken, target dağılımını göz önünde bulundurmak önemlidir.
Dağılım 0 değerinde yoğunlaşmış bir veri kümeniz varsa, kesinlikle “Tweedie”yi denemelisiniz.
Referans
https://medium.com/@royravid/have-you-heard-about-tweedie-loss-bb94551dd82f