Makine Öğreniminde Regülasyon
I. Giriş
Makine Öğreniminde Regülasyon

I. Giriş
Makine öğrenimi, veriden öğrenerek tahminler yapabilen ve kararlar alabilen algoritmalar geliştirme sürecidir. Son yıllarda, makine öğrenimi modelleri hayatın birçok alanında kritik kararlar alırken, bu modellerin performansını ve doğruluğunu artırmak da büyük önem kazanmıştır. Ancak, bir modelin performansını artırmaya çalışırken karşılaşılan en büyük sorunlardan biri, modelin eğitim verisine aşırı uyum sağlaması, yani “aşırı uyum” (overfitting) problemidir.
Aşırı uyum, bir modelin eğitim verisini neredeyse kusursuz öğrenmesi ancak yeni ve görülmemiş veriler üzerinde başarısız olması anlamına gelir. Bu durum, modelin eğitim verisinin gürültüsüne veya özel örüntülerine fazlasıyla adapte olmasıyla ortaya çıkar. Böyle bir model, eğitim setinde yüksek doğruluk sağlarken, gerçek dünya uygulamalarında düşük performans gösterebilir. Bu, makine öğrenimi modellerinin genelleme yeteneğini kısıtlar ve güvenilirliklerini sorgulanabilir hale getirir.
Regülasyon, makine öğrenimi modellerinde aşırı uyumu önlemek ve genelleme yeteneğini artırmak amacıyla kullanılan bir dizi teknikten oluşur. Regülasyon teknikleri, modelin karmaşıklığını kontrol altında tutarak, eğitiminin daha dengeli olmasını ve yeni verilere karşı daha sağlam tahminler yapabilmesini sağlar. Bu nedenle, regülasyon, makine öğrenimi sürecinde vazgeçilmez bir rol oynar ve doğru bir şekilde uygulanması, modellerin gerçek dünya performansını önemli ölçüde iyileştirebilir.
Bu makalede, makine öğreniminde regülasyonun teorik temellerini, temel ve ileri regülasyon tekniklerini ve bu tekniklerin Python ile nasıl uygulanabileceğini ele alacağız. Ayrıca, farklı makine öğrenimi algoritmalarında ve endüstrilerde regülasyonun nasıl kullanıldığını inceleyerek, bu tekniklerin pratik uygulamalardaki önemini vurgulayacağız. Hedefimiz, makine öğrenimi modellerinin daha güvenilir, adil ve etkili olmasını sağlayacak regülasyon yöntemlerini kapsamlı bir şekilde anlamak ve kullanmaktır.
II. Regülasyonun Teorik Temelleri
Makine öğreniminde regülasyonun temel amacı, modelin performansını artırmak ve aşırı uyumdan kaçınmaktır. Aşırı uyum (overfitting) problemi, bias-variance trade-off ve regülasyonun çalışma prensibi gibi temel kavramları anlamak, bu tekniklerin neden ve nasıl kullanıldığını açıklamaya yardımcı olur.
A. Aşırı Uyum (Overfitting) Problemi
Aşırı uyum, bir makine öğrenimi modelinin eğitim verisini neredeyse kusursuz öğrenmesi ancak yeni verilerde, yani test verilerinde, kötü performans göstermesi durumudur. Bu problem, modelin eğitim verisinin gürültüsünü veya rastgele örüntülerini öğrenmesiyle ortaya çıkar. Aşırı uyumlu bir model, sadece eğitim verisine iyi uyum sağlar, ancak gerçek dünyada karşılaşacağı yeni verilerde tahmin yapma yeteneği zayıflar.
Örneğin, bir model, eğitim setinde çok iyi sonuçlar veriyor olabilir, ancak bu modelin test setindeki performansı oldukça düşükse, aşırı uyum problemiyle karşı karşıyayız demektir. Bu durum, modelin genelleme yeteneğinin sınırlı olduğunu gösterir.

