Makine Öğrenmesi Algoritmaları: Teknik Mülakatlar İçin Kapsamlı Rehber
Makine öğrenmesi algoritmalarını derinlemesiyle öğrenin: denetimli öğrenme, karar ağaçları, kümeleme, model değerlendirme metrikleri ve düzenlileştirme yöntemleri. 2026 veri bilimi mülakatlarına hazırlık için Python kod örnekleriyle.

Makine öğrenmesi algoritmaları, 2026 yılındaki her veri bilimi teknik mülakatının temelini oluşturmaktadır. Pozisyon junior bir veri bilimciye ya da kıdemli bir makine öğrenmesi mühendisine yönelik olsun, mülakat yapanlar adayların temel algoritma ailelerini açıklayabileceğini, uygulayabileceğini ve karşılaştırabileceğini beklemektedir; doğrusal modellerden topluluk yöntemlerine ve denetimsiz tekniklere kadar. Bu kapsamlı inceleme, Python ve scikit-learn 1.8 ile hazırlanan uygulamalarla birlikte her büyük algoritma kategorisini, değerlendirme stratejilerini ve güçlü adayları diğerlerinden ayıran temel tradeoff'ları ele almaktadır.
Makine öğrenmesi algoritmaları üç ana aileye ayrılır: denetimli öğrenme (regresyon, sınıflandırma), denetimsiz öğrenme (kümeleme, boyut indirgeme) ve pekiştirmeli öğrenme. 2026 yılındaki teknik mülakatlar büyük ölçüde ilk iki aileye odaklanmakta olup bir algoritmanın ne zaman tercih edilmesi gerektiği ve sonuçların nasıl değerlendirileceği üzerinde durulmaktadır.
Denetimli Öğrenme: Regresyon ve Sınıflandırma Temelleri
Denetimli öğrenme algoritmaları etiketli veriden öğrenir; her eğitim örneği bir girdi ve beklenen çıktıyı içerir. Regresyon sürekli değerleri tahmin eder (ev fiyatları, sıcaklıklar), sınıflandırma ise ayrık etiketler atar (spam/spam değil, hastalık teşhisi). Her ikisini de derinlemesine anlamak veri bilimi mülakatlarında vazgeçilmezdir.
Doğrusal regresyon, her regresyon görevinin başlangıç noktasıdır. Özellikler ile hedef değişken arasındaki ilişkiyi ağırlıklı bir toplam olarak modeller. Mülakat yapanlar adaylardan bunu uygulamalarını, maliyet fonksiyonunu açıklamalarını ve ne zaman yetersiz kaldığını tartışmalarını sıklıkla ister.
# linear_regression_demo.py
import numpy as np
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error, r2_score
# Generate synthetic housing data: square footage -> price
np.random.seed(42)
sqft = np.random.uniform(500, 3000, size=200).reshape(-1, 1)
price = 150 * sqft.flatten() + np.random.normal(0, 20000, size=200)
X_train, X_test, y_train, y_test = train_test_split(sqft, price, test_size=0.2)
model = LinearRegression()
model.fit(X_train, y_train) # Fit on training data
predictions = model.predict(X_test) # Predict on unseen data
print(f"Coefficient: {model.coef_[0]:.2f}") # Weight per sqft
print(f"R2 Score: {r2_score(y_test, predictions):.4f}")
print(f"RMSE: {np.sqrt(mean_squared_error(y_test, predictions)):.2f}")Katsayı, her ek metrekarenin fiyata ne kadar katkıda bulunduğunu ortaya koyar. R2 skoru ve RMSE, tahmin kalitesini ölçer; mülakat yapanlar adayların bu iki metriği tereddütsüz yorumlayabilmesini beklemektedir.
Sınıflandırma için lojistik regresyon, olasılık üretmek amacıyla sigmoid fonksiyonu uygular. Adına karşın sınıflandırma problemlerini çözer. Karar sınırı, düzenlileştirme parametresi C ve ikili ile çok sınıflı ayarlar arasındaki fark, yaygın mülakat konuları arasındadır.
# logistic_classification.py
from sklearn.linear_model import LogisticRegression
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
from sklearn.metrics import classification_report
data = load_breast_cancer() # Binary classification dataset
X_train, X_test, y_train, y_test = train_test_split(
data.data, data.target, test_size=0.2, random_state=42
)
clf = LogisticRegression(max_iter=5000, C=1.0) # C controls regularization strength
clf.fit(X_train, y_train)
y_pred = clf.predict(X_test)
print(classification_report(y_test, y_pred, target_names=data.target_names))Sınıflandırma raporu, her sınıf için precision, recall ve F1-score değerlerini gösterir; bu metrikler bir sonraki bölümde ele alınmaktadır. Bu raporları akıcı biçimde okumayı pratik edin; adayların bunları yorumlamakta güçlük çektiğini mülakat yapanlar hemen fark eder.
Karar Ağaçları ve Mülakatlara Hakim Topluluk Yöntemleri
Karar ağaçları, verileri özellik eşiklerine göre yinelemeli olarak böler. Tek başlarına kolayca aşırı uyum sağlarlar. Topluluk yöntemleri olan Random Forest ve Gradient Boosting, birden fazla ağacı bir araya getirerek bu sorunu çözer. Bu algoritmalar, bagging ile boosting arasındaki farkı, özellik önemini ve out-of-bag hata tahminini test ettiğinden neredeyse her makine öğrenmesi mülakatında karşımıza çıkar.
Random Forest, bootstrapli örnekler üzerinde birbirinden bağımsız çok sayıda ağaç oluşturur ve tahminlerinin ortalamasını alır. Bu yaklaşım, yanlılığı artırmadan varyansı azaltır. Gradient Boosting ise artık hataları düzelterek sıralı şekilde ağaçlar oluşturur; yüksek doğruluk sunar ancak dikkatli hiperparametre seçimi gerektirir.
# ensemble_comparison.py
from sklearn.ensemble import RandomForestClassifier, GradientBoostingClassifier
from sklearn.datasets import load_wine
from sklearn.model_selection import cross_val_score
data = load_wine() # 3-class classification
X, y = data.data, data.target
# Random Forest: parallel trees, reduces variance
rf = RandomForestClassifier(n_estimators=100, max_depth=5, random_state=42)
rf_scores = cross_val_score(rf, X, y, cv=5, scoring='accuracy')
# Gradient Boosting: sequential trees, reduces bias
gb = GradientBoostingClassifier(n_estimators=100, learning_rate=0.1, max_depth=3)
gb_scores = cross_val_score(gb, X, y, cv=5, scoring='accuracy')
print(f"Random Forest: {rf_scores.mean():.4f} +/- {rf_scores.std():.4f}")
print(f"Gradient Boosting: {gb_scores.mean():.4f} +/- {gb_scores.std():.4f}")Random Forest, kararlılık ve düşük ayar çabası hedeflendiğinde öne çıkar. Gradient Boosting genellikle daha yüksek doğruluk elde eder; ancak öğrenme hızı, tahmin edici sayısı ve ağaç derinliği gibi birbiriyle etkileşen parametrelerin dikkatli biçimde seçilmesini zorunlu kılar. Mülakat yapanlar, hangi sayının daha büyük olduğunu değil, adayların bu tradeoff'u gerçekten anlayıp anlamadığını sınar.
| Kriter | Random Forest | Gradient Boosting | |--------|--------------|-------------------| | Eğitim hızı | Hızlı (paralel) | Daha yavaş (sıralı) | | Aşırı uyum riski | Düşük | Ayar yapılmadan yüksek | | Hiperparametre hassasiyeti | Düşük | Yüksek | | Özellik önemi | Dahili (safsızlık tabanlı) | Dahili (kazanç tabanlı) | | En uygun kullanım | Temel modeller, gürültülü veri | Yarışmalar, tablo verisi |
Denetimsiz Öğrenme: Kümeleme ve Boyut İndirgeme
Denetimsiz algoritmalar, etiketlenmemiş verilerdeki yapıları keşfeder. K-Means kümeleme ve PCA (Temel Bileşen Analizi), mülakat yapanların en sık sorduğu iki tekniktir. Her ikisini de özümseyin; bu konular denetimsiz öğrenme mülakat sorularının büyük bölümünü kapsamaktadır.
K-Means, küme içi varyansı en aza indirerek veriyi k kümesine böler. Algoritma, noktaları en yakın merkeze atama ve merkezleri güncelleme adımları arasında yineler. İki kritik mülakat sorusu öne çıkar: k nasıl seçilir (dirsek yöntemi, silüet skoru) ve küresel olmayan kümeler söz konusu olduğunda ne olur?
# kmeans_clustering.py
from sklearn.cluster import KMeans
from sklearn.preprocessing import StandardScaler
from sklearn.metrics import silhouette_score
from sklearn.datasets import load_iris
data = load_iris()
X = StandardScaler().fit_transform(data.data) # Scale features first
# Test multiple values of k to find optimal cluster count
for k in [2, 3, 4, 5]:
kmeans = KMeans(n_clusters=k, n_init=10, random_state=42)
labels = kmeans.fit_predict(X)
sil = silhouette_score(X, labels) # Higher = better-defined clusters
inertia = kmeans.inertia_ # Within-cluster sum of squares
print(f"k={k}: silhouette={sil:.3f}, inertia={inertia:.1f}")Kümeleme öncesinde özelliklerin ölçeklenmesi zorunludur; K-Means Öklid uzaklığı kullanır, dolayısıyla büyük değer aralığına sahip ölçeklenmemiş özellikler metriğe hakim olur. Bu ayrıntı mülakatlar sırasında sıklıkla gündeme gelir.
PCA, veriyi maksimum varyans yönlerine yansıtarak boyutları azaltır. İki temel amaca hizmet eder: görselleştirme (2B/3B yansıtma) ve ön işleme (gürültü giderme, aşağı akış modellerini hızlandırma). Mülakat yapanlar adayların açıklanan varyans oranlarını ve bileşen sayısının nasıl seçileceğini açıklayabilmesini bekler.
PCA, özellikler arasında korelasyon olduğunda ve sinyal birkaç yönde yoğunlaştığında en iyi sonucu verir. Seyrek ve yüksek boyutlu verilerde (metin, one-hot kodlanmış kategoriler) PCA, kullanışlı yapıyı bozabilir. Bu durumlarda Truncated SVD veya özel gömme yöntemleri daha iyi performans gösterir.
Data Science & ML mülakatlarında başarılı olmaya hazır mısın?
İnteraktif simülatörler, flashcards ve teknik testlerle pratik yap.
Her Adayın Özümsemesi Gereken Model Değerlendirme Metrikleri
Doğru değerlendirme metriğini seçmek, doğru algoritmayı seçmekten daha önemlidir. Dengesiz veride yüzde doksan dokuz doğruluğa sahip bir model (sahtecilik oranı yüzde bir) tamamen işe yaramaz olabilir; her seferinde yalnızca "sahtecilik yok" tahmini yapar. Mülakat yapanlar metrik sorularını pratik yargıyı test etmek için kullanır.
Sınıflandırma için dört metrik mülakata hakimdir:
- Precision (Kesinlik): tüm pozitif tahminler arasında kaç tanesi doğrudur? Yanlış pozitiflerin maliyetli olduğu durumlarda kritiktir (spam filtreleme)
- Recall (Duyarlılık): tüm gerçek pozitifler arasında kaç tanesi bulunmuştur? Yanlış negatiflerin maliyetli olduğu durumlarda kritiktir (hastalık taraması)
- F1-Skoru: precision ve recall'un harmonik ortalaması; hiçbir hata türünün açıkça baskın olmadığı durumlar için dengeli seçim
- AUC-ROC: tüm sınıflandırma eşikleri boyunca sıralama kalitesini ölçer; modelleri karşılaştırmak için vazgeçilmezdir
Regresyon için temel metrikler RMSE (büyük hataları cezalandırır), MAE (aykırı değerlere dayanıklı) ve R2 (açıklanan varyans oranı)'dir. MAE'yi RMSE'ye ne zaman tercih etmek gerektiğini bilmek gerçek anlamda kavrayışın göstergesidir.
# evaluation_metrics.py
from sklearn.metrics import (
precision_score, recall_score, f1_score,
roc_auc_score, confusion_matrix
)
import numpy as np
# Simulated predictions on imbalanced data (5% positive class)
np.random.seed(42)
y_true = np.array([1]*50 + [0]*950)
y_pred = np.array([1]*40 + [0]*10 + [1]*30 + [0]*920) # Some errors
print(f"Precision: {precision_score(y_true, y_pred):.3f}") # 40/(40+30) = 0.571
print(f"Recall: {recall_score(y_true, y_pred):.3f}") # 40/(40+10) = 0.800
print(f"F1-Score: {f1_score(y_true, y_pred):.3f}") # Harmonic mean
cm = confusion_matrix(y_true, y_pred)
print(f"\nConfusion Matrix:\n{cm}")
# [[920, 30], -> TN=920, FP=30
# [10, 40]] -> FN=10, TP=40Karışıklık matrisini doğru okumak pratik gerektirir. Sol üst hücre (gerçek negatifler) ve sağ alt hücre (gerçek pozitifler) doğru tahminleri temsil eder. Köşegen dışı hücreler iki hata türünü gösterir. Mülakat yapanlar sıklıkla bir karışıklık matrisi sunar ve adaylardan precision ile recall değerlerini hesaplamalarını ister.
Yanlılık-Varyans Tradeoff'u ve Düzenlileştirme Stratejileri
Yanlılık-varyans tradeoff'u, makine öğrenmesi teorisindeki en temel kavramdır. Yüksek yanlılık, modelin çok basit olduğunu ve yetersiz uyum sağladığını gösterir. Yüksek varyans ise modelin çok karmaşık olduğunu ve aşırı uyum sağladığını ortaya koyar. Her algoritma seçimi ve hiperparametre kararı bu tradeoff'u yönetmeyi içerir.
Düzenlileştirme, büyük katsayıları cezalandırarak model karmaşıklığını kontrol eder. Ridge regresyon (L2), katsayıları sıfıra yaklaştırır ancak tüm özellikleri korur. Lasso regresyon (L1), bazı katsayıları tam olarak sıfıra çekerek örtük özellik seçimi gerçekleştirir. Elastic Net her ikisini birleştirir. Bu ayrımlar hem sınıflandırma hem de regresyon bağlamlarındaki mülakatlarında sıklıkla karşımıza çıkar.
Düzenlileştirme, katsayı büyüklüğünü cezalandırır. Özellikler farklı ölçeklere sahipse (yıl cinsinden yaş ile binlerce birimlik gelir), ceza küçük ölçekli özellikleri orantısız biçimde etkiler. Ridge, Lasso veya Elastic Net uygulamadan önce her zaman özellikleri standartlaştırın. Bunu unutmak mülakatların sık görülen hatalarından biridir.
# regularization_comparison.py
from sklearn.linear_model import Ridge, Lasso, ElasticNet
from sklearn.preprocessing import StandardScaler
from sklearn.pipeline import make_pipeline
from sklearn.model_selection import cross_val_score
from sklearn.datasets import load_diabetes
X, y = load_diabetes(return_X_y=True)
models = {
"Ridge (L2)": make_pipeline(StandardScaler(), Ridge(alpha=1.0)),
"Lasso (L1)": make_pipeline(StandardScaler(), Lasso(alpha=0.1)),
"ElasticNet (L1+L2)": make_pipeline(StandardScaler(), ElasticNet(alpha=0.1, l1_ratio=0.5)),
}
for name, model in models.items():
scores = cross_val_score(model, X, y, cv=5, scoring='r2')
print(f"{name:25s} R2: {scores.mean():.4f} +/- {scores.std():.4f}")Pipeline, ölçekleme ile düzenlileştirmenin birlikte gerçekleştirilmesini sağlayarak test verisinde scaler'ın fit edilmesinden kaynaklanan veri sızıntısını önler. Mülakat yapanlar bu konuyu özellikle test eder: bölünmeden önce tüm veri kümesi üzerinde fit_transform uygulamak, kıdemli mülakatlarında eleme nedeni sayılan bir hatadır.
2026 Makine Öğrenmesi Algoritma Sorularına Hazırlık
Makine öğrenmesi algoritmaları için mülakat hazırlığı, 2026 yılında formülleri ezberlemekten çok daha fazlasını gerektirmektedir. İşe alım ekipleri üç boyutu değerlendirir: teorik anlayış (aday matematiği açıklayabiliyor mu?), pratik uygulama (kodu yazabiliyor mu?) ve yargı (hangi algoritmanın probleme uyduğunu biliyor mu?).
SharpSkill'deki veri bilimi mülakat hazırlık bölümü, uygulamalı sorularla bu üç boyutu kapsamaktadır. En fazla mülakat sorusu üretilen alanlar şunlardır:
- Algoritma seçimi: veri kümesi tanımı verildiğinde, bir algoritmayı diğerine tercih etmeyi gerekçelendirin. Veri boyutu, özellik türleri, yorumlanabilirlik gereksinimleri ve eğitim süresi kısıtlamaları göz önünde bulundurulmalıdır
- Hiperparametre ayarı: her hiperparametrenin ne kontrol ettiğini ve yanlılık-varyans tradeoff'unu nasıl etkilediğini açıklayın. Grid search ve random search temel beklentilerdir; Bayesian optimizasyonu ise 2026 itibarıyla giderek daha fazla beklenmektedir
- Üretim kaygıları: veri kayması tespiti, model izleme, A/B testi ve özellik depoları, orta ve kıdemli seviye rollerde standart konular haline gelmiştir
- Açıklanabilirlik: açıklanabilir yapay zekanın yükselişiyle birlikte adayların SHAP değerlerini ve özellik önemi yöntemlerini bilmesi beklenmektedir
Çapraz doğrulama özel ilgi gerektirir. Mülakat yapanlar adayların neden tek bir ayırmanın yetersiz kaldığını, k-katlı çapraz doğrulamanın nasıl çalıştığını ve katmanlı katlara ne zaman ihtiyaç duyulduğunu (dengesiz sınıflar) açıklayabilmesini bekler. Zaman serisi verileri zamansal bölme gerektirir; bu durum pek çok adayı hazırlıksız yakalar.
Pratik yapmaya başla!
Mülakat simülatörleri ve teknik testlerle bilgini test et.
Sonuç
- Doğrusal modeller (regresyon, lojistik) temel oluşturur; karmaşık algoritmalara geçmeden önce varsayımlarını, maliyet fonksiyonlarını ve hangi durumlarda yetersiz kaldıklarını anlayın
- Karar ağaçları tek başlarına aşırı uyum sağlar; Random Forest ve Gradient Boosting, sırasıyla bagging ve boosting yoluyla farklı tradeoff profilleriyle bu sorunu çözer
- K-Means ve PCA, denetimsiz öğrenmenin temellerini kapsar; ancak her zaman önce özellikleri ölçeklendirin ve her yöntemin sınırlamalarını bilin
- Değerlendirme metrikleri iş problemine uygun olmalıdır; dengesiz veride doğruluk tek başına anlamsızdır; precision, recall, F1 ve AUC-ROC farklı hedeflere hizmet eder
- Düzenlileştirme (Ridge, Lasso, Elastic Net) aşırı uyumu kontrol eder; ancak yalnızca bir pipeline içinde standartlaştırılmış özelliklerle doğru çalışır
- 2026 yılında mülakat başarısı, yalnızca uygulama yeteneğini değil, algoritma seçim yargısını sergilemeyi gerektirir; her seçimin arkasındaki nedeni açıklayın
Etiketler
Paylaş
