yoklateknik mülakat

ML Engineer Cml Gradient Boosting Mechanics Mülakat Soruları

75 doğrulanmış ML Engineer Cml Gradient Boosting Mechanics mülakat sorusu — cevaplarıyla çöz, açıklamalarıyla öğren, gerçek simülasyonda kendini test et.

Gerçek simülasyonu dene →

Örnek sorular

Cml Gradient Boosting MechanicsZorluk 1
Gradient boosting'de yeni eklenen her ağaç neyi tahmin etmek üzere eğitilir?
  • aYine orijinal hedefi; böylece topluluktaki her ağaç onun kendi başına bağımsız bir kestirimi olur.
  • bHedefin bootstrap ile yeniden örneklenmiş hâlini; dizideki her ağaç için ayrı çekilerek.
  • cDaha önce eğitilmiş tüm ağaçların o aynı satır için ürettiği tahminlerin ortalamasını.
  • dMevcut topluluğun hâlâ yanlış bıraktığı sinyal parçasını; yani kaybın negatif gradyanını.
Açıklama:Boosting toplamsaldır: tahmin, bir başlangıç kestirimi artı sırayla her ağacın küçültülmüş çıktısıdır ve her ağaç, o anki tahminde kaybın negatif gradyanına fit edilir. Ham hedefi bağımsızca fit etmek ya da ağaç başına bootstrap almak, random forest gibi bagging tarzı toplulukları anlatır. Önceki tahminlerin ortalamasını almak ise hiç yeni bilgi eklemez.
Cml Gradient Boosting MechanicsZorluk 2
scikit-learn 1.6:

import numpy as np
from sklearn.ensemble import GradientBoostingRegressor

X = np.array([[1.], [2.], [3.], [4.]])
y = np.array([2., 4., 6., 20.])
g = GradientBoostingRegressor(n_estimators=1, learning_rate=0.1,
                              max_depth=1, loss='squared_error').fit(X, y)
print(g.predict([[4.]]))


Tek stump x=3 ile x=4 arasında bölünüyor. Ekrana ne yazılır?
  • a[8.0]
  • b[9.2]
  • c[20.0]
  • d[6.8]
Açıklama:Başlangıç kestirimi y'nin ortalaması olan 8.0'dır, dolayısıyla artıklar [-6, -4, -2, 12] olur. Stump x=4'ü değeri 12 olan bir yaprağa yalnız bırakır ve learning rate bu adımı küçültür: 8.0 + 0.1 * 12 = 9.2. 8.0'da kalmak ağacın hiç katkı vermemesi, 20.0'a ulaşmak learning rate'in 1.0 olması, 6.8 ise yaprak değerini eklemek yerine çıkarmak anlamına gelirdi.
Cml Gradient Boosting MechanicsZorluk 3
Bir ekip scikit-learn 1.6'da uzun sağ kuyruklu bir hedefte GradientBoostingRegressor(loss='quantile', alpha=0.9) fit ediyor. predict neyi kestirir?
  • aKoşullu hedef dağılımının ortalamasını; alpha her ağacın katkısını ayrıca 0.9 katsayısıyla küçültür.
  • bKoşullu hedef dağılımının ortalamasını; alpha ise ayrıca raporlanan bir tahmin aralığını genişletir.
  • cKoşullu hedef dağılımının 90. yüzdeliğini; satırların yaklaşık onda dokuzu tahminin altında kalır.
  • dKoşullu hedef dağılımının 10. yüzdeliğini; çünkü alpha kestirimin üstünde bıraktığı kuyruk kütlesini adlandırır.