B. Bias-Variance Trade-Off
Makine öğrenimi modellerinin performansını değerlendirirken dikkate alınması gereken iki önemli kavram bias (sapma) ve variance (varyans) dır. Bu iki kavram arasındaki denge, modelin hem eğitim hem de test verisi üzerindeki başarısını belirler.
- Bias (Sapma): Modelin veriye uyum sağlama yeteneğinin düşük olması durumudur. Yüksek bias, modelin hem eğitim hem de test verilerinde yüksek hata yapmasına sebep olur. Bu durum, genellikle modelin yeterince karmaşık olmaması ve veriyi yeterince iyi öğrenememesi durumunda ortaya çıkar. Bu, düşük uyum (underfitting) olarak da bilinir.
- Variance (Varyans): Modelin eğitim verisine aşırı uyum sağlaması durumudur. Yüksek varyans, modelin eğitim verisinde düşük hata yaparken, test verisinde yüksek hata yapmasına neden olur. Bu durum, modelin verinin gürültüsünü veya rastgele örüntülerini öğrenmesiyle ortaya çıkar ve aşırı uyum (overfitting) problemine yol açar.
Bias-variance trade-off, modelin karmaşıklığını kontrol ederek bu iki kavram arasında bir denge kurmayı amaçlar. İyi bir model, düşük bias ve düşük varyans arasında bir denge sağlar; bu da modelin genelleme yeteneğini artırır.

C. Regülasyonun Çalışma Prensibi
Regülasyon, makine öğreniminde aşırı uyumu önlemek için kullanılan bir dizi teknikten oluşur. Bu teknikler, modelin karmaşıklığını sınırlayarak, verideki gürültüyü öğrenmesini ve aşırı uyum göstermesini engeller. Regülasyonun temel amacı, modelin genelleme yeteneğini artırmak ve yeni verilere karşı daha iyi performans göstermesini sağlamaktır.
Regülasyonun çalışma prensibi, modelin parametrelerini sınırlandırarak veya cezalandırarak (penalizing) aşırı karmaşık modellerin oluşmasını engellemeye dayanır. Örneğin, lineer regresyon modellerinde, regülasyon terimleri, modelin katsayılarının büyüklüğünü sınırlandırarak, modelin eğitim verisine aşırı uyum sağlamasını engeller. Bu sayede, model daha basit ve daha genelleyici hale gelir.
- L1 Regülasyonu (Lasso): Modelin bazı parametrelerini sıfıra yaklaştırarak daha sade modeller oluşturur.
- L2 Regülasyonu (Ridge): Tüm parametreleri küçülterek aşırı uyum riskini azaltır.
- Elastik Net: Hem L1 hem de L2 regülasyonlarını birleştirerek iki tekniğin avantajlarını sunar.
Regülasyonun matematiksel olarak nasıl çalıştığını ve modellerde nasıl uygulandığını anlamak için, sonraki bölümlerde bu tekniklerin her birini ayrıntılı bir şekilde inceleyeceğiz.
III. Temel Regülasyon Teknikleri
Makine öğreniminde aşırı uyum problemini önlemek için kullanılan en yaygın yöntemlerden bazıları, L1 regülasyonu (Lasso), L2 regülasyonu (Ridge), ve Elastik Net yöntemleridir. Bu teknikler, modelin karmaşıklığını sınırlandırarak genelleme yeteneğini artırmayı hedefler. Her bir yöntem, modelin parametrelerini farklı şekillerde kontrol eder ve cezalandırır, bu da her yöntemin farklı avantaj ve dezavantajlara sahip olmasına yol açar.
A. L1 Regülasyonu (Lasso)
L1 regülasyonu, “Least Absolute Shrinkage and Selection Operator” (Lasso) olarak da bilinir. Bu teknik, lineer regresyon gibi modellerin katsayılarını küçültmek için kullanılan bir yöntemdir. L1 regülasyonu, modelin parametrelerine (katsayılarına) eklenen bir ceza terimi ile modelin aşırı karmaşık hale gelmesini önler.
L1 regülasyonu, toplam parametrelerin mutlak değerlerinin toplamını ceza terimi olarak ekler:


L1 regülasyonu, bazı katsayıların sıfıra yaklaşmasına neden olur, bu da modelde değişken seçimi sağlar. Bu özellik, Lasso’nun yalnızca önemli özellikleri (features) seçmesini ve diğerlerini sıfırlamasını sağlar, böylece modelin daha sade ve yorumlanabilir olmasına yardımcı olur.
Avantajlar:
- Modelde özellik seçimi yapabilir; böylece gereksiz özellikler dışlanır.
- Daha sade ve yorumlanabilir modeller üretir.
Dezavantajlar:
- Veriler arasında çoklu bağlantı (multicollinearity) varsa, bu teknik bazen kararsız sonuçlar verebilir.
B. L2 Regülasyonu (Ridge)
L2 regülasyonu, “Ridge Regression” olarak da bilinir ve modelin parametrelerini küçültmek için başka bir yaygın yöntemdir. L2 regülasyonu, katsayıların karelerinin toplamını ceza terimi olarak ekler:


