Regresyon Algoritmaları

Regresyon analizi, bir bağımlı değişkenin bir veya daha fazla bağımsız değişkenle ilişkisini modellemek için kullanılan istatistiksel bir tekniktir. Regresyon algoritmaları, veri bilimi ve istatistik alanında yaygın olarak kullanılır ve özellikle tahminleme ve trend analizi gibi uygulamalarda önemli bir rol oynar.

Doğrusal (Linear) Regresyon

Linear Regression, bağımlı ve bağımsız değişkenler arasındaki ilişkiyi temsil eden doğrusal bir denklem oluşturarak tahmin etmeye çalışır. Bu model, verilerdeki ilişkiyi en iyi şekilde temsil eden doğruyu bulmaya
çalışır. Özellik sayımız bir ise “Simple Linear Regression”, birden fazla ise “Multiple Linear Regression” kullanılır.

Hiperparametreler

ParametreTypeDefaultAçıklama
fit_interceptboolTrueModel için kesişiminin (intercept) hesaplanıp hesaplanmayacağını belirler.
copy_XboolTrueEğer True ise modeli eğitirken X değeri fonksiyonda kullanılacak ve eğitimden sonra da aynı olacaktır. False olduğunda ise X fonksiyona girdikten sonra ilk hali ile aynı olmayabilir.
n_jobsintNoneHesaplama için kullanılacak iş sayısı. Büyük problemlerde işe yarar, hızlanma sağlar.
positiveboolFalseKatsayıyı (coefficient) pozitif olmaya zorlar.

Lasso

Lasso (Least Absolute Shrinkage and Selection Operator), model karmaşıklığını kontrol etmek için L1 düzenlemesini kullanır. Lineer regresyonun bir türevidir ve L1 düzenlemesi (penalty) ekleyerek modeldeki katsayıları sıfıra yaklaştırarak özellik seçimi yapar. Model, katsayıların sıfıra yaklaşmasını sağlayarak önemsiz özellikleri elemeye çalışır. İlgisiz değişkenlerin katsayılarını sıfıra eşitler.

Hiperparametreler

ParametreTypeDefaultAçıklama
alphafloat1.0L1 düzenlemesi katsayısıdır. Negatif olmamalıdır. alpha 0 olduğunda doğrusal regresyon gibi sonuç döner.
fit_interceptboolTrueKesişimin (intercept) uydurulup uydurulmayacağı.
copy_XboolTrueEğer True ise modeli eğitirken X değeri fonksiyonda kullanılacak ve eğitimden sonra da aynı olacaktır. False olduğunda ise X fonksiyona girdikten sonra ilk hali ile aynı olmayabilir.
precomputeboolFalseHesaplamaları hızlandırmak için önceden hesaplanmış bir Gram matrisi olup olmayacağı.
max_iterint1000Maksimum iterasyon sayısı.
warm_startbool1e-4Optimizasyon toleransı.
positiveboolFalseTrue ise önceki fit çözümünü başlangıç olarak kullanır.
selectionstring“cyclic”“random” olduğu zaman her iterasyonda rastgele bir katsayı güncellenir. Tol 1e-4’den yüksek olduğunda daha hızlı yakınsamaya yol açar.

Ridge

Çok değişkenli regresyon verilerini analiz etmek için kullanılır. Lineer regresyonun bir türevidir ve genellikle aşırı uydurma (overfitting) problemini çözmek için kullanılır. Model, lineer regresyonun temel yapısını korurken, katsayıları sınırlamak için L2 düzenlemesi (penalty) ekler. Bu düzenleme, kaysayıların büyüklüğünü sınırlayarak modeli daha da genelleştirilmiş hale getirir. Tüm değişkenler ile modeli oluşturur, ilgisiz değişkenleri çıkarmaz fakat katsayılarını sıfıra yaklaştırır.

Hiperparametreler

ParametreTypeDefaultAçıklama
alphafloat1.0L2 düzenlemesi katsayısıdır. Bu parametre arttıkça katsayıların büyüklüğüne daha fazla düzenleme uygulanır.
fit_interceptboolTrueKesişimin (intercept) uydurulup uydurulmayacağı.
copy_XboolTrueEğer True ise modeli eğitirken X değeri fonksiyonda kullanılacak ve eğitimden sonra da aynı olacaktır. False olduğunda ise X fonksiyona girdikten sonra ilk hali ile aynı olmayabilir.
max_iterintNoneGradyan çözücüsü için maximum iterasyon sayısı.
tolfloat1e-4Katsayı hassasiyeti (coef)
solvertol1e-4Hesaplamada kullanılacak çözücü.
positivestring“auto”True ise katsayıları pozitif olmaya zorlar.
random_stateboolFalseSeed

