Kurs
Modelinizin doğruluğu yanlış algoritmayı seçtiğiniz için kötü değil - onu hiç ayarlamadığınız için.
Çoğu kişi bir modeli varsayılan ayarlarla eğitir, doğruluğun yüzde 80 civarında sabitlendiğini görür ve algoritmanın görevlerine uygun olmadığını söyler. Ancak sorun algoritma değildir. Her ML modelinin, nasıl öğrendiğini kontrol eden ve eğitim başlamadan önce belirlenen parametreleri vardır. Bunları doğru ayarlarsanız, aynı modelden aynı veride %10-20 daha fazla doğruluk elde edebilirsiniz.
Bu parametrelere hiperparametre denir ve onları iyi seçmek, idare eder bir model ile her seferinde doğruyu bulan bir modeli birbirinden ayırır. Hiperparametre ayarı, size en iyi performansı veren kombinasyonu arama sürecidir.
Bu yazıda hiperparametre ayarının ne olduğunu, en iyi çalışan arama stratejilerini, kendinizi kandırmadan sonuçları nasıl değerlendirileceğini ve tüm süreci Python ve R'da nasıl yürüteceğinizi anlatacağım.
Veri bilimi ve makine öğrenmesinde yeniyseniz, daha ileri konulara geçmeden önce Python ile Makine Öğrenmesinin Temelleri kursuna göz atın.
Hiperparametre Ayarı Nedir?
Hiperparametre ayarı, bir modelin en iyi şekilde öğrenmesini sağlayan ayarları bulma sürecidir.
Her ML modelinde iki tür sayı vardır. Bazıları eğitim sırasında veriden öğrenilir; bir sinir ağındaki ağırlıklar veya bir karar ağacındaki bölme noktaları gibi. Diğerleri ise eğitim başlamadan önce belirlenir; bunlar hiperparametrelerdir. Modelin nasıl öğrendiğini — ne kadar hızlı, ne kadar derin, ne kadar genellemesi veya ezberlemesi gerektiğini — kontrol ederler.
Varsayılan hiperparametreler, yalnızca modelin çalışmasını sağlamak içindir. Belirli veri kümeniz için en iyi modeli vermek üzere tasarlanmamıştır. Görüntü sınıflandırma için işe yarayan varsayılan bir öğrenme oranı, mantıken tablolu verilerde iyi performans göstermeyecektir. Temiz bir veri kümesi için uygun olan varsayılan ağaç derinliği, gürültülü bir veri kümesinde aşırı uyuma yol açacaktır. Fikir bu.
Ayarlama süreci, farklı hiperparametre değer kombinasyonlarını arar, her biri için bir model eğitir ve doğrulama verilerinizde en iyi performansı gösteren modeli saklar.
Bundan elde edeceğiniz kazanımlar, çoğu zaman daha iyi ama ayarlanmamış bir algoritmaya geçmekten daha fazladır.
Hiperparametreler ve Model Parametreleri
Fark, kimin ve ne zaman belirlediğine dayanır.
Model parametreleri eğitim sırasında algoritma tarafından öğrenilir. Bunları kendiniz ayarlamazsınız. Eğitim süreci, veriye bakarak ve bir kayıp fonksiyonunu en aza indirerek bunları ayarlar. Örneğin:
- Bir sinir ağındaki ağırlıklar ve biaslar
- Doğrusal regresyondaki katsayılar
- Bir karar ağacındaki bölme eşikleri
- Bir SVM'deki destek vektörleri
Hiperparametreler eğitime başlamadan önce sizin tarafınızdan seçilir. Öğrenme sürecinin nasıl işleyeceğini kontrol ederler, ancak algoritma bunları hiçbir şekilde ayarlamaz. Siz ayarlamazsanız, kütüphane varsayılanlarını kullanır. Örneğin:
- Gradyan inişte öğrenme oranı
- Rastgele ormanda ağaç sayısı
- Lojistik regresyonda düzenlileştirme şiddeti
- Bir SVM'de çekirdek türü
Yan yana bir karşılaştırma şöyle:
| Model parametreleri | Hiperparametreler | |
|---|---|---|
| Belirleyen | Eğitim algoritması | Siz |
| Zaman | Eğitim sırasında | Eğitimden önce |
| Veriden öğrenilir | Evet | Hayır |
| Örnekler | Ağırlıklar, katsayılar, bölme noktaları | Öğrenme oranı, ağaç derinliği, düzenlileştirme şiddeti |
| Çalıştırmalar arasında değişir | Her yeniden eğitimde | Yalnızca siz değiştirirseniz |
Model parametreleri, modelin ne öğrendiğini yanıtlar. Hiperparametreler ise nasıl öğrendiğini.
Hiperparametre Ayarı Nasıl Çalışır
Ayarlama bir döngüdür.
Öncelikle hangi hiperparametreleri arayacağınızı seçer ve her biri için bir değer aralığı tanımlarsınız. Ardından bir kombinasyonla modeli eğitir, doğrulama verilerinde nasıl performans gösterdiğini ölçer ve neyi deneyeceğinize bu sonuca göre karar verirsiniz.
Döngü şu şekildedir:
- Hiperparametreleri seçin ve her biri için bir değer aralığı belirleyin.
- Modeli eğitin ve belirli bir değer kombinasyonunu kullanın.
- Performansı değerlendirin ve görevinize uygun bir metrikle bir doğrulama kümesi üzerinde ölçün.
- Hiperparametreleri güncelleyin ve öğrendiklerinize göre — ya önceden tanımlı listedeki bir sonraki kombinasyona geçerek ya da son sonucu bir sonraki seçimi yönlendirmek için kullanarak — devam edin.
- Tekrarlayın ve performans artmayı bırakana veya hesaplama bütçeniz tükenene kadar sürdürün.
Yinelemeler arasındaki güncelleme biçimi, arama yöntemlerini birbirinden ayırır. Elle ayarlama sezgilerle günceller. Izgara arama, önceden tanımlı bir liste boyunca ilerleyerek günceller. Bayesçi yöntemler, hangi kombinasyonların işe yarama olasılığı yüksek olduğuna dair bir model kurarak günceller.
Şimdi bu yöntemlere gireyim.
Hiperparametre Arama Yöntemleri
Seçeceğiniz arama yöntemi, ne kadar hesaplama yapacağınızı ve iyi hiperparametreleri bulma olasılığınızı belirler.
Elle arama
Elle arama en basit yöntemdir. Bir hiperparametre kombinasyonu seçer, modeli eğitir, sonuca bakar ve gördüklerinize göre ayarlarsınız.
Küçük bir modeliniz, birkaç hiperparametreniz ve algoritma hakkında önceden deneyiminiz olduğunda işe yarar. Eğer XGBoost'un genellikle 0,05 civarı bir öğrenme oranını ve 6 ağaç derinliğini sevdiğini biliyorsanız, oradan başlayıp gözlemlerinize göre ayarlayabilirsiniz.
Arama uzayı büyüdüğünde elle arama işe yaramaz. Beşer makul değere sahip üç hiperparametre bile 125 kombinasyon eder ve hiç kimse 125 modeli elle ayarlamaz.
Izgara arama
Izgara arama, önceden tanımlı bir değer listesindeki her kombinasyonu kontrol eder.
Bir ızgara tanımlarsınız — örneğin, öğrenme oranları [0.01, 0.05, 0.1] ve ağaç derinlikleri [3, 5, 7] — ve ızgara arama dokuz kombinasyonun her biri için bir model eğitir. Kapsamlıdır ve tekrarlanabilirdir.
Sorun, hesaplama maliyetidir.
Beş değeri olan bir hiperparametre daha eklemek, eğitim çalıştırmalarınızı beşle çarpar. Izgara arama ayrıca önemsiz değerlere de emek harcar — ağaç derinliği skorunuzu zar zor etkiliyorsa bile, ızgara arama yine de listelediğiniz her derinlik için bir model eğitir.
Izgara arama, iki veya üç hiperparametreli küçük arama alanları için iyi bir varsayılandır.
Rastgele arama
Rastgele arama, sabit bir ızgarada gezinmek yerine bir aralıktan rastgele kombinasyonlar örnekler.
Her hiperparametre için bir dağılım tanımlarsınız ve rastgele arama bu dağılımlardan kombinasyonlar çeker. Önemsiz değerlere çalıştırma harcamadığı için ızgara aramadan daha verimlidir — eğer üç hiperparametreden yalnızca biri performansı etkiliyorsa, rastgele arama yine de önemli olanı birçok farklı değer boyunca keşfeder.