L2 regülasyonu, tüm parametreleri sıfıra yaklaştırma eğilimindedir, ancak L1'den farklı olarak hiçbirini tam olarak sıfırlamaz. Bu, modelde tüm özelliklerin bir miktar ağırlığı olmasını sağlar, bu da L2 regülasyonunun ağırlıkları daha dengeli bir şekilde azaltmasına yol açar.
Avantajlar:
- Model parametrelerini dengeli bir şekilde küçültür, aşırı uyumu azaltır.
- Özellikle veri setinde yüksek korelasyonlu özellikler varsa daha kararlı sonuçlar verir.
Dezavantajlar:
- L1 regülasyonundaki gibi bazı özellikleri tamamen ortadan kaldırmaz; bu yüzden modelin yorumlanabilirliğini artırmaz.

C. Elastik Net
Elastik Net, L1 ve L2 regülasyonlarının birleşimidir. Hem L1 hem de L2 ceza terimlerini içeren bu teknik, iki yöntemin avantajlarını bir arada sunar:

Elastik Net, L1 ve L2 regülasyonlarının kombinasyonu sayesinde özellik seçimi yaparken aynı zamanda ağırlıkları da dengeler. Bu, modelin hem daha basit hem de daha genelleyici olmasını sağlar.
Avantajlar:
- Hem L1 hem de L2 regülasyonlarının avantajlarını sunar.
- Özellikle yüksek boyutlu veri setlerinde, yani özellik sayısının örnek sayısından fazla olduğu durumlarda etkili sonuçlar verir.
Dezavantajlar:
- Regülasyon parametrelerinin ayarlanması daha karmaşık olabilir.
Bu üç temel regülasyon tekniği, makine öğreniminde sıkça kullanılır ve modelin performansını iyileştirmek için çeşitli senaryolarda uygulanabilir. Sonraki bölümde, bu tekniklerin daha ileri ve karmaşık uygulamalarını inceleyeceğiz.
IV. İleri Regülasyon Teknikleri
Makine öğreniminde, özellikle derin öğrenme modelleriyle çalışırken, aşırı uyumu önlemek için temel regülasyon tekniklerine ek olarak daha gelişmiş yöntemlere de ihtiyaç duyulur. Bu ileri regülasyon teknikleri arasında Dropout, Early Stopping ve Data Augmentation bulunur. Bu teknikler, modellerin genelleme yeteneklerini artırmak ve aşırı uyumu engellemek için geliştirilmiştir.
A. Dropout
Dropout, derin öğrenme modellerinde aşırı uyumu azaltmak için kullanılan popüler bir tekniktir. Bu teknik, her eğitim iterasyonunda (epoch) belirli bir oranda nöronun (birimin) rastgele olarak “düşürülmesi” (devre dışı bırakılması) prensibine dayanır. Dropout’un temel amacı, modelin sadece belirli nöronlara bağlı kalmasını engelleyerek, tüm nöronların katkısını eşit şekilde değerlendirmektir.
Dropout, modelin farklı nöron kombinasyonları ile eğitilmesini sağlar, bu da modelin farklı özelliklere karşı daha dayanıklı olmasına ve genelleme yeteneğinin artmasına yol açar. Eğitim sırasında her bir nöron, belirli bir “dropout” oranı ile rastgele devre dışı bırakılır. Örneğin, %50 dropout oranı, her iterasyonda nöronların yarısının rastgele devre dışı kalması anlamına gelir.
Avantajlar:
- Aşırı uyumu etkili bir şekilde azaltır.
- Modelin daha dayanıklı ve genelleyici olmasını sağlar.
- Hesaplama açısından oldukça verimlidir ve ek parametre gerektirmez.
Dezavantajlar:
- Eğitimi yavaşlatabilir, çünkü her iterasyonda rastgele bir yapı kullanılır.
- Test aşamasında dropout devre dışı bırakılmalı ve ağırlıklar ölçeklendirilmelidir.