Bayesian Ridge

Bayes teoremini ve bayes istatistik prensiplerine dayanarak lineer regresyon temelli bir modeldir. Bayes teoremi kullanarak olasılık dağılmını güncelleyerek parametreleri belirler.

Çalışma Adımları

  1. Bir önceki dağılım (prior distribution) belirlenir. Bu, parametrelerin olası değerleri hakkında bir öngörü sağlar.
  2. Problemi bir olasılık dağılımı olarak ele alır.
  3. Veri dağılımına bağlı olarak bir olasılık fonksiyonu (likelihood function) belirlenir. Bu fonksiyon, modelin parametrelerinin belirli bir değere sahip olma olasılığını tanımlar.
  4. Model, veriye dayalı olarak bayes teoremini kullanarak önceki dağılımları günceller.
  5. Güncellenmiş dağılımlar modelin parametreleri için bir sonraki dağılımı (posterior distribution) oluşturur.
  6. Model bu dağılımı kullanarak tahmin yapar.

Hiperparametreler

ParametreTypeDefaultAçıklama
alpha_1float1e-6Prior distribution için L2 regularizasyon hassasiyeti.
alpha_2float1e-6Likelihood function için L2 regularizasyon hassasiyeti.
lambda_1float1e-6Prior distribution için L1 regularizasyon hassasiyeti.
lambda_2float1e-6Likelihood function için L1 regularizasyon hassasiyeti.
tolfloat1e-3Optimizasyon algoritmasının toleransı.

Kernel Ridge

Doğrusal olmayan regresyon problemlerini çözmek için kullanılır. Temelde, Ridge fonksiyonu ile aynıdır. Sadece düzenleme (regularization) işleminden önce doğrusal olmayan ilişkileri modellemek için özellik vektörlerini doğrusal olmayan bir şekilde dönüştürür. Bu dönüşüm işlemi için çekirdek fonksiyonlarını kullanır.

Hiperparametreler

ParametreTypeDefaultAçıklama
alphafloat1Ridge regresyonundaki düzenleme parametresi.
kernelstr“linear”Kullanılacak olan çekirdek fonksiyonu.
gammafloatNoneRBF ve Polinom çekirdeklerinde kullanılan çekirdek parametresidir. Çekirdek fonksiyonunun esnekliğini belirler.
degreefloat3Polinom çekirdeklerinde kullanılır. Polinomun derecesini belirler.

ElasticNet

L1 (Lasso) ve L2 (Ridge) düzenlemesinin bir kombinasyonunu kullanır. L1 ve L2 düzenleme terimlerini kontrol etmek için “alpha” parametresini kullanır. Alpha = 0 ise L2 uygulanır, böylece ElasticNet, Ridge regresyonuna dönüşür. Alpha = 1 ise L1 uygulanır, böylece ElasticNet, Lasso regresyonuna dönüşür.

Hiperparametreler

ParametreTypeDefaultAçıklama
alphafloat1.0L1 ve L2 regularizasyon birleşimini kontrol eder.
l1_ratiofloat0.5L1’in dağılımı.
max_iterint1000Optimizasyon algoritmasının maksimum iterasyon sayısı.
tolfloat1e-4Optimizasyon algoritmasının toleransı.

Huber

Regresyon problemlerinde kullanılan bir kayıp fonksiyonudur. Aykırı değerlere karşı dirençlidir. L1 ve L2 düzenlemelerini birlikte kullanır. Mutlak hata ve kare hata arasında bir geçiş bölgesi içerir. Bu hata değeri küçük olduğunda L2 (kare hata), büyük olduğunda L1 (mutlak hata) kullanılır.

Gradient Boosting

Toplu öğrenme yöntemidir. Modelin performansını geliştirmek için hatalara odaklanır.

  1. Temel bir model seçilir.
  2. Tüm veri seti için bir başlangıç tahmini yapılır. Regresyon için veri setinin ortalaması olabilir. Sınıflandırma için veri setindeki sınıfların oranı olabilir.
  3. Başlangıç tahmininden sonra, gerçek değerler ile başlangıç tahmin arasındaki hatalar hesaplanır. Bu hatalar, modelin daha fazla odaklanması gereken alanları gösterir.
  4. Hataların eğimi (gradient) hesaplanır. Eğim, her bir örnek için hata fonksiyonunun, tahmin edilen değerlere göre ne kadar değiştiğini gösterir.
  5. Bu hataları tahmin etmek için temel bir model oluşturur.
  6. Temel model, bir öğrenme oranı ile ağırlanır ve hata tahminine katılır. Öğrenme oranı, her temel modelin katkısını düzenler ve modelin aşırı uyumunu kontrol eder.
  7. Yeni temel modelin tahminleri, önceki tahminlere eklenir ve güncellenmiş bir tahmin elde edilir.
  8. İterasyon sayısına kadar 3 ve 7 arası tekrarlanır.