Izgara arama ve rastgele arama
İki hiperparametreden fazlası için rastgele arama daha iyi bir varsayılandır.
Bayesçi optimizasyon
Bayesçi optimizasyon, bir sonraki denemede ne yapılacağına önceki denemelerin sonuçlarını kullanarak karar verir.
Hiperparametre kombinasyonlarının performansa nasıl karşılık geldiğine dair olasılıksal bir model kurar, ardından beklenen skoru en yüksek olan ya da belirsizliği en yüksek olan bir sonraki kombinasyonu seçer. Bu keşif-sömürü dengesidir; yani ya iyi olabilecek yeni bölgeleri keşfedersiniz ya da iyi olduğunu bildiğiniz bölgeleri sömürürsünüz.
Bayesçi yöntemler, rastgele veya ızgara aramasına kıyasla çok daha az denemeyle iyi hiperparametreler bulur. Bedeli, her denemenin biraz daha uzun sürmesidir çünkü algoritma bir sonraki noktayı seçmeden önce kendi iç modelini uydurmalıdır. Optuna ve Hyperopt gibi kütüphaneler bunu sizin için yapar.
Eğitimin pahalı olduğu ve yalnızca az sayıda çalıştırmayı karşılayabildiğiniz durumlarda Bayesçi optimizasyon kullanın.
Ardışık yarılama ve Hyperband
Ardışık yarılama ve Hyperband, kötü çalıştırmaları erken durdurarak hesaplama süresini azaltır.
Ardışık yarılama, birçok hiperparametre kombinasyonunu küçük bir eğitim bütçesiyle başlatır, en kötü yarısını eler, hayatta kalanlar için bütçeyi iki katına çıkarır ve tekrarlar.
Hyperband, doğru başlangıç yapılandırmasını tahmin etmek zorunda kalmamanız için farklı bütçe bölünmeleriyle ardışık yarılamayı birden çok kez çalıştıran bir sarmalayıcıdır.
Her iki yöntem de eğitim yavaş olduğunda ve arama alanı geniş olduğunda kullanışlıdır. Erken performansın nihai performans için iyi bir sinyal olduğu durumlarda en iyi çalışırlar; bu genellikle sinir ağları ve gradyan artırma için geçerlidir.
Yöntemlerin karşılaştırması şöyle:
| Hesaplama maliyeti | Arama verimliliği | En uygun olduğu durumlar | |
|---|---|---|---|
| Elle arama | Düşük | Düşük | Küçük modeller, ön deneyim |
| Izgara arama | Yüksek | Düşük | 2-3 hiperparametre, küçük aralıklar |
| Rastgele arama | Orta | Orta | 4+ hiperparametre, bilinmeyen önem |
| Bayesçi optimizasyon | Orta | Yüksek | Pahalı eğitim, küçük bütçe |
| Ardışık yarılama / Hyperband | Düşük ile orta | Yüksek | Geniş arama alanları, yavaş eğitim |
Hiperparametre Performansının Değerlendirilmesi
Doğru bir değer aralığı seçmezseniz ayarlama sizi ileri götürmez.
Değerlendirmeniz hatalıysa yanlış hiperparametreleri seçeceksiniz. Dört şeyi doğru yapmak gerekir — veriyi nasıl böldüğünüz, performansı nasıl ölçtüğünüz, hangi metriği optimize ettiğiniz ve test setini nasıl temiz tuttuğunuz.
Eğitim, doğrulama ve test bölmeleri
Ayarlamadan önce verinizi üçe bölün.
Eğitim seti modelin öğrendiği kısımdır. Doğrulama seti ayarlama sırasında her hiperparametre kombinasyonunu puanlamak için kullanılır. Test seti ise yalnızca en sonda, nihai modelin görülmemiş verilerde nasıl performans gösterdiğini ölçmek için kullanılır.
Eğer test setine karşı ayarlama yaparsanız, harika görünen bir doğruluk sayısı ve üretimde düşük performans gösteren bir model elde edersiniz. Test setine karşı aldığınız her ayarlama kararı, bu setle ilgili bilgiyi modelinize sızdırır.
Orta boy veri kümeleri için yaygın bir bölme 60/20/20, daha büyükleri için 80/10/10'dur.
Çapraz doğrulama
Doğrulama setiniz küçük olduğunda çapraz doğrulama, hiperparametreleri puanlamak için daha iyi bir yöntemdir.
Eğitim verisini genellikle 5 veya 10 olmak üzere k katmana bölersiniz. Her hiperparametre kombinasyonu için k-1 katmanda eğitim yapar ve kalan birinde doğrular, sonra döndürürsünüz. Nihai skor tüm katmanların ortalamasıdır.
Çapraz doğrulama, tek bir şanslı ya da şanssız doğrulama bölmesine bel bağlamadığınız için, bir hiperparametre kombinasyonunun ne kadar genelleştiğine dair daha kararlı bir tahmin verir. Maliyeti, kombinasyon başına bir yerine k model eğitmektir.
Veri kümeniz tek bir doğrulama bölmesinin güvenilir olmadığı kadar küçükse ve ek eğitim maliyetini karşılayabiliyorsanız çapraz doğrulama kullanın.
Değerlendirme metriklerini seçme
Optimize ettiğiniz metrik, gerçekten önem verdiğiniz şeyi yansıtmalıdır.
Doğruluk, dengeli sınıflandırma için uygundur ancak dengesiz problemler için anlamlı değildir. Örneğin, her şey için "dolandırıcılık değil" diyen bir dolandırıcılık tespit modeli %99 doğruluk elde edebilir ama tüm vakaları kaçırır. Dengesiz sınıflandırma için kesinlik, duyarlılık, F1 veya ROC-AUC kullanın. Regresyon için aykırı değerlere önem verip vermediğinize bağlı olarak RMSE, MAE veya R kare kullanın.
Ayarlamaya başlamadan önce tek bir birincil metrik seçin ve ona sadık kalın.
Veri sızıntısından kaçınma
Veri sızıntısı, doğrulama veya test setinizden gelen bilginin eğitime karışmasıyla gerçekleşir.
İşte yaygın gerçekleşme yolları:
- Bölmeden önce tam veri kümesini ölçeklemek veya normalize etmek; böylece doğrulama istatistikleri eğitime sızar
- Tüm veri kümesindeki hedef değerlerini kullanan özellik mühendisliği
- Ayrı bir doğrulama seti yerine test setine karşı ayarlama yapmak
- Zaman serisi verilerini, bölmede zaman sırasına saygı göstermeden kullanmak
Tüm ön işleme adımlarını yalnızca eğitim setinde uydurun, ardından doğrulama ve teste uygulayın. Scikit-learn'de Pipeline bunun içindir — ön işlemenin ve modellemenin bölmelerinize saygı duyan tek bir nesne içinde sarılmasını sağlar.
Hiperparametre Ayarının Uygulanması
Çoğu ML kütüphanesi, aramayı ve çapraz doğrulamayı gerçekleştiren araçlar içerir; böylece hiçbir şeyi sıfırdan uygulamanız gerekmez.
Python'da hiperparametre ayarı
Scikit-learn, çoğu kullanım durumunu kapsayan iki ayarlama sınıfıyla birlikte gelir — ızgara arama için GridSearchCV ve rastgele arama için RandomizedSearchCV. Her ikisi de herhangi bir scikit-learn tahminleyicisini sarmalar, her kombinasyon için çapraz doğrulama yapar ve sonunda size en iyi modeli verir.
GridSearchCV bir tahminleyici, hiperparametre değerleri sözlüğü ve çapraz doğrulama katman sayısını alır. Her kombinasyon için bir model eğitir ve en iyi skoru veren modeli saklar.
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import GridSearchCV
from sklearn.datasets import make_classification
X, y = make_classification(n_samples=1000, random_state=42)
param_grid = {
"n_estimators": [100, 200, 500],
"max_depth": [5, 10, 20],
"min_samples_leaf": [1, 5, 10],
}
grid = GridSearchCV(RandomForestClassifier(random_state=42), param_grid, cv=5)
grid.fit(X, y)
print(grid.best_params_)
print(grid.best_score_)