Görsel Generative Deep Learning (David Foster) kitabından alıntıdır.
B. Early Stopping
Early Stopping, modelin eğitimini uygun bir noktada durdurarak aşırı uyumu önleyen bir tekniktir. Genellikle eğitim sırasında modelin doğruluğu (accuracy) veya hatası (loss), eğitim veri seti üzerinde sürekli iyileşirken, doğrulama veri seti üzerindeki performans bir noktadan sonra düşmeye başlar. Bu düşüş, modelin eğitim veri setine aşırı uyum sağlamaya başladığını gösterir.
Early Stopping, doğrulama veri setindeki performans düşmeye başladığında eğitim sürecini durdurarak, modelin genelleme yeteneğinin en yüksek olduğu noktada kalmasını sağlar. Böylece model, eğitim verisine aşırı uyum sağlamadan durdurulmuş olur.
Avantajlar:
- Aşırı uyumu önlemede oldukça etkilidir.
- Ekstra hesaplama veya model parametreleri gerektirmez.
- Genellikle eğitim süresini kısaltır.
Dezavantajlar:
- Doğrulama seti üzerindeki performans değişimleri bazen rastgele olabilir, bu da erken durdurmaya neden olabilir.
- Doğrulama setinin dikkatlice seçilmesi gerekir.

C. Data Augmentation
Data Augmentation (Veri Artırma), modelin genelleme yeteneğini artırmak için kullanılan başka bir ileri regülasyon tekniğidir. Bu teknik, veri setini yapay olarak genişletmek için veri örneklerinin üzerinde çeşitli işlemler (döndürme, kaydırma, yakınlaştırma, parlaklık ayarı vb.) yapar. Data Augmentation, özellikle görüntü işleme ve bilgisayarlı görü (computer vision) alanlarında yaygın olarak kullanılır.
Bu teknik, modelin daha geniş bir veri seti üzerinde eğitilmesini sağlar, böylece modelin çeşitli örüntüleri öğrenme kapasitesi artar. Veri setinin yapay olarak artırılması, modelin aşırı uyum yapmasını önler ve daha sağlam bir performans elde edilmesini sağlar.
Avantajlar:
- Modelin genelleme yeteneğini artırır.
- Özellikle küçük veri setlerinde etkili bir şekilde kullanılır.
- Modelin farklı veri varyasyonlarına karşı daha dayanıklı olmasını sağlar.
Dezavantajlar:
- Yüksek hesaplama maliyeti gerektirebilir.
- Uygulanan veri artırma tekniklerinin uygun şekilde seçilmesi ve ayarlanması önemlidir.
İleri regülasyon teknikleri, modelin aşırı uyumunu önlemek ve genel performansını artırmak için oldukça etkili araçlardır. Bu teknikler, özellikle karmaşık ve derin öğrenme modelleri üzerinde kullanıldığında, modellerin gerçek dünya uygulamalarındaki başarısını önemli ölçüde artırabilir. Sonraki bölümde, bu tekniklerin Python ile nasıl uygulanabileceğini inceleyeceğiz.
V. Python ile Regülasyon Uygulamaları
Bu bölümde, farklı regülasyon tekniklerini Python kullanarak nasıl uygulayabileceğimizi inceleyeceğiz. Örnek veri seti olarak California Housing Prices veri setini kullanacağız. Bu veri seti, ABD’nin California eyaletindeki konutların fiyatlarına ilişkin çeşitli özellikleri içerir. Veri seti, aşırı uyum (overfitting) problemini görselleştirmek ve çeşitli regülasyon tekniklerinin etkilerini değerlendirmek için idealdir.
A. Veri Setinin Hazırlanması ve Görselleştirilmesi
İlk olarak, veri setini yükleyip ön işleme yapacağız ve özellikleri görselleştirerek veri dağılımını anlayacağız.
# Gerekli kütüphanelerin yüklenmesi
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.datasets import fetch_california_housing
# California Housing Prices veri setini yükleyelim
housing = fetch_california_housing()
X = pd.DataFrame(housing.data, columns=housing.feature_names)
y = housing.target
# Veri setinin ilk 5 satırını görüntüleyelim
print(X.head())
# Eğitim ve test setine bölünmesi
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Özelliklerin ölçeklendirilmesi (standardizasyon)
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)
# Özelliklerin dağılımını görselleştirelim
plt.figure(figsize=(10, 6))
plt.hist(y_train, bins=30, alpha=0.6, color='b', label='Train')
plt.hist(y_test, bins=30, alpha=0.6, color='r', label='Test')
plt.xlabel('Konut Fiyatı (Bin $)')
plt.ylabel('Frekans')
plt.legend()
plt.title('California Housing Prices Veri Setinin Dağılımı')
plt.show()
MedInc HouseAge AveRooms AveBedrms Population AveOccup Latitude \
0 8.3252 41.0 6.984127 1.023810 322.0 2.555556 37.88
1 8.3014 21.0 6.238137 0.971880 2401.0 2.109842 37.86
2 7.2574 52.0 8.288136 1.073446 496.0 2.802260 37.85
3 5.6431 52.0 5.817352 1.073059 558.0 2.547945 37.85
4 3.8462 52.0 6.281853 1.081081 565.0 2.181467 37.85
Longitude
0 -122.23
1 -122.22
2 -122.24
3 -122.25
4 -122.25