Hiperparametreler

ParametreTypeDefaultAçıklama
n_estimatorsint100Oluşturulacak temel modellerin sayısı.
learning_ratefloat0.1Her bir temel modelin katkısının ölçeği
max_depthint3Oluşturulacak karar ağaçlarının maksimum derinliği.
min_samples_splitint2Bir iç düğümün ikiye bölünmeden önce kaç örneğe sahip olması gerektiği.
min_samples_leafint1Bir yaprak düğümünün en az kaç örneğe sahip olması gerektiği.
subsamplefloat1Her bir temel modelin eğitiminde kullanılacak örneklerin oranı. SGD’ye benzer bir etkiye sahiptir.

ARD Regresyon

ARDRegression (Automatic Relevance Determination Regression), L1 ve L2 regularizasyon yöntemlerini birleştirerek çalışır.

Adaptive Boosting

Zayıf öğrenicileri bir araya getirerek güçlü bir öğrenici oluşturmak için kullanılan bir toplu öğrenme yöntemidir.

Çalışma Adımları

  1. Her bit örnek başlangıçta 1/N ağırlığına sahiptir. N, toplam örnek sayısı.
  2. Bir zayıf öğrenici eğitilir.
  3. Doğruluğu düşük olan örneklerin ağırlığı arttırılır. Bu, yanlış sınıflandırılan örneklerin daha fazla dikkate alınmasını sağlar. Modelin bu örnekleri daha iyi sınıflandırması beklenir.
  4. Ağırlıklandırılmış eğitim veri seti, bir sonraki zayıf öğreniciyi eğitmek için kullanılır. Bu süreç, belli bir iterasyon (boosting round) için tekrarlanır.
  5. Her bir zayıf öğrenici, tahminlerin gücüne göre bir ağırlıkla birleştirilir. Bu ağırlıklandırma işlemi, her bir öğreticinin doğruluğuna göre belirlenir. Daha doğru tahminler, daha büyük ağırlığa sahip olur.
  6. Zayıf öğrenicilerin bir araya getirilmesiyle güçlü bir öğrenici elde edilir.

Poisson

Poisson regresyonu, bağımlı değişkenin sayısal bir değer olduğu ve bağımsız değişkenlerin bu sayıyı etkilediği durumlarda kullanılır. Genellikle pozitif değerler alan ve sayısal olmayan verileri modellemek için kullanılır. Poisson dağılımına dayalıdır. Poisson dağılımı, nadir olayların sayısını modellemek için kullanılan bir olasılık dağılımıdır. Bağımlı değişkenin Poisson dağılımına uyduğu varsayımıyla çalışır ve bağımsız değişkenlerin bu dağılım üzerindeki etkilerini modellemeye çalışır.

Quantile

Temel amacı, belirli yüzdelik dilimlerdeki (quantile) hedef değişkenlerin tahminini yapmaktır. Bu, verinin farklı yüzdeliklerde nasıl dağıldığını dikkate alarak regresyon yapmayı sağlar. Özellikle medyanın veya diğer yüzdelik değerlerinin tahmin edilmesinde kullanılır. Veri dağılımının herhangi bir yerindeki değerlerin tahmin edilmesini sağlar.

SGD

Stochastic Gradient Descent (SGD), her bir veri noktası için gradyan iniş algoritmasını kullanarak ağırlıklarını günceller ve böylece regresyon yoluyla öğrenir.

Çalışma Adımları

  1. Eğitim verilerindeki örneklerden rastgele başlangıç parametreleriyle başlar.
  2. Rastgele seçilen örnekler üzerinden gradyan (türev) hesaplar. Bu gradyan, kayıp fonksiyonunun optimuma doğru yönelik bir tahmini sağlar.
  3. Hesaplanan gradyan kullanılarak parametreler güncellenir. SGD, her adımda gradyanın ters yönünde bir adım atarak parametrelerin güncellenmesini sağlar. Bu adım öğrenme oranıdır.
  4. Parametreler güncellendikçe kayıp fonksiyonunun değeri azalır.
  5. SGD belirli bir iterasyon sayısına uğraşana kadar adımları tekrarlar.