Python'da GridSearchCV sonuçları
RandomizedSearchCV aynı arayüzü kullanır ancak sabit bir listeden geçmek yerine dağılımlardan örnekler alır. Bu sayede sabit sayıda denemeyle daha geniş bir aralığı kapsarsınız.
from sklearn.model_selection import RandomizedSearchCV
from scipy.stats import randint
param_dist = {
"n_estimators": randint(100, 500),
"max_depth": randint(3, 20),
"min_samples_leaf": randint(1, 10),
}
random_search = RandomizedSearchCV(
RandomForestClassifier(random_state=42),
param_dist,
n_iter=30,
cv=5,
random_state=42,
)
random_search.fit(X, y)
print(random_search.best_params_)

Python'da RandomizedSearchCV sonuçları
Bayesçi optimizasyon için Optuna standart tercihtir. Bir sonraki kombinasyonu önceki sonuçlara göre seçer; bu nedenle eğitim pahalı olduğunda rastgele aramadan daha hızlı yakınsar.
import optuna
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import cross_val_score
def objective(trial):
params = {
"n_estimators": trial.suggest_int("n_estimators", 100, 500),
"max_depth": trial.suggest_int("max_depth", 3, 20),
"min_samples_leaf": trial.suggest_int("min_samples_leaf", 1, 10),
}
model = RandomForestClassifier(**params, random_state=42)
return cross_val_score(model, X, y, cv=5).mean()
study = optuna.create_study(direction="maximize")
study.optimize(objective, n_trials=30)
print(study.best_params)