B. Regülasyon Olmadan Model Eğitimi
Şimdi, regülasyon kullanmadan bir lineer regresyon modeli eğiteceğiz ve modelin performansını değerlendireceğiz.
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error
# Regülasyon olmadan lineer regresyon modeli eğitimi
lin_reg = LinearRegression()
lin_reg.fit(X_train_scaled, y_train)
# Tahminler ve hata hesaplama
y_pred = lin_reg.predict(X_test_scaled)
mse = mean_squared_error(y_test, y_pred)
print(f"Regülasyon olmadan MSE: {mse:.4f}")
Regülasyon olmadan MSE: 0.5559
C. L1 Regülasyonu (Lasso) Uygulaması
L1 regülasyonu (Lasso) kullanarak bir model eğiteceğiz ve sonuçları değerlendireceğiz.
from sklearn.linear_model import Lasso
# Lasso (L1) Regülasyonu ile model eğitimi
lasso_reg = Lasso(alpha=0.1)
lasso_reg.fit(X_train_scaled, y_train)
# Tahminler ve hata hesaplama
y_pred_lasso = lasso_reg.predict(X_test_scaled)
mse_lasso = mean_squared_error(y_test, y_pred_lasso)
print(f"L1 Regülasyonu (Lasso) MSE: {mse_lasso:.4f}")
L1 Regülasyonu (Lasso) MSE: 0.6796
D. L2 Regülasyonu (Ridge) Uygulaması
L2 regülasyonu (Ridge) kullanarak bir model eğiteceğiz ve sonuçları değerlendireceğiz.
from sklearn.linear_model import Ridge
# Ridge (L2) Regülasyonu ile model eğitimi
ridge_reg = Ridge(alpha=1.0)
ridge_reg.fit(X_train_scaled, y_train)
# Tahminler ve hata hesaplama
y_pred_ridge = ridge_reg.predict(X_test_scaled)
mse_ridge = mean_squared_error(y_test, y_pred_ridge)
print(f"L2 Regülasyonu (Ridge) MSE: {mse_ridge:.4f}")
L2 Regülasyonu (Ridge) MSE: 0.5559
E. Elastik Net Uygulaması
Elastik Net kullanarak bir model eğiteceğiz ve sonuçları değerlendireceğiz.
from sklearn.linear_model import ElasticNet
# Elastik Net Regülasyonu ile model eğitimi
elastic_net_reg = ElasticNet(alpha=0.1, l1_ratio=0.5)
elastic_net_reg.fit(X_train_scaled, y_train)
# Tahminler ve hata hesaplama
y_pred_enet = elastic_net_reg.predict(X_test_scaled)
mse_enet = mean_squared_error(y_test, y_pred_enet)
print(f"Elastik Net Regülasyonu MSE: {mse_enet:.4f}")
Elastik Net Regülasyonu MSE: 0.6359
F. Dropout Uygulaması
Dropout, genellikle derin öğrenme modellerinde kullanılan bir tekniktir. Bu örnekte, TensorFlow ve Keras kütüphanelerini kullanarak dropout uygulamalı bir yapay sinir ağı eğiteceğiz.
import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Dropout
# Yapay sinir ağı modelinin tanımlanması
model = Sequential([
Dense(64, activation='relu', input_shape=(X_train_scaled.shape[1],)),
Dropout(0.5),
Dense(32, activation='relu'),
Dropout(0.5),
Dense(1)
])
# Modelin derlenmesi
model.compile(optimizer='adam', loss='mse')
# Modelin eğitimi
history = model.fit(X_train_scaled, y_train, epochs=100, validation_split=0.2, verbose=0)
# Modelin tahminleri ve hata hesaplama
y_pred_dropout = model.predict(X_test_scaled)
mse_dropout = mean_squared_error(y_test, y_pred_dropout)
print(f"Dropout Uygulaması MSE: {mse_dropout:.4f}")
129/129 [==============================] - 0s 1ms/step
Dropout Uygulaması MSE: 0.3220
G. Early Stopping Uygulaması
Early Stopping ile modeli eğitim sürecinde izleyip belirli bir noktada durduracağız.
from tensorflow.keras.callbacks import EarlyStopping
# Early Stopping callback'inin tanımlanması
early_stopping = EarlyStopping(monitor='val_loss', patience=10, restore_best_weights=True)
# Modelin yeniden tanımlanması ve eğitimi
model = Sequential([
Dense(64, activation='relu', input_shape=(X_train_scaled.shape[1],)),
Dense(32, activation='relu'),
Dense(1)
])
model.compile(optimizer='adam', loss='mse')
history = model.fit(X_train_scaled, y_train, epochs=100, validation_split=0.2, callbacks=[early_stopping], verbose=0)
# Tahminler ve hata hesaplama
y_pred_early_stopping = model.predict(X_test_scaled)
mse_early_stopping = mean_squared_error(y_test, y_pred_early_stopping)
print(f"Early Stopping Uygulaması MSE: {mse_early_stopping:.4f}")
129/129 [==============================] - 0s 1ms/step
Early Stopping Uygulaması MSE: 0.2778
H. Sonuçların Karşılaştırılması ve Görselleştirilmesi
Son olarak, tüm tekniklerin performansını karşılaştırarak bir değerlendirme yapacağız.
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import Lasso, Ridge, ElasticNet
from sklearn.metrics import mean_squared_error
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Dropout
from tensorflow.keras.callbacks import EarlyStopping
from sklearn.datasets import fetch_california_housing
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
# California Housing Prices veri setini yükleyelim
housing = fetch_california_housing()
X = pd.DataFrame(housing.data, columns=housing.feature_names)
y = housing.target
# Eğitim ve test setine bölünmesi
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Özelliklerin ölçeklendirilmesi (standardizasyon)
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)
# Lasso (L1) Regülasyonu
lasso_reg = Lasso(alpha=0.1)
lasso_reg.fit(X_train_scaled, y_train)
y_pred_lasso = lasso_reg.predict(X_test_scaled)
mse_lasso = mean_squared_error(y_test, y_pred_lasso)
# Ridge (L2) Regülasyonu
ridge_reg = Ridge(alpha=1.0)
ridge_reg.fit(X_train_scaled, y_train)
y_pred_ridge = ridge_reg.predict(X_test_scaled)
mse_ridge = mean_squared_error(y_test, y_pred_ridge)
# Elastik Net Regülasyonu
elastic_net_reg = ElasticNet(alpha=0.1, l1_ratio=0.5)
elastic_net_reg.fit(X_train_scaled, y_train)
y_pred_enet = elastic_net_reg.predict(X_test_scaled)
mse_enet = mean_squared_error(y_test, y_pred_enet)
# Dropout kullanarak model eğitimi
model = Sequential([
Dense(64, activation='relu', input_shape=(X_train_scaled.shape[1],)),
Dropout(0.5),
Dense(32, activation='relu'),
Dropout(0.5),
Dense(1)
])
model.compile(optimizer='adam', loss='mse')
# Early Stopping callback'inin tanımlanması
early_stopping = EarlyStopping(monitor='val_loss', patience=10, restore_best_weights=True)
# Modelin eğitimi
history = model.fit(X_train_scaled, y_train, epochs=100, validation_split=0.2, callbacks=[early_stopping], verbose=0)
# Tahminler ve hata hesaplama
y_pred_dropout = model.predict(X_test_scaled)
mse_dropout = mean_squared_error(y_test, y_pred_dropout)
# Farklı modellerin MSE sonuçlarını karşılaştıralım
mse_results = {
'Regülasyon Olmadan': mse,
'L1 Regülasyonu (Lasso)': mse_lasso,
'L2 Regülasyonu (Ridge)': mse_ridge,
'Elastic Net': mse_enet,
'Dropout': mse_dropout
}
# Sonuçları görselleştirme
plt.figure(figsize=(10, 6))
plt.bar(mse_results.keys(), mse_results.values(), color=['blue', 'red', 'green', 'purple', 'orange'])
plt.xlabel('Model Türü')
plt.ylabel('MSE')
plt.title('Farklı Regülasyon Tekniklerinin Performans Karşılaştırması')
plt.show()
129/129 [==============================] - 0s 1ms/step