Açıklama:Kuantil kaybı pozitif ve negatif hataları asimetrik ağırlıklandırır — eksik tahmin alpha, fazla tahmin 1 - alpha ile cezalandırılır — dolayısıyla onu minimize eden sabit alpha-kuantilidir ve boosting fit'i o kuantili koşullu olarak izler. Eğitilmiş bir modelde eğitim satırlarının kabaca alpha kadarı tahminin altında kalır. Küçültmeyi learning_rate belirler; burada hiçbir şey ortalamayı kestirmez ya da kuyruğu ters çevirmez.
Cml Gradient Boosting MechanicsZorluk 2
İkili bir GradientBoostingClassifier, etiketlerin %20'sinin pozitif olduğu bir veriye fit ediliyor. Hiçbir ağaç katkı vermeden önce model hangi ham skordan başlar?
  • a0.20; yani pozitif oranı doğrudan olasılık ölçeğinde kullanarak.
  • b0.0; çünkü ham skor ölçeği başlangıçta daima merkezlenmiştir.
  • clog(0.2), yaklaşık -1.609; yani pozitif oranın doğal logaritması.
  • dlog(0.2 / 0.8), yaklaşık -1.386; yani eğitim önselinin log-odds'u.
Açıklama:Log loss için boosting ham logit ölçeğinde çalışır ve orada log loss'u minimize eden sabit, sınıf önselinin log-odds'u olan log(p / (1 - p))'dir. p = 0.2 için bu yaklaşık -1.386'dır ve lojistik fonksiyonla 0.2 olasılığına geri döner. Oranın kendisini ya da düz logaritmasını kullanmak, olasılık ölçeğiyle ham skor ölçeğini birbirine karıştırır.
Cml Gradient Boosting MechanicsZorluk 2
Bir ekip GradientBoostingClassifier'da learning_rate'i 0.1'den 0.01'e düşürüyor ve n_estimators'ı 100'de bırakıyor. Hem eğitim hem doğrulama kaybı belirgin biçimde kötüleşiyor. Ne oluyor?
  • aArtık her ağaç onda biri kadar katkı veriyor; 100 tur sinyali kapatmaya yetmiyor ve model underfit ediyor.
  • bDaha küçük learning rate her ağacı derinleştirir ve bu derin ağaçlar eğitim setindeki gürültüyü ezberlemiştir.
  • c0.05'in altında learning rate amacı mutlak hataya çevirir; bu da merkezlenmiş bir hedefi kötü fit eder.
  • dBu kadar küçük shrinkage başlangıç kestirimini devre dışı bırakır; topluluk sıfır ham skordan başlamak zorunda kalır.
Açıklama:Learning rate, her ağacın çıktısı eklenmeden önce onu çarpar; dolayısıyla n tur sonundaki toplam ilerleme kabaca oran çarpı n ile ölçeklenir. Tur sayısını artırmadan oranı on kat küçültmek topluluğu eski fit'inin çok gerisinde bırakır ve her iki bölümde de kaybın kötüleşmesi overfit değil underfit imzasıdır. Learning rate ağaç derinliğine, amaç fonksiyonuna veya başlangıç kestirimine dokunmaz.
Cml Gradient Boosting MechanicsZorluk 1
scikit-learn gradient boosting'in learning_rate parametresi (XGBoost'ta eta) hangi büyüklüğü çarpar?
  • aHer yeni ağacın çıktısını; bu çıktı yürüyen tahmine eklenmeden hemen önce.
  • bBoosting turları ilerledikçe her ağaca tanınan derinlik bütçesini.
  • cAday bölmeleri puanlayan gradyanı; yaprak değerlerine dokunmadan.
  • dFit sırasında her boosting turu için çekilen eğitim satırlarının oranını.
Açıklama:Shrinkage her fit edilen ağacın katkısını ölçekler; böylece topluluk birkaç büyük adım yerine çok sayıda küçük adım atar. XGBoost eta'yı, boosting'i daha muhafazakâr yapmak üzere yeni ağırlıkları küçültmek diye tanımlar. Derinlik ayrı olarak max_depth veya max_leaf_nodes ile, satır örnekleme ise subsample ile belirlenir; shrinkage yalnızca bölme aramasına değil doğrudan yaprak değerlerine iner.

1050 soruluk ML Engineer bankasında kendini sına.

Mülakata başla