Python'da Optuna sonuçları
trial.suggest_* yöntemleri arama alanını tanımlar ve Optuna, şimdiye kadar gördüğü skorlara dayanarak sırada hangi kombinasyonu deneyeceğine karar verir.
R'da hiperparametre ayarı
R'da iki harika seçenek vardır — caret ve tidymodels. İkisi de aynı işi yapar — bir ızgara tanımlayın, çapraz doğrulama çalıştırın, en iyi modeli döndürün — ancak tidymodels modern varsayılandır.
caret ile train() fonksiyonuna bir ayarlama ızgarası verip örnekleme yöntemini belirtirsiniz.
library(caret)
data <- iris
ctrl <- trainControl(method = "cv", number = 5)
grid <- expand.grid(
mtry = c(2, 3, 4)
)
model <- train(
Species ~ .,
data = data,
method = "rf",
trControl = ctrl,
tuneGrid = grid
)
print(model$bestTune)

R'da Caret sonuçları
tidymodels iş akışını net adımlara böler — bir model tanımı, ön işleme için bir tarif ve bir ayarlama ızgarası. Daha detaylıdır ancak pratikte daha ölçeklenebilirdir.
library(tidymodels)
data <- iris
split <- initial_split(data, prop = 0.8)
train_data <- training(split)
rf_spec <- rand_forest(
mtry = tune(),
trees = tune(),
min_n = tune()
) |>
set_engine("ranger") |>
set_mode("classification")
grid <- grid_regular(
mtry(range = c(2, 4)),
trees(range = c(100, 500)),
min_n(range = c(1, 10)),
levels = 3
)
folds <- vfold_cv(train_data, v = 5)
results <- tune_grid(
rf_spec,
Species ~ .,
resamples = folds,
grid = grid
)
show_best(results, metric = "accuracy")