Yukarıdaki grafiğe bakarak tüm regülasyon tekniklerinin modelin performansını olumlu ya da olumsuz etkilediğini ancak Dropout tekniğinin en düşük MSE değerini vererek bu veri seti ve model için en iyi performansı sergilediğini söyleyebiliriz.
XI. Regülasyonun Sınırlamaları ve Dikkat Edilmesi Gereken Noktalar
Regülasyon teknikleri, makine öğrenimi modellerinin performansını artırmada önemli bir rol oynasa da, her yöntemin bazı sınırlamaları ve dikkat edilmesi gereken noktaları vardır. Bu bölümde, aşırı regülasyonun etkileri, veri seti büyüklüğüne göre regülasyon seçimi ve domain bilgisinin önemi üzerine detaylı bir inceleme yapacağız.
A. Aşırı Regülasyonun Etkileri
Regülasyon teknikleri, modelin aşırı uyum (overfitting) yapmasını önlemeye yardımcı olur; ancak aşırı regülasyon uygulamak, model performansını olumsuz etkileyebilir. Aşırı regülasyonun etkileri şunlardır:
- Düşük Model Performansı:
- Aşırı regülasyon, modelin eğitildiği veriyi yeterince iyi öğrenmesini engelleyebilir. Bu durum, modelin hem eğitim hem de test verilerindeki performansının düşmesine neden olabilir. Regülasyon parametrelerinin çok yüksek ayarlandığı durumlarda, modelin öğrenme kapasitesi kısıtlanır ve bu da düşük performansa yol açar.
2. Katsayıların Aşırı Küçültülmesi:
- L1 (Lasso) ve L2 (Ridge) regülasyonları, modelin katsayılarını küçültür. Aşırı regülasyon, bazı katsayıların sıfıra yaklaşmasına veya tamamen sıfır olmasına neden olabilir. Bu durum, modelin önemli özellikleri göz ardı etmesine ve veri setindeki karmaşıklığı yeterince yansıtamamasına yol açabilir.
3. Genelleştirme Performansının Bozulması:
- Regülasyonun aşırı uygulanması, modelin genelleştirme yeteneğini olumsuz etkileyebilir. Model, eğitim verilerindeki hataları düşük bir şekilde öğrenir ancak test verilerinde iyi performans göstermeyebilir.
B. Veri Seti Büyüklüğüne Göre Regülasyon Seçimi
Regülasyon tekniklerinin etkinliği, veri setinin büyüklüğüne bağlı olarak değişebilir. Veri seti büyüklüğüne göre uygun regülasyon stratejilerini seçmek önemlidir:
- Küçük ve Büyük Veri Setleri:
- Küçük veri setlerinde, modelin aşırı uyum yapma riski yüksektir. Bu nedenle, daha güçlü regülasyon teknikleri kullanılabilir. L1 ve L2 regülasyonları gibi teknikler, modelin karmaşıklığını kontrol etmek ve aşırı uyumu önlemek için etkilidir.
- Büyük veri setlerinde, model genellikle daha iyi genelleştirme yeteneğine sahiptir. Bu durumda, daha az regülasyon gerekebilir. Ancak, büyük veri setleri bile regülasyon gerektirebilir, özellikle veri seti içindeki gürültü seviyesi yüksekse. Elastic Net gibi regülasyon teknikleri, L1 ve L2 regülasyonlarını birleştirerek, veri setinin karmaşıklığını dengelemek için kullanılabilir.
2. Veri Setinin Özellikleri:
- Veri setinin özellikleri ve dağılımı da regülasyon seçimini etkiler. Özellikle yüksek boyutlu veri setlerinde, regülasyon teknikleri modelin aşırı karmaşıklığını kontrol etmek için kullanılır. Özelliklerin sayısı arttıkça, regülasyon tekniklerinin önemi de artar.
C. Domain Bilgisinin Önemi
Domain bilgisi, regülasyon stratejilerini ve model tasarımını etkilemede kritik bir rol oynar:
- Özellik Seçimi ve Mühendislik:
- Domain bilgisi, hangi özelliklerin önemli olduğunu belirlemede ve özellik mühendisliğinde (feature engineering) rehberlik edebilir. Bu bilgi, hangi regülasyon tekniklerinin uygulanması gerektiğine karar vermede yardımcı olabilir. Örneğin, bazı domainlerde belirli özelliklerin tamamen sıfırlanması (L1 regülasyonu) anlamlı olabilir.
2. Modelin Yorumlanabilirliği:
- Domain bilgisi, modelin yorumlanabilirliğini artırabilir. Örneğin, bazı domainlerde modelin çıktılarının yorumlanabilirliği önemli olabilir ve bu durumda L1 regülasyonunun tercih edilmesi gerekebilir çünkü bu teknik bazı özellikleri sıfıra indirir ve böylece modelin yorumlanmasını kolaylaştırır.
3. Güvenilirlik ve Doğruluk:
- Domain bilgisi, modelin güvenilirliğini ve doğruluğunu artırabilir. Özellikle tıp veya finans gibi kritik alanlarda, domain bilgisi regülasyon stratejilerinin doğru bir şekilde seçilmesini sağlar ve modelin güvenilirliğini artırır.
Regülasyon tekniklerinin etkinliği, veri setinin büyüklüğü, modelin karmaşıklığı ve domain bilgisi gibi faktörlere bağlı olarak değişir. Bu nedenle, regülasyon stratejilerini belirlerken bu faktörlerin göz önünde bulundurulması önemlidir. Aşırı regülasyonun etkilerinden kaçınmak ve veri setine uygun regülasyon tekniklerini seçmek, başarılı bir model oluşturmak için kritik öneme sahiptir.
XII. Regülasyonun Sınırlamaları ve Dikkat Edilmesi Gereken Noktalar
Sonuç olarak, regülasyon, modern makine öğrenimi uygulamalarının vazgeçilmez bir parçasıdır. Doğru regülasyon tekniklerini kullanmak, modellerin performansını ve güvenilirliğini önemli ölçüde artırabilir. Bu makalede sunulan bilgiler ve pratik örnekler, regülasyonun gücünü anlamanıza ve kendi projelerinizde etkili bir şekilde uygulamanıza yardımcı olacaktır. Unutmayın ki, makine öğreniminde mükemmel sonuçlar elde etmek için teorik bilgi, pratik deneyim ve sürekli deney yapmak gereklidir. Regülasyon tekniklerini ustaca kullanarak, daha güçlü, daha güvenilir ve gerçek dünya problemlerine daha iyi çözümler sunan modeller geliştirebilirsiniz.
Okuduğunuz için teşekkür ederim. Yorum ve geri dönüşlerinizi bekliyorum.
Veri biliminde yol arkadaşlığı için “Data Science Türkiye” grubumuza katılabilir, veri bilimiyle ilgilenen birçok kişiyle bilgi paylaşabilir ve deneyimlerinizi artırabilirsiniz.
메타데이터
- post_id
- e8baf6955de2
- slug
- makine-öğreniminde-regülasyon-e8baf6955de2
- url
- https://medium.com/devopsturkiye/makine-%C3%B6%C4%9Freniminde-reg%C3%BClasyon-e8baf6955de2
- canonical_url
- https://medium.com/devopsturkiye/makine-%C3%B6%C4%9Freniminde-reg%C3%BClasyon-e8baf6955de2
- author_url
- https://medium.com/@muratkose123
- status
- ok
- fetched_at
- 2026-06-09 15:37:30