R'da Tidymodels sonuçları
İş akışı Python'dakiyle birebir aynıdır — neyin üzerinde arama yapılacağını, nasıl puanlanacağını tanımlarsınız ve döngüyü kütüphane çalıştırır.
Hangi Hiperparametreleri Ayarlamalısınız?
Her hiperparametreyi ayarlamaya değmez çünkü genellikle performansın çoğunu yalnızca birkaçı kontrol eder. İşte model ailelerine göre genelde önce önem taşıyanlar.
Karar ağaçları ve rastgele ormanlar
Şu üçünü her zaman ayarlamalısınız:
- Maksimum derinlik, her ağacın ne kadar büyüyebileceğini kontrol eder. Sığ ağaçlar eksik uyar, derin ağaçlar aşırı uyar. Genellikle önce ayarlanması gereken budur.
- Yaprak başına minimum örnek sayısı, bir yaprak düğümünün ihtiyaç duyduğu eğitim noktası sayısını belirler. Daha yüksek değerler, ağacı tekil satırları ezberlemek yerine genellemeye zorlar.
- Rastgele ormanda ağaç sayısı. Daha fazla ağaç, daha kararlı bir model sağlar ancak birkaç yüzü aştıktan sonra azalan getiriye sahiptir. Bunu en son ayarlayın.
Gradyan artırma modelleri
Gradyan artırma (XGBoost, LightGBM, CatBoost) rastgele ormanlara göre hiperparametrelere daha duyarlıdır. Şunlara dikkat edin:
- Öğrenme oranı, her yeni ağacın öncekileri ne kadar düzelteceğini kontrol eder. Daha düşük oranlar daha doğrudur ancak daha fazla ağaç gerekir. Bu, ayarlanması gereken tek başına en önemli hiperparametredir.
- Tahminci sayısı, artırma turları sayısıdır. Bunu öğrenme oranına bağlayın — birini düşürürseniz diğerini artırın.
- Ağaç derinliği, her bir ağacın ne kadar karmaşık olacağını kontrol eder. Artırma, genellikle rastgele ormanlara göre daha sığ ağaçları sever; tipik olarak 3 ila 8.
Destek vektör makineleri
SVM'lerde hiperparametre seçimi çok önemlidir; belki de diğer modellere göre daha fazla:
- C, geniş bir marj ile eğitim noktalarını doğru sınıflandırma arasındaki dengeyi kontrol eder. Daha yüksek C, daha az düzenlileştirme demektir.
- Gamma, tek bir eğitim noktasının etkisinin ne kadar uzağa ulaştığını kontrol eder. Düşük gamma uzak, yüksek gamma yakındır.
- Çekirdek, SVM'nin öğrenebileceği karar sınırının şeklini belirler. Doğrusal olmayan sorunlar için
rbf, yüksek boyutlu seyrek veriler içinlinearile başlayın.
Sinir ağları
Sinir ağları, yaygın model aileleri içinde en büyük arama alanına sahiptir. Önce şunları ayarlayın:
- Öğrenme oranı derin öğrenmede en önemli hiperparametredir. Çok yüksekse eğitim ıraksar, çok düşükse asla yakınsamaz.
1e-4,1e-3,1e-2gibi mertebeler arasında değerler deneyin. - Yığın boyutu (batch size) hem eğitim hızını hem de nihai doğruluğu etkiler. Daha büyük yığınlar epoch başına daha hızlı eğitir ancak genellikle daha kötü geneller.
- Eniyileştirici (optimizer) seçimi (Adam, momentumlu SGD, AdamW) ağın ağırlıkları nasıl güncellediğini değiştirir. Adam iyi bir varsayılandır.
- Epoch sayısı modelin eğitim setinin tamamını kaç kez gördüğüdür. Bunu elle ayarlamak yerine erken durdurma kullanın.
Hiperparametre Ayarında Yaygın Zorluklar
Ayarlama pahalıdır; özellikle de parametre başına birden fazla değeri denemek ve ayarlanacak çok parametre olduğunda. İşte bilinmesi gereken yaygın zorluklar.
Hesaplama maliyeti en büyük kısıttır. Denediğiniz her kombinasyon tam bir model eğitmek demektir ve çapraz doğrulama bunu katman sayısı ile çarpar. 5 katmanlı 100 kombinasyonluk bir ızgara 500 model uyumudur. Her uyum 10 dakika sürerse, üç günden fazladır.
Geniş arama alanları çarpanlı büyür. Beş hiperparametrenin her birinde beş değer, 3.125 kombinasyon eder. Bu noktada ızgara arama bir seçenek olmaktan çıkar; yerini rastgele arama veya Bayesçi yöntemler alır.
Azalan getiriler çoğu kişinin beklediğinden daha erken görünür. İlk birkaç ayarlama çalışması genellikle en büyük kazanımları sağlar. Sonraki 50'si belki bir yüzde puanı daha çıkarır. Bir noktada ek hesaplama, daha fazla veri edinmeye veya özelliklerinizi düzeltmeye harcanırsa daha iyi olur.
Doğruluk-zaman dengesi üretimde geliştirmeye göre daha çok önemlidir. %0,5 daha yüksek puan alan ancak eğitimi iki kat uzun süren bir model, günlük yeniden eğitim yapıyorsanız değmeyebilir. Baştan, ne kadar doğruluğun ne kadar hesaplamaya değdiğine karar vermelisiniz.
Hiperparametre Ayarı için En İyi Uygulamalar
Bir makine öğrenimi modelinin hiperparametrelerini ayarlarken izlenecek bazı iyi alışkanlıklar şunlardır:
- Önce en etkili hiperparametreleri ayarlayın: Artırma ve sinir ağlarında öğrenme oranı. Ağaçlarda maksimum derinlik. SVM'lerde C ve gamma. Diğerlerine geçmeden önce bunları doğru aralığa getirin.
- Geniş arama alanları için rastgele aramayla başlayın: Izgara arama, önemsiz hiperparametrelere hesaplama harcar. Rastgele arama alanı daha iyi kapsar ve iki ya da üçten fazla hiperparametre içeren her şey için doğru seçimdir.
- Çapraz doğrulama kullanın: Tek bir doğrulama bölmesi şanslı ya da şanssız olabilir. Beş katman, bir kombinasyonun nasıl genelleştiğine dair çok daha dürüst bir tahmin verir.
- Gerçekçi arama aralıkları tanımlayın: Eğer öğrenme oranı aralığınız
[0.001, 100]ise, asla işe yaramayacak değerlere zaman harcarsınız. Algoritmanız için makul olduğu bilinen aralıklarla başlayın, sonra gördüklerinize göre daraltın. - Deneylerinizi takip edin: Her çalıştırma için hiperparametre değerlerini, skoru ve tohum değerini kaydedin. MLflow, Weights & Biases veya hatta bir CSV dosyası iş görür. Bunlar olmadan sonuçlarınızı yeniden üretemezsiniz.
- Bir hesaplama bütçesi belirleyin: Başlamadan önce kaç denemeyi karşılayabileceğinize karar verin; sonra değil. Bu, size uygun bir arama yöntemi seçmeye zorlar ve gereğinden uzun ayarlama yapmanızı engeller.
Hiperparametre Ayarında Yaygın Hatalar
Ayarlamanın başarısız olmasının çoğu, kaçınılması kolay hatalardan kaynaklanır. İşte birkaç örnek:
- Hiperparametreleri model parametreleriyle karıştırmak. Ağırlıklar ve katsayılar eğitim sırasında öğrenilir. Bunları elle ayarlamaz ve ayarlamazsınız. Algoritmanın öğrenmesi gereken bir şeyi ayarlamaya çalışıyorsanız, ikisini karıştırmışsınızdır.
- Test setine karşı ayarlama yapmak. Test skoruna dayanarak aldığınız her karar, bu setle ilgili bilgiyi modelinize sızdırır. Sonda elde edeceğiniz sayı iyimser olur ve üretim modeliniz düşük performans gösterir. Ayrı bir doğrulama seti veya çapraz doğrulama kullanın.
- Gereksiz büyük parametre ızgaraları aramak. Yedi hiperparametreli ve her birinde on değer olan bir ızgaranın on milyon kombinasyonu vardır. Bunu arayamazsınız. Başlamadan önce en çok önem taşıyan iki ya da üç hiperparametreyi seçip onlara gerçekçi aralıklar vererek küçültün.
- Yanlış metriği optimize etmek. Dengesiz bir veri kümesinde doğruluk, her seferinde çoğunluk sınıfını tahmin eden bir model verecektir. Gerçekten önem verdiğiniz şeyi yansıtan bir metrik seçin ve ayarlamaya başlamadan önce seçin.
- Elle ayarlama sırasında aynı anda çok fazla hiperparametreyi değiştirmek. Öğrenme oranını ve yığın boyutunu aynı adımda ayarlarsanız, değişikliğe hangisinin neden olduğunu bilemezsiniz. Elle ayarlarken bir seferde birini değiştirin.
Hiperparametre Ayarı ve Özellik Mühendisliği
Her ikisi de modelinizi iyileştirir, ancak sorunun farklı kısımlarında çalışırlar.
Özellik mühendisliği girdi verisini iyileştirir. Mevcut özelliklerden yenilerini oluşturur, kategorik değişkenleri kodlar, eksik değerleri ele alır ve gürültüyü azaltırsınız. Daha iyi özellikler, modelin öğrenmesi için daha faydalı sinyaller sağlar.
Hiperparametre ayarı ise modele verdiğiniz özelliklerden nasıl öğrendiğini iyileştirir. Veriyi değiştirmek yerine algoritmanın verideki davranışını değiştirir.
İkisi birbirini tamamlar. Bir projenin başlarında, veri hâlâ hamken ve model bariz sinyalleri kaçırıyorken, özellik mühendisliği genellikle en büyük kazanımları sağlar. Özellikleriniz yeterince iyi olduğunda hiperparametre ayarı daha küçük ama tutarlı kazanımlar sağlar.
Modeliniz takıldıysa ve hangisini önce deneyeceğinizden emin değilseniz, hatalarınıza bakın. Model, veriden açıkça görülen kalıpları kaçırıyorsa bir özellik sorununuz vardır. Aşırı uyum veya eksik uyum varsa bir ayarlama sorununuz vardır.
Makine Öğreniminde Hiperparametre Ayarı Neden Önemlidir
Ayarlama, herhangi bir ML iş akışının standart bir adımıdır.
Çoğu zaman algoritma değiştirmekten daha büyük kazanımlar sağlar. Örneğin, iyi ayarlanmış bir rastgele orman, aynı veride kötü ayarlanmış bir gradyan artırma modelini sıklıkla geride bırakır; gradyan artırma daha sofistike bir algoritma olmasına rağmen.
Ayarlama ayrıca genelleştirmeye yardımcı olur. Maksimum derinlik ve bırakma oranı (dropout) gibi hiperparametreler, modelin ne kadar aşırı uyum yapabileceğini doğrudan kontrol eder. Bunları doğru ayarlamak, eğitim setini ezberleyen bir model ile yeni veride iyi performans gösteren bir model arasındaki farkı yaratır.
Üretimde, ayarlama bir kavram kanıtını güvenilir bir sisteme dönüştürür.
Varsayılan ayarlar sizi başlatır, ancak bunlar modeli yeniden eğitim ve iş gereksinimleri karşısında rekabetçi tutacak ayarlar değildir. Ciddi her ML ekibi, ayarlamayı sürecin bir parçası olarak görür.
Sonuç
Hiperparametre ayarı, özel verileriniz için neyin işe yaradığını arama, değerlendirme ve daraltma döngüsüdür.
En iyi sonuçlar üç şeyin birleşiminden gelir — hesaplama bütçenize uygun bir arama yöntemi, size ilgili bir skor veren bir doğrulama ve ne denediğinizi geriye dönük görmenizi sağlayan deney takibi.
Rastgele arama veya ızgara aramayla başlayın. Eğitim deneme sayısının gerçekten önemli olduğu kadar pahalı hale geldiğinde Bayesçi optimizasyona geçin. Her iki durumda da, modeliniz için ilgili hiperparametreleri ayarlayın, test setinizi temiz tutun ve her çalıştırmayı kaydedin.
Makine öğreniminde bir kariyer düşünüyorsanız, 2026'da iş hazır hale gelmek için Makine Öğrenimi Mühendisi eğitim yolumuza kaydolun.
SSS
Makine öğreniminde hiperparametre ayarı nedir?
Hiperparametre ayarı, bir modelin verileriniz üzerinde en iyi şekilde öğrenmesini sağlayan ayarları bulma sürecidir. Hiperparametreler, öğrenme oranı veya ağaç derinliği gibi, eğitime başlamadan önce sizin belirlediğiniz değerlerdir ve modelin ne öğrendiğini değil nasıl öğrendiğini kontrol ederler. Ayarlama, bu değerlerin farklı kombinasyonlarını arar ve doğrulama setinde en iyi performansı veren kombinasyonu seçer.
Hiperparametre ayarı neden önemlidir?
Varsayılan hiperparametreler size çalışan bir model sağlar, ancak belirli probleminiz için optimize edilmiş bir model değil. Ayarlama, çoğu zaman daha karmaşık bir algoritmaya geçmekten daha iyi doğruluk kazancı sağlar ve modelinizin yeni verilere ne kadar iyi genelleştiğini doğrudan kontrol eder.
Hiperparametrelerle model parametreleri arasındaki fark nedir?
Model parametreleri, eğitim sırasında algoritma tarafından öğrenilir — bir sinir ağındaki ağırlıklar veya bir karar ağacındaki bölme noktaları gibi. Hiperparametreler ise eğitime başlamadan önce sizin tarafınızdan belirlenir ve öğrenmenin nasıl gerçekleşeceğini kontrol eder; örneğin öğrenme oranı veya ağaç sayısı gibi. Model parametrelerini asla elle ayarlamazsınız ve algoritma da hiperparametrelerinize dokunmaz.
Izgara arama mı yoksa rastgele arama mı kullanmalıyım?
İki ya da üç hiperparametre ve her biri için birkaç değer içeren küçük arama alanları için ızgara arama uygundur. Daha fazla hiperparametreye sahip olduğunuzda, rastgele arama aynı hesaplama bütçesiyle alanı daha iyi kapsar çünkü önemsiz değerlere çalıştırma harcamaz. Kural olarak, hangi değerleri deneyeceğiniz konusunda iyi bilginiz varsa ızgara arama, yoksa rastgele arama kullanın.
Rastgele arama yerine ne zaman Bayesçi optimizasyon kullanmalıyım?
Eğitim pahalı olduğunda ve her deneme size gerçek zaman ya da para maliyeti getirdiğinde Bayesçi optimizasyon ekstra kurulum zahmetine değerdir. Önceki çalıştırmaların sonuçlarını bir sonraki denemeyi seçmek için kullanır; bu nedenle rastgele aramadan çok daha az denemeyle güçlü hiperparametreler bulur. Yüzlerce hızlı eğitim çalıştırmasını karşılayabiliyorsanız, rastgele arama daha basit ve genellikle yeterince iyidir. Deneme sayınız düzinelerle sınırlıysa Bayesçi yöntemlere yönelin.

